blender php,Blender的代码与编译

本文详细介绍了如何从Blender官方GIT仓库获取源代码,自动或手动安装依赖,以及使用CMake进行编译,包括自动配置、手动设置参数和多核并行构建。适合Linux开发者深入理解Blender开发过程。
摘要由CSDN通过智能技术生成

1、获取源代码,Get the source

首先获取Blender的源码, 位于blender.org's的GIT仓库。

安装 GIT,如果还没有的话:

sudo apt-get update

sudo apt-get install git

Copy and paste the following instructions into a terminal window. The following commands create a blender-git folder in your home directory by downloading the latest source code commonly referred to as 'master'. An Internet connection is needed.

mkdir ~/blender-git

cd ~/blender-git

git clone http://git.blender.org/blender.git

cd blender

git submodule update --init --recursive

git submodule foreach git checkout master

git submodule foreach git pull --rebase origin master

If you want to update your git clone checkout to the latest source do (in ~/blender-git/blender/):

git pull --rebase

git submodule foreach git pull --rebase origin master

For additional information on using Git with Blender's sources, see: Tools/Git

2、安装依赖软件包,Install the dependencies

2.1 自动安装,Automatic dependencies installation

The preferred way to install dependencies under Linux is now to use the install_deps.sh script featured with Blender sources. It currently supports Debian (and derived), Fedora, Suse and Arch distributions. When using the install_deps.sh script, you are only required to install the following dependencies:

sudo apt-get update

sudo apt-get install git build-essential

Then, get the sources and run install_deps.sh as explained below.

To build with FFMPEG and Cycles enabled, various libraries are needed. These can be…

Installed through your distributions repositories.

Built manually.

Skipped (many dependencies are optional).

Managed by a script which checks for missing dependencies and installs them or compiles from sources.

The later solution is now the preferred one! Simply run:

cd ~/blender-git

./blender/build_files/build_environment/install_deps.sh

This script works for Debian/Redhat/SuSE based distributions, both 32 and 64 bits.

This scripts accepts some optional command lines arguments (use --help one to get an exhaustive list), among which:

--source

Where to store downloaded sources for libraries we have to build (defaults to ~/src/blender-deps).

--install

Where to install the libraries we have to build (defaults to /opt/lib).

--with-osl

Try to build OpenShadingLanguage. Note that this is still considered as experimental!

--skip-osl

Skip download and build OpenShadingLanguage.

Some commands in this script requires sudo, so you'll be likely asked couple of times for your password.

When the script finish installing/building all the packages, it'll print which parameters for CMake and SCons you should use to use compiled libraries.

555faf9af99e55dd706517540fed5654.png

If you have to compile your own boost libraries, you will have to tell Linux where to find them to get blender running. Just run the following commands as root user, from a terminal window:

echo "/opt/lib/boost/lib" > /etc/ld.so.conf.d/boost.conf

ldconfig

2.2 手工安装,Manual dependencies installation

If you still want to use the “manual” way, you’ll need to install the following packages:

Note: Packages to install may be more than what is listed here. Follow error messages which are outputted when trying to compile to learn what packages to install.

git, build-essential, libxi-dev, libsndfile1-dev, libopenexr-dev,

libopenjpeg-dev, libpng12-dev, libjpeg-dev libopenal-dev, libalut-dev, python3.4-dev,

libglu1-mesa-dev, libsdl-dev, libfreetype6-dev, libtiff4-dev,

libavdevice-dev, libavformat-dev, libavutil-dev, libavcodec-dev, libswscale-dev,

libx264-dev, libxvidcore4-dev, libmp3lame-dev, libspnav-dev, python3.4

As a final note, here are the key libraries that you may want to use with Blender:

Needed for interface scripts (building without Python is supported but not meant for general use).

Boost (min 1.49)

Necessary for Cycles, OSL, Audaspace, Internationalization…

Necessary to handle color spaces.

Necessary for Cycles and OSL (min 1.1 in this case).

LLVM (min 3.0)

Necessary for OSL.

Enable custom shaders under Cycles.

For handling most video formats/codecs.

3、使用CMake编译,Compile Blender with CMake

3.1 Installing CMake

From within your package manager, install:

cmake

a cmake's configuration tool like

ccmake (text based interface) or,

cmake-gui (GUI configuration tool).

3.2 Automatic CMake Setup

If you're not interested in manually setting up CMake build directory, configuring, building and installing in separate steps, we provide a convenience makefile in blenders source directory which sets up cmake for you.

cd ~/blender-git/blender

make

Updating blender is as simple as:

cd ~/blender-git/blender

make update

#或者:

#git pull --rebase

#git submodule foreach git pull --rebase origin master

make

Once the build finishes you'll get a message like..

blender installed, run from: /home/me/blender-git/build_linux/bin/blender

There are some pre-defined build targets:

make - some are turned off by default because they can be difficult to correctly configure for newer developers and aren't essential to use & develop Blender in most cases.

make lite - the quickest way to get a Blender build up & running, can also help to avoid installing a lot of dependencies if you don't need video-codecs, physics-sim & cycles rendering.

make full - this makes a complete build with all options enabled, matching the releases on blender.org.

