Configuring Build Options
On all platforms, Stellarium uses a two-step building process:
- CMake processes a set of project files (CMakeLists.txt) to generate a set of scripts for make (if you are using Qt Creator, it runs CMake when you open the project);
- make performs the steps detailed in the scripts, calling the compiler, the linker and other utility programs to build Stellarium's executables, libraries and data files.
This page explains the various command-line options that can be passed to CMake and make to produce different build configurations.
CMake options
CMake caches the current project configuration in CMakeCache.txt, including the options passed to it at the command line. This is useful, as it saves typing the next time you invoke CMake for the project, but it can also be annoying if you are not careful.
The proper way to change the options is to pass them to CMake on the command line, instead of editing directly the CMakeCache file. This way, the make files will be updated in case there is some hidden dependency on the value of the option you are passing.
For example, the next command is a first invocation of CMake for Stellarium that configures the build of a development version for Windows in Release mode which based on revision 5520:
cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=C:/stellarium -DCMAKE_BUILD_TYPE=Release -DRELEASE_BUILD=0 -DBZR_REVISION=5520 ../..
Qt Creator provides a wrapper around CMake - the CMake Wizard. It is automatically launched when Stellarium's CMakeLists.txt is opened for the first time, and it can be launched at any time from the "Build" -> "Run CMake" menu.
BUILD_FOR_MAEMO
Default value: 0.
This option enables building Stellarium for Maemo devices and also enables optimization for ARM processors.
BUILD_STATIC_PLUGINS
Default value: 1.
This option defines that plugins should be compiled statically and linked to the main program. If this option has value 1 then for BUILD_DYNAMIC_PLUGINS should be value 0.
BUILD_DYNAMIC_PLUGINS
Default value: 0.
This option defines that plugins should be compiled dynamically. If this option has value 1 then for BUILD_STATIC_PLUGINS should be value 0.
BZR_REVISION
This option is used together with RELEASE_BUILD option and sets Bazaar's revision for package.
CMAKE_BUILD_TYPE
Possible values: None, Debug, GProf, Valgrind, Release, RelWithDebInfo, MinSizeRel.
Default value: Debug
Possible values:
- Release
- Release mode - the binary package does not include debug characters and some of the source code is ignored; this mode is the default for users.
- Debug
- Debug mode - the binary package includes debug characters and debug macros in the source code are not ignored; this mode is the default for developers.
- RelWithDebInfo
- Release mode, but the binary package includes debug characters; this mode is for developers and users.
- GProf
- Support for GNU gprof profiler - binary package includes debug characters for profiler; this mode is for developers
- Valgrind
- Support for Valgrind - binary package includes debug characters for memory debugging, memory leak detection, and profiling; this mode is for developers.
- MinSizeRel
- Release mode - binary package optimized for minimal size.
CMAKE_INSTALL_PREFIX
This option sets a prefix for the installation of the binary package location. Used on Linux to set the location for the software installation, building from source code, the default location is /usr/local but if you want to install software elsewhere such as into /opt you need use CMAKE_INSTALL_PREFIX=/opt
CMAKE_C_COMPILER
This option sets a custom path to C compiler. For example if you have installed GCC and Clang; and wish to use the Clang compiler you need use CMAKE_C_COMPILER=/usr/bin/clang
CMAKE_CXX_COMPILER
This option sets a custom path to the C++ compiler. For example; if you have installed GCC and Clang; to use the Clang compiler you need use CMAKE_CXX_COMPILER=/usr/bin/clang
ENABLE_NLS
Default value: 1.
This option activates translation with gettext.
ENABLE_SOUND
Default value: 0.
This option activates sound support.The default value is 0 because sound is not available on all platforms and may require 3rd party software.
ENABLE_SCRIPTING
Default value: 1.
This option activates the scripting feature.
ENABLE_SCRIPT_CONSOLE
Default value: 1.
This option activates the script edit console.
ENABLE_STRATOSCRIPT_COMPAT
Default value: 0.
This option enable the StratoScript compatibility mode. If set to 1 many of the old *.sts scripts can be used.
GUI_MODE
Possible values: Standard, None, External
Default value: Standard.
This option set a type of GUI for using in Stellarium.
OPENGL_MODE
Possible values: Desktop, ES2
Default value: Desktop.
This option defines mode to supporting OpenGL version - OpenGL for desktops or OpenGL ES
OPTIMIZE_INTEL_ATOM
Default value: 0.
This option enables optimization for Atom processors.
RELEASE_BUILD
Default value: 1.
This option flags the build as an official release.
STELLARIUM_SPLASH
Possible values: Development, ReleaseCandidate, Release
Default value: Development.
This option set the splash screen for Stellarium.
USE_PLUGIN_*
This option is used to build the desired plugin from source. There will be one entry for each plugin being built. For example to build the Historical Supernovae plugin you need use USE_PLUGIN_SUPERNOVAE=1.
Examples of the current default settings;
*_HELLOSTELMODULE
Default value: 0.
This option defines that the HelloStelModule plugin should be built.
*_ANGLEMEASURE
Default value: 1.
This option defines that the Angle Measure plugin should be built.
*_COMPASSMARKS
Default value: 1.
This option defines that the Compass Marks plugin should be built.
*_SATELLITES
Default value: 1.
This option defines that the Satellites plugin should be built.
*_TELESCOPECONTROL
Default value: 1.
This option defines that the Telescope Control plugin should be built.
*_LOGBOOK
Default value: 0.
This option defines that the LogBook plugin should be built.
*_OCULARS
Default value: 1.
This option defines that the Oculars plugin should be built.
*_SVMT
Default value: 0.
This option defines that the SVMT plugin should be built. Note: special dependancies and source are required for this option
*_TEXTUSERINTERFACE
Default value: 1.
This option defines that the Text User Interface plugin should be built.
*_TIMEZONECONFIGURATION
Default value: 1.
This option defines that the Time Zone Configuration plugin should be built.
*_VIRGO
Default value: 0.
This option defines that the VirGO plugin should be built. Note: special dependancies and source are required for this option
*_SOLARSYSTEMEDITOR
Default value: 1.
This option defines that the Solar System Editor plugin should be built.
*_SUPERNOVAE
Default value: 1.
This option defines that the Historical Supernovae plugin should be built.
*_QUASARS
Default value: 1.
This option defines that the Quasars plugin should be built.
*_PULSARS
Default value: 1.
This option defines that the Pulsars plugin should be built.
*_EXOPLANETS
Default value: 1.
This option defines that the Exoplanets plugin should be built.
Make targets
install
This option make installation of binaries and related files (installation of program).
test
This option launched tests from test suite.
macosx_bundle
This option make bundle package for Mac OS X.
package
This option make package for Linux.