Skip to content

Commit

Permalink
Simplified get_num_threads.
Browse files Browse the repository at this point in the history
Should have no trace of machine specifics now
  • Loading branch information
DavidAce committed Jun 2, 2021
1 parent 3191264 commit d3398a0
Showing 1 changed file with 13 additions and 48 deletions.
61 changes: 13 additions & 48 deletions cmake/GetNumThreads.cmake
Original file line number Diff line number Diff line change
@@ -1,60 +1,25 @@
cmake_minimum_required(VERSION 3.14)
function(get_num_threads num_threads)
cmake_host_system_information(RESULT _host_name QUERY HOSTNAME)
if(${_host_name} MATCHES "travis|TRAVIS|Travis")
message(STATUS "NUM_THREADS : 2 (travis-ci)")
set(${num_threads} 2 PARENT_SCOPE)
return()
endif()
if(CMAKE_BUILD_PARALLEL_LEVEL)
# message(STATUS "NUM_THREADS : ${CMAKE_BUILD_PARALLEL_LEVEL}")
set(${num_threads} ${CMAKE_BUILD_PARALLEL_LEVEL} PARENT_SCOPE)
set(ENV{CMAKE_BUILD_PARALLEL_LEVEL} ${CMAKE_BUILD_PARALLEL_LEVEL})
return()
endif()

if(${_host_name} MATCHES "ThinkStation")
# message(STATUS "NUM_THREADS : 8")
set(${num_threads} 8 PARENT_SCOPE)
return()
endif()
if(${_host_name} MATCHES "raken")
# message(STATUS "NUM_THREADS : 32")
set(${num_threads} 32 PARENT_SCOPE)
return()
endif()
if(${_host_name} MATCHES "tetralith")
# message(STATUS "NUM_THREADS : 16")
set(${num_threads} 16 PARENT_SCOPE)
return()
endif()
if(DEFINED ENV{MAKEFLAGS})
if($ENV{CMAKE_BUILD_PARALLEL_LEVEL})
set(NUM $ENV{CMAKE_BUILD_PARALLEL_LEVEL})
elseif(CMAKE_BUILD_PARALLEL_LEVEL)
set(NUM ${CMAKE_BUILD_PARALLEL_LEVEL})
elseif(DEFINED ENV{MAKEFLAGS})
string(REGEX MATCH "-j[ ]*[0-9]+|--jobs[ ]*[0-9]+" REGMATCH "$ENV{MAKEFLAGS}")
string(REGEX MATCH "[0-9]+" NUM "${REGMATCH}")
if(NUM)
# message(STATUS "NUM_THREADS : ${NUM}")
set(${num_threads} ${NUM} PARENT_SCOPE)
return()
endif()
endif()
if(MAKE_THREADS)
elseif(MAKE_THREADS)
string(REGEX MATCH "-j[ ]*[0-9]+|--jobs[ ]*[0-9]+" REGMATCH "${MAKE_THREADS}")
string(REGEX MATCH "[0-9]+" NUM "${REGMATCH}")
if(NUM)
message(STATUS "NUM_THREADS : ${NUM}")
set(${num_threads} ${NUM} PARENT_SCOPE)
return()
endif()
else()
include(ProcessorCount)
ProcessorCount(NUM)
endif()
include(ProcessorCount)
ProcessorCount(NUM)
if(NUM)
# message(STATUS "NUM_THREADS : ${NUM}")
set(${num_threads} ${NUM} PARENT_SCOPE)
return()
if(NOT NUM)
set(NUM 1)
endif()


set(${num_threads} 1 PARENT_SCOPE)

set(${num_threads} ${NUM} PARENT_SCOPE)
set(ENV{CMAKE_BUILD_PARALLEL_LEVEL} ${NUM})
endfunction()

0 comments on commit d3398a0

Please sign in to comment.