System.cmake 1006 B

12345678910111213141516171819202122232425262728293031323334353637
  1. enable_language(CXX)
  2. include(FetchContent)
  3. FetchContent_Declare(
  4. IncludesSystem
  5. SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/IncludesSystem
  6. SYSTEM
  7. )
  8. FetchContent_MakeAvailable(IncludesSystem)
  9. FetchContent_Declare(
  10. IncludesNonSystem
  11. SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/IncludesNonSystem
  12. )
  13. FetchContent_MakeAvailable(IncludesNonSystem)
  14. function(check_target_system target expected_value)
  15. get_target_property(var ${target} SYSTEM)
  16. if ((var AND NOT expected_value) OR (NOT var AND expected_value))
  17. message(SEND_ERROR "\
  18. The 'SYSTEM' property of ${target} should be ${expected_value}, \
  19. but got ${var}")
  20. endif()
  21. endfunction()
  22. check_target_system(foo OFF)
  23. check_target_system(bar ON)
  24. check_target_system(zot ON)
  25. check_target_system(subsub1foo OFF)
  26. check_target_system(subsub1bar ON)
  27. check_target_system(subsub1zot ON)
  28. check_target_system(subsub2foo OFF)
  29. check_target_system(subsub2bar ON)
  30. check_target_system(subsub2zot ON)
  31. check_target_system(foononsys OFF)
  32. check_target_system(barnonsys OFF)