PushCheckStateTest.cmake.in 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. include(CMakePushCheckState)
  2. set(CMAKE_REQUIRED_INCLUDES dir1)
  3. set(CMAKE_REQUIRED_DEFINITIONS defs1 )
  4. set(CMAKE_REQUIRED_LIBRARIES lib1)
  5. set(CMAKE_REQUIRED_FLAGS flag1)
  6. set(CMAKE_REQUIRED_QUIET 1)
  7. cmake_push_check_state()
  8. set(CMAKE_REQUIRED_INCLUDES dir2)
  9. set(CMAKE_REQUIRED_DEFINITIONS defs2)
  10. set(CMAKE_REQUIRED_LIBRARIES lib2)
  11. set(CMAKE_REQUIRED_FLAGS flag2)
  12. set(CMAKE_REQUIRED_QUIET 2)
  13. cmake_push_check_state()
  14. set(CMAKE_REQUIRED_DEFINITIONS defs3)
  15. set(CMAKE_REQUIRED_INCLUDES dir3)
  16. set(CMAKE_REQUIRED_DEFINITIONS defs3)
  17. set(CMAKE_REQUIRED_LIBRARIES lib3)
  18. set(CMAKE_REQUIRED_FLAGS flag3)
  19. set(CMAKE_REQUIRED_QUIET 3)
  20. cmake_pop_check_state()
  21. foreach(pair IN ITEMS
  22. REQUIRED_INCLUDES|dir2
  23. REQUIRED_DEFINITIONS|defs2
  24. REQUIRED_LIBRARIES|lib2
  25. REQUIRED_FLAGS|flag2
  26. REQUIRED_QUIET|2
  27. )
  28. string(REPLACE "|" ";" pair "${pair}")
  29. list(GET pair 0 var)
  30. list(GET pair 1 expected)
  31. if (NOT "${CMAKE_${var}}" STREQUAL "${expected}")
  32. set(fatal TRUE)
  33. message("ERROR: CMAKE_${var} is \"${CMAKE_${var}}\" (expected \"${expected}\")" )
  34. endif()
  35. endforeach()
  36. cmake_pop_check_state()
  37. foreach(pair IN ITEMS
  38. REQUIRED_INCLUDES|dir1
  39. REQUIRED_DEFINITIONS|defs1
  40. REQUIRED_LIBRARIES|lib1
  41. REQUIRED_FLAGS|flag1
  42. REQUIRED_QUIET|1
  43. )
  44. string(REPLACE "|" ";" pair "${pair}")
  45. list(GET pair 0 var)
  46. list(GET pair 1 expected)
  47. if (NOT "${CMAKE_${var}}" STREQUAL "${expected}")
  48. set(fatal TRUE)
  49. message("ERROR: CMAKE_${var} is \"${CMAKE_${var}}\" (expected \"${expected}\")" )
  50. endif()
  51. endforeach()
  52. if(fatal)
  53. message(FATAL_ERROR "cmake_push_check_state() test failed")
  54. endif()