Skip to content

Commit

Permalink
Merge pull request #26 from commontk/support-cmake-job-pool
Browse files Browse the repository at this point in the history
ExternalProjectDependency: If set, propagate CMAKE_JOB_* variables
  • Loading branch information
jcfr committed Mar 30, 2018
2 parents 2c013f8 + f3c71b7 commit 9c98004
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 1 deletion.
3 changes: 3 additions & 0 deletions ExternalProjectDependency.cmake
Expand Up @@ -443,6 +443,9 @@ function(_sb_get_external_project_arguments proj varname)
# Automatically propagate CMake options
foreach(_cmake_option IN ITEMS
CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_JOB_POOL_COMPILE
CMAKE_JOB_POOL_LINK
CMAKE_JOB_POOLS
)
if(DEFINED ${_cmake_option})
list(APPEND _ep_arguments CMAKE_CACHE_ARGS
Expand Down
8 changes: 7 additions & 1 deletion README.rst
Expand Up @@ -38,7 +38,13 @@ Features
* Support Ninja generator:

* If supported, ``USES_TERMINAL_*`` options are always set to dependent projects.
* ``CMAKE_EXPORT_COMPILE_COMMANDS`` variable is automatically propagated to all projects.
* The following variables are automatically propagated to all projects:

* ``CMAKE_EXPORT_COMPILE_COMMANDS``
* ``CMAKE_JOB_POOL_COMPILE``
* ``CMAKE_JOB_POOL_LINK``
* ``CMAKE_JOB_POOLS``


* Intuitive handling of USE_SYSTEM options.

Expand Down
Expand Up @@ -14,6 +14,13 @@ if(BUILD_EXTERNAL_PROJECTS)
message(FATAL_ERROR "CMAKE_EXPORT_COMPILE_COMMANDS should be OFF [${CMAKE_EXPORT_COMPILE_COMMANDS}]!")
endif()
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

if(CMAKE_JOB_POOLS OR CMAKE_JOB_POOL_COMPILE OR CMAKE_JOB_POOL_LINK)
message(FATAL_ERROR "CMAKE_JOB_* variables should not be set !")
endif()
set(CMAKE_JOB_POOL_COMPILE "compile")
set(CMAKE_JOB_POOL_LINK "link")
set(CMAKE_JOB_POOLS "compile=5;link=2")
endif()

#-----------------------------------------------------------------------------
Expand Down
Expand Up @@ -12,7 +12,18 @@ string(REPLACE "-build" "" _project_name ${_project_name})
project(${_project_name} NONE)
message(STATUS "Configuring project ${PROJECT_NAME}")
message(STATUS " CMAKE_EXPORT_COMPILE_COMMANDS: ${CMAKE_EXPORT_COMPILE_COMMANDS}")
message(STATUS " CMAKE_JOB_POOL_COMPILE: ${CMAKE_JOB_POOL_COMPILE}")
message(STATUS " CMAKE_JOB_POOL_LINK: ${CMAKE_JOB_POOL_LINK}")
message(STATUS " CMAKE_JOB_POOLS: ${CMAKE_JOB_POOLS}")

set(expected_CMAKE_EXPORT_COMPILE_COMMANDS "ON")
check_variable("CMAKE_EXPORT_COMPILE_COMMANDS" "${expected_CMAKE_EXPORT_COMPILE_COMMANDS}")

set(expected_CMAKE_JOB_POOL_COMPILE "compile")
check_variable("CMAKE_JOB_POOL_COMPILE" "${expected_CMAKE_JOB_POOL_COMPILE}")

set(expected_CMAKE_JOB_POOL_LINK "link")
check_variable("CMAKE_JOB_POOL_LINK" "${expected_CMAKE_JOB_POOL_LINK}")

set(expected_CMAKE_JOB_POOLS "compile=5;link=2")
check_variable("CMAKE_JOB_POOLS" "${expected_CMAKE_JOB_POOLS}")

0 comments on commit 9c98004

Please sign in to comment.