forked from bartvdbraak/blender
10f2ad1663
to the wiki for detailed cmake build setup instructions.
105 lines
3.9 KiB
Plaintext
105 lines
3.9 KiB
Plaintext
|
|
Blender CMake build system
|
|
============================
|
|
|
|
Contents
|
|
---------------
|
|
|
|
1. Introduction
|
|
2. Obtaining CMake
|
|
3. Building Blender
|
|
4. Generic Setup
|
|
5. Configuring the build after SVN updates
|
|
|
|
1. Introduction
|
|
---------------
|
|
|
|
This document describes general usage of the new CMake scripts. The
|
|
inner workings will be described in blender-cmake-dev.txt (TODO).
|
|
|
|
2. Obtaining CMake
|
|
------------------
|
|
|
|
CMake for can either be downloaded using your favorite package manager
|
|
or is also available from the CMake website at http://www.cmake.org
|
|
The website also contains some documentation on CMake usage but I found
|
|
the man page alone pretty helpful.
|
|
|
|
3. Building Blender
|
|
-------------------
|
|
|
|
Building Blender requires obtaining a compiler, library dependencies,
|
|
and correct setup depending on the system. For details on how to set
|
|
up a build on various operating systems, see the wiki documentation:
|
|
|
|
http://wiki.blender.org/index.php/Dev:Doc/Building_Blender
|
|
|
|
4. Generic Setup
|
|
----------------
|
|
|
|
CMake allows one to generate the build project files and binary objects
|
|
outside the source tree which can be pretty handy in working and experimenting
|
|
with different Blender configurations (Audio/NoAudio, GameEngine/NoGameEngine etc.)
|
|
while maintaining a clean source tree. It also makes it possible to generate files
|
|
for different build systems on the same source tree. This also has benefits for
|
|
general SVN management for the developer as patches and submit logs are much cleaner.
|
|
|
|
Create a directory outside the blender source tree where you would like to build
|
|
Blender (from now on called $BLENDERBUILD). On the commandline you can then run
|
|
the cmake command to generate your initial build files. First just run 'cmake' which
|
|
will inform you what the available generators are. Thn you can run
|
|
'cmake -G generator $BLENDERSOURCE' to generate the build files. Here is an example
|
|
of all this for Xcode:
|
|
|
|
% mkdir $BLENDERBUILD
|
|
% cd $BLENDERBUILD
|
|
% cmake
|
|
|
|
...
|
|
...
|
|
--version [file] = Show program name/version banner and exit.
|
|
|
|
Generators
|
|
|
|
The following generators are available on this platform:
|
|
KDevelop3 = Generates KDevelop 3 project files.
|
|
Unix Makefiles = Generates standard UNIX makefiles.
|
|
Xcode = Generate XCode project files.
|
|
|
|
|
|
|
|
% cmake -G Xcode $BLENDERSOURCE
|
|
...
|
|
...
|
|
-- Configuring blender
|
|
-- Configuring blenderplayer
|
|
-- Configuring done
|
|
-- Generating done
|
|
-- Build files have been written to: $BLENDERBUILD
|
|
|
|
This will generate the build files with default values. Specific features can
|
|
be enabled or disabled by running the ccmake "GUI" from $BLENDERBUILD as follows:
|
|
|
|
% ccmake $BLENDERSOURCE
|
|
|
|
A number of options appear which can be changed depending on your needs and
|
|
available dependencies (e.g. setting WITH_OPENEXR to OFF will disable support
|
|
for OpenEXR). It will also allow you to override default and detected paths
|
|
(e.g. Python directories) and compile and link flags. When you are satisfied
|
|
used ccmake to re-configure the build files and exit.
|
|
|
|
It is also possible to use the commandline of 'cmake' to override certain
|
|
of these settings.
|
|
|
|
5. Configuring the build after SVN updates
|
|
------------------------------------------
|
|
|
|
The $BLENDERBUILD directory maintains a file called CMakeCache.txt which
|
|
remembers the initial run's settings for subsequent generation runs. After
|
|
SVN updates that contain changes to the build system, rebuilding Blender will
|
|
automatically invoke CMake to regenerate the CMakeCache.txt and other files
|
|
as needed.
|
|
|
|
/Jacques Beaurain (jbinto)
|
|
|