@@ -4,16 +4,20 @@ set(MAX_LINK_MEM 4500 CACHE INTERNAL "maximum memory used by each linking job (i
44cmake_host_system_information (RESULT _num_cores QUERY NUMBER_OF_LOGICAL_CORES)
55cmake_host_system_information (RESULT _total_mem QUERY TOTAL_PHYSICAL_MEMORY)
66
7- math (EXPR _avg_compile_jobs "${_total_mem} / ${MAX_COMPILE_MEM} " )
8- if (_avg_compile_jobs EQUAL 0)
9- set (_avg_compile_jobs 1)
10- endif ()
11- if (_num_cores LESS _avg_compile_jobs)
12- set (_avg_compile_jobs ${_num_cores} )
7+ if (NINJA_MAX_COMPILE_JOBS)
8+ set (_avg_compile_jobs "${NINJA_MAX_COMPILE_JOBS} " )
9+ else ()
10+ math (EXPR _avg_compile_jobs "${_total_mem} / ${MAX_COMPILE_MEM} " )
11+ if (_avg_compile_jobs EQUAL 0)
12+ set (_avg_compile_jobs 1)
13+ endif ()
14+ if (_num_cores LESS _avg_compile_jobs)
15+ set (_avg_compile_jobs "${_num_cores} " )
16+ endif ()
17+ set (NINJA_MAX_COMPILE_JOBS "${_avg_compile_jobs} " CACHE STRING
18+ "The maximum number of concurrent compilation jobs, for Ninja build system." FORCE)
19+ mark_as_advanced (NINJA_MAX_COMPILE_JOBS)
1320endif ()
14- set (NINJA_MAX_COMPILE_JOBS "${_avg_compile_jobs} " CACHE STRING
15- "The maximum number of concurrent compilation jobs, for Ninja build system." FORCE)
16- mark_as_advanced (NINJA_MAX_COMPILE_JOBS)
1721if (NINJA_MAX_COMPILE_JOBS)
1822 math (EXPR _heavy_compile_jobs "${_avg_compile_jobs} / 2" )
1923 if (_heavy_compile_jobs EQUAL 0)
@@ -25,16 +29,20 @@ if(NINJA_MAX_COMPILE_JOBS)
2529 set (CMAKE_JOB_POOL_COMPILE avg_compile_job_pool)
2630endif ()
2731
28- math (EXPR _avg_link_jobs "${_total_mem} / ${MAX_LINK_MEM} " )
29- if (_avg_link_jobs EQUAL 0)
30- set (_avg_link_jobs 1)
31- endif ()
32- if (_num_cores LESS _avg_link_jobs)
33- set (_avg_link_jobs ${_num_cores} )
32+ if (NINJA_MAX_LINK_JOBS)
33+ set (_avg_link_jobs "${NINJA_MAX_LINK_JOBS} " )
34+ else ()
35+ math (EXPR _avg_link_jobs "${_total_mem} / ${MAX_LINK_MEM} " )
36+ if (_avg_link_jobs EQUAL 0)
37+ set (_avg_link_jobs 1)
38+ endif ()
39+ if (_num_cores LESS _avg_link_jobs)
40+ set (_avg_link_jobs "${_num_cores} " )
41+ endif ()
42+ set (NINJA_MAX_LINK_JOBS "${_avg_link_jobs} " CACHE STRING
43+ "The maximum number of concurrent link jobs, for Ninja build system." FORCE)
44+ mark_as_advanced (NINJA_MAX_LINK_JOBS)
3445endif ()
35- set (NINJA_MAX_LINK_JOBS "${_avg_link_jobs} " CACHE STRING
36- "The maximum number of concurrent link jobs, for Ninja build system." FORCE)
37- mark_as_advanced (NINJA_MAX_LINK_JOBS)
3846if (NINJA_MAX_LINK_JOBS)
3947 math (EXPR _heavy_link_jobs "${_avg_link_jobs} / 2" )
4048 if (_heavy_link_jobs EQUAL 0)
0 commit comments