diff options
author | Marc Chevrier <marc.chevrier@sap.com> | 2015-09-25 14:09:25 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-09-28 15:30:41 (GMT) |
commit | 1ff96bf69c06b3cb55bd41ef1a958031d074baeb (patch) | |
tree | c240ba6f7f949b4ac381cb0fadf4abfb17997f54 /Modules | |
parent | 7c0b22a84e59c17e588da451ced454c6bc4232c2 (diff) | |
download | CMake-1ff96bf69c06b3cb55bd41ef1a958031d074baeb.zip CMake-1ff96bf69c06b3cb55bd41ef1a958031d074baeb.tar.gz CMake-1ff96bf69c06b3cb55bd41ef1a958031d074baeb.tar.bz2 |
ProcessorCount: Implement with psrinfo tool on recent SunOS versions
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/ProcessorCount.cmake | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/Modules/ProcessorCount.cmake b/Modules/ProcessorCount.cmake index 8f21adf..2c5d5ae 100644 --- a/Modules/ProcessorCount.cmake +++ b/Modules/ProcessorCount.cmake @@ -171,17 +171,30 @@ function(ProcessorCount var) endif() if(NOT count) - # Sun (systems where uname -X emits "NumCPU" in its output): - find_program(ProcessorCount_cmd_uname uname) - mark_as_advanced(ProcessorCount_cmd_uname) - if(ProcessorCount_cmd_uname) - execute_process(COMMAND ${ProcessorCount_cmd_uname} -X + # Sun (systems where psrinfo tool is available) + find_program(ProcessorCount_cmd_psrinfo psrinfo PATHS /usr/sbin /sbin) + mark_as_advanced(ProcessorCount_cmd_psrinfo) + if (ProcessorCount_cmd_psrinfo) + execute_process(COMMAND ${ProcessorCount_cmd_psrinfo} -p -v ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE - OUTPUT_VARIABLE uname_X_output) - string(REGEX MATCHALL "NumCPU = ([0-9]+)" procs "${uname_X_output}") + OUTPUT_VARIABLE psrinfo_output) + string(REGEX MATCH "([0-9]+) virtual processor" procs "${psrinfo_output}") set(count "${CMAKE_MATCH_1}") - #message("ProcessorCount: trying uname -X '${ProcessorCount_cmd_uname}'") + #message("ProcessorCount: trying psrinfo -p -v '${ProcessorCount_cmd_prvinfo}'") + else() + # Sun (systems where uname -X emits "NumCPU" in its output): + find_program(ProcessorCount_cmd_uname uname) + mark_as_advanced(ProcessorCount_cmd_uname) + if(ProcessorCount_cmd_uname) + execute_process(COMMAND ${ProcessorCount_cmd_uname} -X + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE uname_X_output) + string(REGEX MATCHALL "NumCPU = ([0-9]+)" procs "${uname_X_output}") + set(count "${CMAKE_MATCH_1}") + #message("ProcessorCount: trying uname -X '${ProcessorCount_cmd_uname}'") + endif() endif() endif() |