ProcessorCountTest.cmake.in 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. include(ProcessorCount)
  2. ProcessorCount(processor_count)
  3. message("processor_count='${processor_count}'")
  4. execute_process(
  5. COMMAND "@CMAKE_BINARY_DIR@/Source/kwsys/$ENV{CMAKE_CONFIG_TYPE}/cmsysTestsCxx"
  6. testSystemInformation
  7. OUTPUT_VARIABLE out)
  8. string(REGEX REPLACE "(.*)GetNumberOfPhysicalCPU:.([0-9]*)(.*)" "\\2"
  9. system_info_processor_count "${out}")
  10. message("system_info_processor_count='${system_info_processor_count}'")
  11. if(system_info_processor_count EQUAL processor_count)
  12. message("processor count matches system information")
  13. endif()
  14. # Evaluate possible error conditions:
  15. #
  16. set(err 0)
  17. if(processor_count EQUAL 0)
  18. set(err 1)
  19. message("could not determine number of processors
  20. - Additional code for this platform needed in ProcessorCount.cmake?")
  21. endif()
  22. if(NOT system_info_processor_count EQUAL processor_count)
  23. set(err 2)
  24. message("SystemInformation and ProcessorCount.cmake disagree:\n"
  25. "processor_count='${processor_count}'\n"
  26. "SystemInformation processor_count='${system_info_processor_count}'")
  27. endif()
  28. if(NOT processor_count MATCHES "^[0-9]+$")
  29. set(err 3)
  30. message("ProcessorCount function returned a non-integer")
  31. endif()
  32. if(NOT system_info_processor_count MATCHES "^[0-9]+$")
  33. set(err 4)
  34. message("SystemInformation ProcessorCount function returned a non-integer")
  35. endif()
  36. if(err)
  37. message(FATAL_ERROR "err='${err}'")
  38. endif()