For a full list of the optional targets type...

make help

3.3 Manual CMake Setup

If you want to have more control over your build and have configuration, building and installation as separate steps or have multiple build directories for a single source dir. You can follow these steps.

Preparing CMake's directory

Let's suppose that you've checked out Blender's source in the folder ~/blender-git/blender.

Please note that in some cases the "blender" directory may have a different name. Some branches are modified copies of the trunk/blender directory and are named e.g. soc-2009-name_of_participant.

Now you have to choose a location for CMake build files. In CMake you could do an "in-source" build or an "out-of-source" build, but currently in-source builds in Blender are not allowed.

Out-of-source build

By doing an "out-of-source" build you create a CMake's folder aside from ~/blender-git/blender, for example ~/blender-git/build:

mkdir ~/blender-git/buildcd ~/blender-git/build

cmake ../blender

This will generate makefiles in the build folder (~/blender-git/build).

Warning

As said above, in-source-builds where you build blender from the source code directory are not supported.

If CMake finds a CMakeCache.txt in the source code directory, it uses that instead of using ~/blender-git/build/CMakeCache.txt.

If you have tried to do an in-source build, you should remove any CMakeCache.txt from the source code directory before actually running the out-of-source build:rm -f ~/blender-git/blender/CMakeCache.txt

3.4 Editing CMake's Parameters

Note that CMake should detect correct parameters so you shouldn't need change defaults to simply to compile blender, this is only if you want to change defaults, make a debug build, disable features etc,

so you may want to skip this section for now and come back to it later if you want to make adjustments.

You can modify the build parameters in different ways:

editing ~/blender-git/build/CMakeCache.txt file in a text editor

using cmake-gui if your distro supports it

cmake-gui ../blender

Opens a graphical interface where you can easily change parameters and re-configure things.

using ccmake tool, with

ccmake ../blender

Opens a text interface where you can easily change parameters and re-configure things.

cmake parameters can also be easily set on the command line, for eg.

cmake ../blender \

-DCMAKE_INSTALL_PREFIX=/opt/blender \

-DWITH_INSTALL_PORTABLE=OFF \

-DWITH_BUILDINFO=OFF \

-DWITH_GAMEENGINE=OFF

These commands are exactly those found in ~/blender-git/build/CMakeCache.txt so you can copy commands from there and use them in the command line without running ccmake.

1bca6003b36541bae561f064f52b6930.png

bdc13c9178817449c1b4f7197f4eb622.png

Screenshot from cmake-gui, qt based gui for cmake

2eb8c3dccfe69b5a4642eaab46d87b46.png

bdc13c9178817449c1b4f7197f4eb622.png

Screenshot from ccmake, curse-based gui for cmake

3.4 Building Blender

After changes have been done and you have generated the makefiles, you can compile using the make command inside the build folder:

cd ~/blender-git/build

make

make install

530c1cd34e37d30d3ab8287f2ffc096c.png

Parallel Builds

For multi-core / multi processor systems you can build much faster by passing the jobs argument to make: -j(1+number_of_cores).

For example put "-j3" if you have a dual-core or "-j5" if you have a quad-core.

For Shell-scripts use GNU-Syntax: expr `nproc` + 1 or Bash-Syntax: $((`nproc`+1))If it's still not using all your CPU power, leave out the number: "-j" to spawn as many as possible build processes (usually 64).

Note that it may build faster, but make your system lag in the meanwhile.

Also notice the install target is used, this will copy scripts and documentation into ~/blender-git/build/bin

For future builds you can simply update the repository and re-run make.

cd ~/blender-git/blender

git pull --rebase

git submodule foreach git pull --rebase origin master

cd ~/blender-git/build

make

make install

Notice

Both portable & system installations are supported.

Portable installation is default where scripts and data files will be copied into the build '~/blender-git/build/bin' directory and can be moved to other systems easily.

Disable WITH_INSTALL_PORTABLE to install into CMAKE_INSTALL_PREFIX which uses a typical Unix FHS layout: bin/, share/blender/, man/ etc.

Static Linking

If you want to share your build with others (for example through graphicall), you should statically link against as much libraries as possible.

Listing needed shared libs

You can see all needed shared libraries by simply running ldd path/to/blender! Nice and easy!

Note: by default, Python is not static. To make it so, You'll have to edit PYTHON_LYBRARY to something like /usr/lib/x86_64-linux-gnu/libpython3.3m.a;/usr/lib/x86_64-linux-gnu/libexpat.a (exact paths depend on your OS).

Static Linking Each Library:

Enable general static linking

Set WITH_STATIC_LIBS to ON, so that CMake will try to make blender link against static libs, when available. Though not perfect, this should reduce quite nicely needed shared libs.

ffmpeg

Set the FFMPEG_LIBRARIES var to full paths of all needed libs (xvid, x264, etc.).

boost

Set (or create) Boost_USE_STATIC_LIBS to true. If you are using boost automatically built by the install_deps.sh script, you should not need to do anything else.

But if you are using your own distro's boost package, you most likely will have to set (or create) Boost_USE_ICU to true too (and install the relevant libicu development package), to get blender linking.

TODO: other libs?

See also

CMake

IDE setups with CMake

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值