foreach-var-scope-CMP0124-NEW.cmake 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. cmake_policy(SET CMP0124 NEW)
  2. foreach(VAR a b c)
  3. endforeach()
  4. if (DEFINED VAR)
  5. message(SEND_ERROR "Variable 'VAR' unexpectedly defined.")
  6. endif()
  7. set(LIST1 a b c)
  8. set(LIST2 x y z)
  9. foreach(VAR1_1 VAR1_2 IN ZIP_LISTS LIST1 LIST2)
  10. endforeach()
  11. if (DEFINED VAR1_1 OR DEFINED VAR1_2)
  12. message(SEND_ERROR "Variables 'VAR1_1' or 'VAR1_2' unexpectedly defined.")
  13. endif()
  14. set (VAR2 OLD)
  15. foreach(VAR2 a b c)
  16. endforeach()
  17. if (NOT DEFINED VAR2 OR NOT VAR2 STREQUAL "OLD")
  18. message(SEND_ERROR "Variable 'VAR2' not defined or wrong value.")
  19. endif()
  20. set (VAR2_2 OLD)
  21. foreach(VAR2_1 VAR2_2 IN ZIP_LISTS LIST1 LIST2)
  22. endforeach()
  23. if (DEFINED VAR2_1 OR NOT DEFINED VAR2_2)
  24. message(SEND_ERROR "Variable 'VAR2_1' unexpectedly defined or variable 'VAR2_2' not defined.")
  25. endif()
  26. set (VAR3 OLD CACHE STRING "")
  27. foreach(VAR3 a b c)
  28. endforeach()
  29. # check that only cache variable is defined
  30. set(OLD_VALUE "${VAR3}")
  31. unset(VAR3 CACHE)
  32. if (DEFINED VAR3 OR NOT OLD_VALUE STREQUAL "OLD")
  33. message(SEND_ERROR "Variable 'VAR3' wrongly defined or wrong value.")
  34. endif()
  35. set (VAR3_2 OLD CACHE STRING "")
  36. foreach(VAR3_1 VAR3_2 IN ZIP_LISTS LIST1 LIST2)
  37. endforeach()
  38. set(OLD_VALUE "${VAR3_2}")
  39. unset(VAR3_2 CACHE)
  40. if (DEFINED VAR3_1 OR DEFINED VAR3_2 OR NOT OLD_VALUE STREQUAL "OLD")
  41. message(SEND_ERROR "Variable 'VAR3_1' unexpectedly defined or variable 'VAR2_2' wrongly defined or wrong value.")
  42. endif()