blender/build_files/cmake
Bastien Montagne 0d43d0bcab CMake: Add support of Ninja's pools to ease building on limited amount of RAM.
Many modern computers support a lot of threads (parrallel building
jobs), but are somewhat restricted in memory, when some building jobs
can require several GB each.

Ninja builder has pools, which extend the usual `-j X` make
parallelizing option, by allowing to specify different numbers of
parallel jobs for different targets.

This commit defines three pools, one for linking, one for usual compile,
and one for compiling some 'heavy' cpp libs, when a single file can
require GB of RAM in full debug builds.

Simply enabling WITH_NINJA_POOL_JOBS will try to set default sensible
values for those three pools based on your machine specifications, you
can then tweak further the values of NINJA_MAX_NUM_PARALLEL_ settings,
if you like.

On my system (8 cores, 16GB RAM), it allows to build a full debug with
all ASAN options build with roughly 7GB of RAM used at most, pretty much
as quickly as without that option (which would require up to 11GB of
available RAM at some points).

Review task: D4780.
2019-05-08 11:54:17 +02:00
..
config Cleanup: use 2 space indentation for CMake 2019-04-17 06:35:54 +02:00
example_scripts Cleanup: remove make wrapper 2019-01-24 23:25:18 +11:00
Modules Fix Embree link error after recent cmake changes 2019-04-18 14:28:37 +02:00
platform cmake: Fix python linker issues on windows. 2019-04-17 13:26:02 -06:00
buildinfo.cmake Cleanup: use 2 space indentation for CMake 2019-04-17 06:35:54 +02:00
clang_array_check.py Spelling fixes in comments and descriptions, patch by luzpaz. 2018-09-19 18:18:05 +02:00
cmake_consistency_check_config.py Cleanup: correct typo, no need for ./ prefix 2018-11-29 12:54:30 +11:00
cmake_consistency_check.py Cleanup: remove contributors for Python files 2019-02-05 09:17:00 +11:00
cmake_netbeans_project.py Cleanup: remove contributors for Python files 2019-02-05 09:17:00 +11:00
cmake_print_build_options.py Cleanup: move 'make help_features' into own file 2018-09-13 16:20:02 +10:00
cmake_qtcreator_project.py Cleanup: remove contributors for Python files 2019-02-05 09:17:00 +11:00
cmake_static_check_clang_array.py Cleanup: remove contributors for Python files 2019-02-05 09:17:00 +11:00
cmake_static_check_cppcheck.py Cleanup: remove contributors for Python files 2019-02-05 09:17:00 +11:00
cmake_static_check_smatch.py Cleanup: remove contributors for Python files 2019-02-05 09:17:00 +11:00
cmake_static_check_sparse.py Cleanup: remove contributors for Python files 2019-02-05 09:17:00 +11:00
cmake_static_check_splint.py Cleanup: remove contributors for Python files 2019-02-05 09:17:00 +11:00
macros.cmake CMake: Add support of Ninja's pools to ease building on limited amount of RAM. 2019-05-08 11:54:17 +02:00
packaging.cmake Cleanup: use 2 space indentation for CMake 2019-04-17 06:35:54 +02:00
project_info.py Cleanup: remove contributors for Python files 2019-02-05 09:17:00 +11:00
project_source_info.py Cleanup: remove contributors for Python files 2019-02-05 09:17:00 +11:00
RpmBuild.cmake Cleanup: use 2 space indentation for CMake 2019-04-17 06:35:54 +02:00