让Blender小于200MB?源码编译选项记录
Blender源码编译其实并不是一件我们很关心的事情。但是同样记录于此。
开发工具要求
Subversion, Git, CMake and Visual Studio must all be installed.
● Visual Studio https://visualstudio.microsoft.com/
○ (free, be sure to install the 'Desktop Development with C++' workload)
○ 注意:2019版本需要大于16.9.16,2022版本需要 17.7版本以上
● Install a Subversion client, such as https://tortoisesvn.net/downloads.html
○ In the installer, enable Command Line Client Tools.
● Git https://gitforwindows.org/
○ In the installer, choose to add Git to your PATH to ensure make update can correctly function.
● Cmake https://cmake.org/
○ In the installer set the system path option to Add CMake to the system PATH for all users
具体编译过程参考:https://zhuanlan.zhihu.com/p/412454577
与编译相关的部分
build_files
在build_files/cmake/config 内有一些预设的cmake配置文件,里面也有使用示例。我们通过使用不同的配置文件,可以做到编译不同版本的输出。

默认提供了7种不同的配置。打开每一个cmake,都可以看到里面对blender的模块进行了开关选择。比如对于 blender_development.cmake, 内部的结构如下图所示

如果我们想要针对性的编译特定功能的blender,那么选择默认的7个中的一个,或者我们自己加一个cmake,就可以做到对blender指定模块的编译,同时还能用blender的核心功能。
对于windows平台,在build_files/windows 内有一个 parse_arguments.cmd 文件,这个文件被 主目录下的 make.bat 调用。

而我们在编译源码时,一般就在主目录下以 make + [ 配置参数 ] 的形式使用。比如对于编译blender全部功能的版本,则使用
make full
对于编译headless的版本,则使用
make headless
不同配置的参数列表,可以直接看 parse_arguments.cmd 内的代码来获知,如下图所示,可知有debug、builddir、with_tests、full等等配置。这一些配置就表示在CmakeLists中打开不同的编译开关。

选择不同编译选项的好处在于,blender的包大小可以得到明显改善。官方的blender2.93解压之后大概要占用600MB的空间,而Lite版本的源码编译之后,只需要占用180MB。