OSX/GHOST: fix own issue in 60510, should now (hopefully) cover all multiple window...
[blender.git] / doc / build_systems / cmake.txt
1
2     Blender CMake build system
3     ============================
4
5     Contents
6     ---------------
7
8     1. Introduction
9     2. Obtaining CMake
10     3. Building Blender
11     4. Generic Setup
12     5. Configuring the build after SVN updates
13
14     1. Introduction
15     ---------------
16
17     This document describes general usage of the new CMake scripts. The
18     inner workings will be described in blender-cmake-dev.txt (TODO).
19
20     2. Obtaining CMake
21     ------------------
22
23     CMake for can either be downloaded using your favorite package manager 
24     or is also available from the CMake website at http://www.cmake.org 
25     The website also contains some documentation on CMake usage but I found
26     the man page alone pretty helpful. 
27
28     3. Building Blender
29     -------------------
30
31     Building Blender requires obtaining a compiler, library dependencies,
32     and correct setup depending on the system. For details on how to set
33     up a build on various operating systems, see the wiki documentation:
34
35     http://wiki.blender.org/index.php/Dev:Doc/Building_Blender
36
37     4. Generic Setup
38     ----------------
39
40     CMake allows one to generate the build project files and binary objects
41     outside the source tree which can be pretty handy in working and experimenting
42     with different Blender configurations (Audio/NoAudio, GameEngine/NoGameEngine etc.)
43     while maintaining a clean source tree. It also makes it possible to generate files
44     for different build systems on the same source tree. This also has benefits for 
45     general SVN management for the developer as patches and submit logs are much cleaner.
46
47     Create a directory outside the blender source tree where you would like to build
48     Blender (from now on called $BLENDERBUILD). On the commandline you can then run
49     the cmake command to generate your initial build files. First just run 'cmake' which
50     will inform you what the available generators are. Thn you can run 
51     'cmake -G generator $BLENDERSOURCE' to generate the build files. Here is an example 
52     of all this for Xcode:
53
54         % mkdir $BLENDERBUILD
55         % cd $BLENDERBUILD
56         % cmake
57
58         ...
59         ...
60         --version [file]            = Show program name/version banner and exit.
61
62         Generators
63
64         The following generators are available on this platform:
65           KDevelop3                   = Generates KDevelop 3 project files.
66           Unix Makefiles              = Generates standard UNIX makefiles.
67           Xcode                       = Generate XCode project files.
68
69
70
71         % cmake -G Xcode $BLENDERSOURCE
72         ...
73         ...
74         -- Configuring blender
75         -- Configuring blenderplayer
76         -- Configuring done
77         -- Generating done
78         -- Build files have been written to: $BLENDERBUILD 
79
80     This will generate the build files with default values. Specific features can
81     be enabled or disabled by running the ccmake "GUI" from $BLENDERBUILD as follows:
82
83         % ccmake $BLENDERSOURCE
84
85     A number of options appear which can be changed depending on your needs and
86     available dependencies (e.g. setting WITH_OPENEXR to OFF will disable support
87     for OpenEXR). It will also allow you to override default and detected paths 
88     (e.g. Python directories) and compile and link flags. When you are satisfied
89     used ccmake to re-configure the build files and exit.
90
91     It is also possible to use the commandline of 'cmake' to override certain
92     of these settings. 
93
94     5. Configuring the build after SVN updates
95     ------------------------------------------
96
97     The $BLENDERBUILD directory maintains a file called CMakeCache.txt which 
98     remembers the initial run's settings for subsequent generation runs. After
99     SVN updates that contain changes to the build system, rebuilding Blender will
100     automatically invoke CMake to regenerate the CMakeCache.txt and other files
101     as needed.
102
103     /Jacques Beaurain (jbinto)
104