ProcessorCountTest.cmake.in 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. include(ProcessorCount)
  2. ProcessorCount(processor_count)
  3. message("### 1. This line should be the first line of text in the test output.")
  4. message("### 2. If there was output from this test before line #1, then the")
  5. message("### 3. ProcessorCount(...) function call is emitting output that it shouldn't...")
  6. message("processor_count='${processor_count}'")
  7. execute_process(
  8. COMMAND "@CMAKE_BINARY_DIR@/Source/kwsys/$ENV{CMAKE_CONFIG_TYPE}/cmsysTestsCxx"
  9. testSystemInformation
  10. OUTPUT_VARIABLE tsi_out
  11. ERROR_VARIABLE tsi_err)
  12. string(REGEX REPLACE "(.*)GetNumberOfPhysicalCPU:.([0-9]*)(.*)" "\\2"
  13. system_info_processor_count "${tsi_out}")
  14. message("system_info_processor_count='${system_info_processor_count}'")
  15. if(system_info_processor_count EQUAL processor_count)
  16. message("processor count matches system information")
  17. endif()
  18. message("")
  19. message("CTEST_FULL_OUTPUT (Avoid ctest truncation of output)")
  20. message("")
  21. message("tsi_out='${tsi_out}'")
  22. message("tsi_err='${tsi_err}'")
  23. message("")
  24. # Evaluate possible error conditions:
  25. #
  26. set(err 0)
  27. set(fatal 0)
  28. if(processor_count EQUAL 0)
  29. set(err 1)
  30. set(fatal 1)
  31. message("err 1")
  32. message("could not determine number of processors
  33. - Additional code for this platform needed in ProcessorCount.cmake?")
  34. message("")
  35. endif()
  36. if(NOT system_info_processor_count EQUAL processor_count)
  37. set(err 2)
  38. message("err 2")
  39. message("SystemInformation and ProcessorCount.cmake disagree:\n"
  40. "processor_count='${processor_count}'\n"
  41. "SystemInformation processor_count='${system_info_processor_count}'")
  42. message("")
  43. endif()
  44. if(NOT processor_count MATCHES "^[0-9]+$")
  45. set(err 3)
  46. set(fatal 1)
  47. message("err 3")
  48. message("ProcessorCount function returned a non-integer")
  49. message("")
  50. endif()
  51. if(NOT system_info_processor_count MATCHES "^[0-9]+$")
  52. set(err 4)
  53. message("err 4")
  54. message("SystemInformation ProcessorCount function returned a non-integer")
  55. message("")
  56. endif()
  57. if(fatal)
  58. message(FATAL_ERROR "processor_count='${processor_count}' - see previous test output for more details - it is likely more/different code is needed in ProcessorCount.cmake to fix this test failure - processor_count should be a non-zero positive integer (>=1) for all supported CMake platforms")
  59. endif()