***************************************************************
The latest version of this document is always available here:
    http://code.google.com/p/sigil/wiki/BuildingFromSource
****************************************************************
 = General notes = 

You will need CMake 2.8.0 or later on all platforms. You can download it 
[http://www.cmake.org/cmake/resources/software.html here]. CMake is a 
cross-platform system for build automation. It can generate Visual 
Studio project files on Windows, Xcode project files on Mac OS X and 
Makefiles on Unix systems. After installing CMake, you can see a list of 
generators provided on your system by typing `cmake` in your terminal 
and pressing enter. The supported generators should be listed near the 
bottom of the printout. 

Qt 4.7.x is also required on all platforms. It can be downloaded 
[http://qt.nokia.com/downloads here] (choose the LGPL version). 

Mac users should grab the Qt SDK. Windows users can also download the 
SDK which comes with MinGW and the Qt Creator IDE. If you want to use 
the Visual Studio compiler, you should download the precompiled Qt 
libraries for Visual Studio 2008 from Nokia's website. Linux users 
should get it from their distribution's package manager (more 
information in the Linux section). 

On some platforms a `makeinstaller` target is provided which will build 
a binary installer. For that to work, you need to have InstallJammer 
installed and on the system PATH. You can get InstallJammer 
[http://www.installjammer.com/ here]. You need to have the Qt libraries 
on the system PATH as well. 

== Compiling on Windows == 

It is assumed you want to generate Visual Studio project files. You can 
do this by creating a new folder *outside* of the source distribution. 

Now navigate to that folder with a terminal like cmd.exe or PowerShell. 
Then type in and run the following: 

cmake -G "Visual Studio 9 2008" /path/to/extracted/folder 

This should create SLN and vcproj files 
for Visual Studio in that directory. You can also generate project files 
for some other VS version. You can get a list of all supported 
generators by typing in and running `cmake`. 

The default build procedure will build "Sigil.exe"; if you want to 
package that with the required DLL's into an installer, build the 
`makeinstaller` project. 

There is also an 
[http://www.qtsoftware.com/downloads/visual-studio-add-in add-in] for VS 
on Qt's website. It will make it easier to develop Qt applications like 
Sigil, but is not strictly necessary. 

*NOTE:* If you generate solution files for VS 2010 with CMake version 
<= 2.8.1, those builds will fail. This is caused by 
[http://www.cmake.org/Bug/view.php?id=10503 a bug] in CMake. This bug 
has been fixed and CMake 2.8.2 and above don't have this problem. 

== Compiling on Mac == 

It is assumed you want to generate Xcode project files. You can do this 
by creating a new folder *outside* of the source distribution. 

Now navigate to that folder with the Terminal. Then type in and run the 
following: 

cmake -G Xcode /path/to/extracted/folder

This should create Xcode project files in that directory. The default 
build procedure will build "Sigil.app"; if you want to package that into
a DMG file, invoke the `makedmg` build target. 

== Compiling on Linux == 

Aside from the core Qt libraries, you will also need to install 
*libqt4-xml*, *libqt4-svg*, *libqt4-webkit* and *libqt4-dev* (and their 
various dependencies) which are not included by default in Qt. 

This should be as simple as typing in the following command into your 
terminal (on Debian-like systems): 

sudo apt-get install libqt4-gui libqt4-svg libqt4-webkit libqt4-xml libqt4-dev 

It is assumed you want to generate Makefiles. You can do this by creating 
a new folder *outside* of the source distribution. 

Now navigate to that folder with a terminal. Then type in and run the 
following: 

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release /path/to/extracted/folder make sudo make install 

That builds and installs Sigil on Linux. By default, Sigil is installed in 
`${CMAKE_INSTALL_PREFIX}/bin`, with `CMAKE_INSTALL_PREFIX` defaulting to 
`usr/local`. 

You can change the install location by running cmake like this: 

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/new/install/prefix -DCMAKE_BUILD_TYPE=Release /path/to/extracted/folder

Aside from using the install target, you can also build a binary installer 
by invoking the `makeinstaller` build target. 

Building from source in the repository is recommended, since code in the 
repository should always be stable. If it's not, that's a bug report. 

= Compiling Qt = 

Compiling Qt directly should not be necessary. Nevertheless, if you wish 
to compile Qt, you should configure it before compiling like this: {{{ 
configure -opensource -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff 
-qt-libjpeg }}} These are the options used to configure the Qt libraries 
that are provided with Sigil on Windows. 

Building Qt takes many hours. You can save yourself a lot of time by 
passing `-nomake tools -nomake examples -nomake demos -nomake docs 
-nomake translations` to `configure` as well. For Visual Studio builds, 
passing `-ltcg` is also strongly recommended. 

