summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2014-11-19 10:30:02 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2014-11-19 10:30:02 +0000
commitf1c381738b7fd2cc97353e9344a523a53a8ce574 (patch)
tree63748f1e9ce60ba950b2c021e0d7a475c24ef407
parent3ac3b251a96e1e99e3aebcf9d99da16682483f6f (diff)
downloadbcm5719-llvm-f1c381738b7fd2cc97353e9344a523a53a8ce574.tar.gz
bcm5719-llvm-f1c381738b7fd2cc97353e9344a523a53a8ce574.zip
Use ninja pools to limit the number of concurrent compile/link jobs.
This change makes use of the new "job pool" capability in cmake 3.0 with ninja generator to allow limiting the number of concurrent jobs of a certain type. llvm-svn: 222341
-rw-r--r--llvm/CMakeLists.txt15
-rw-r--r--llvm/docs/CMake.rst6
2 files changed, 21 insertions, 0 deletions
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index e3ddb267966..6691189b724 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -24,6 +24,21 @@ endif()
project(LLVM)
+# The following only works with the Ninja generator in CMake >= 3.0.
+set(LLVM_PARALLEL_COMPILE_JOBS "" CACHE STRING
+ "Define the maximum number of concurrent compilation jobs.")
+if(LLVM_PARALLEL_COMPILE_JOBS)
+ set_property(GLOBAL APPEND PROPERTY JOB_POOLS compile_job_pool=${LLVM_PARALLEL_COMPILE_JOBS})
+ set(CMAKE_JOB_POOL_COMPILE compile_job_pool)
+endif()
+
+set(LLVM_PARALLEL_LINK_JOBS "" CACHE STRING
+ "Define the maximum number of concurrent link jobs.")
+if(LLVM_PARALLEL_LINK_JOBS)
+ set_property(GLOBAL APPEND PROPERTY JOB_POOLS link_job_pool=${LLVM_PARALLEL_LINK_JOBS})
+ set(CMAKE_JOB_POOL_LINK link_job_pool)
+endif()
+
# Add path for custom modules
set(CMAKE_MODULE_PATH
${CMAKE_MODULE_PATH}
diff --git a/llvm/docs/CMake.rst b/llvm/docs/CMake.rst
index 4a5165b7a13..653fa16a675 100644
--- a/llvm/docs/CMake.rst
+++ b/llvm/docs/CMake.rst
@@ -291,6 +291,12 @@ LLVM-specific variables
are ``Address``, ``Memory``, ``MemoryWithOrigins`` and ``Undefined``.
Defaults to empty string.
+**LLVM_PARALLEL_COMPILE_JOBS**:STRING
+ Define the maximum number of concurrent compilation jobs.
+
+**LLVM_PARALLEL_LINK_JOBS**:STRING
+ Define the maximum number of concurrent link jobs.
+
**LLVM_BUILD_DOCS**:BOOL
Enables all enabled documentation targets (i.e. Doxgyen and Sphinx targets) to
be built as part of the normal build. If the ``install`` target is run then
OpenPOWER on IntegriCloud