From b7509dd674d9e0a1e428c5f4ceff7b78b47ac296 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 10 Oct 2019 13:28:08 -0400 Subject: Add option to configure Ninja link job pool for CMake's own binaries Create an undocumented `CMake_JOB_POOL_LINK_BIN` option that builders can set to avoid linking too many of our binaries at once. --- Source/CMakeLists.txt | 5 +++++ Source/CursesDialog/CMakeLists.txt | 4 ++++ Source/QtDialog/CMakeLists.txt | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 63e08de..d89a69d 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -1193,6 +1193,11 @@ if(WIN32) endforeach() endif() +if(CMake_JOB_POOL_LINK_BIN) + set_property(TARGET ${_tools} PROPERTY JOB_POOL_LINK "link-bin") + set_property(GLOBAL APPEND PROPERTY JOB_POOLS "link-bin=${CMake_JOB_POOL_LINK_BIN}") +endif() + # Install tools foreach(_tool ${_tools}) diff --git a/Source/CursesDialog/CMakeLists.txt b/Source/CursesDialog/CMakeLists.txt index 7009717..a9e46fd5 100644 --- a/Source/CursesDialog/CMakeLists.txt +++ b/Source/CursesDialog/CMakeLists.txt @@ -34,5 +34,9 @@ else() target_link_libraries(ccmake cmForm) endif() +if(CMake_JOB_POOL_LINK_BIN) + set_property(TARGET ccmake PROPERTY JOB_POOL_LINK "link-bin") +endif() + CMake_OPTIONAL_COMPONENT(ccmake) install(TARGETS ccmake DESTINATION ${CMAKE_BIN_DIR} ${COMPONENT}) diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt index cb89d19..98dd0e2 100644 --- a/Source/QtDialog/CMakeLists.txt +++ b/Source/QtDialog/CMakeLists.txt @@ -178,6 +178,10 @@ if(WIN32) target_sources(cmake-gui PRIVATE $) endif() +if(CMake_JOB_POOL_LINK_BIN) + set_property(TARGET cmake-gui PROPERTY JOB_POOL_LINK "link-bin") +endif() + # cmake-gui has not been updated for `include-what-you-use`. # Block the tool until this is done. set_target_properties(cmake-gui PROPERTIES -- cgit v0.12