CMakeLists.txt 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. cmake_minimum_required(VERSION 2.6)
  2. project(EnvironmentProj)
  3. add_executable(Environment main.cxx)
  4. enable_testing()
  5. add_test(Environment1 Environment)
  6. add_test(Environment2 Environment)
  7. add_test(EchoEnvironment1 ${CMAKE_COMMAND} -E environment)
  8. add_test(EchoEnvironment2 ${CMAKE_COMMAND} -E environment)
  9. add_test(EchoEnvironment3 ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_SOURCE_DIR}/check_mod.cmake")
  10. # Make sure "CMAKE_ENV.*Happy Thanksgiving" is in the output of
  11. # the "1" tests:
  12. #
  13. set_tests_properties(Environment1 EchoEnvironment1 PROPERTIES
  14. ENVIRONMENT "CMAKE_ENVIRONMENT_TEST_VAR=Happy Thanksgiving!"
  15. PASS_REGULAR_EXPRESSION "CMAKE_ENV.*Happy Thanksgiving"
  16. )
  17. # Make sure "CMAKE_ENV.*Happy Thanksgiving" is *NOT* in the output of
  18. # the "2" tests:
  19. #
  20. set_tests_properties(Environment2 EchoEnvironment2 PROPERTIES
  21. FAIL_REGULAR_EXPRESSION "CMAKE_ENV.*Happy Thanksgiving"
  22. )
  23. set_property(TEST EchoEnvironment3
  24. PROPERTY ENVIRONMENT
  25. "SET_FROM_ENVIRONMENT_PROPERTY_unset=base"
  26. "SET_FROM_ENVIRONMENT_PROPERTY_replace=base"
  27. "SET_FROM_ENVIRONMENT_PROPERTY_string=base"
  28. "SET_FROM_ENVIRONMENT_PROPERTY_path=base"
  29. "SET_FROM_ENVIRONMENT_PROPERTY_list=base"
  30. )
  31. set_property(TEST EchoEnvironment3
  32. PROPERTY ENVIRONMENT_MODIFICATION
  33. # Modifying variables set in the ambient environment (see properties for
  34. # this test in `Tests/CMakeLists.txt`).
  35. "SET_FROM_AMBIENT_unset=unset:"
  36. "SET_FROM_AMBIENT_replace=set:new"
  37. "SET_FROM_AMBIENT_string=string_append:new"
  38. "SET_FROM_AMBIENT_path=path_list_append:new"
  39. "SET_FROM_AMBIENT_list=cmake_list_append:new"
  40. # Modifying variables set in the `ENVIRONMENT` property.
  41. "SET_FROM_ENVIRONMENT_PROPERTY_unset=unset:"
  42. "SET_FROM_ENVIRONMENT_PROPERTY_replace=set:new"
  43. "SET_FROM_ENVIRONMENT_PROPERTY_string=string_append:new"
  44. "SET_FROM_ENVIRONMENT_PROPERTY_path=path_list_append:new"
  45. "SET_FROM_ENVIRONMENT_PROPERTY_list=cmake_list_append:new"
  46. # Variables expected to be unset.
  47. "UNSET_EXPLICIT=set:value"
  48. "UNSET_EXPLICIT=unset:"
  49. "UNSET_VIA_RESET=set:value"
  50. "UNSET_VIA_RESET=reset:"
  51. # Direct settings.
  52. "DIRECT=set:old"
  53. "DIRECT=set:new"
  54. # String manipulation.
  55. "STRING_MANIP=set:-core-"
  56. "STRING_MANIP=string_append:post-"
  57. "STRING_MANIP=string_prepend:-pre"
  58. "STRING_MANIP=string_append:suffix"
  59. "STRING_MANIP=string_prepend:prefix"
  60. # String manipulation on non-existent.
  61. "STRING_DNE=string_append:post-"
  62. "STRING_DNE=string_prepend:-pre"
  63. "STRING_DNE=string_append:suffix"
  64. "STRING_DNE=string_prepend:prefix"
  65. # Path manipulation.
  66. "PATH_MANIP=set:core"
  67. "PATH_MANIP=path_list_append:post"
  68. "PATH_MANIP=path_list_prepend:pre"
  69. "PATH_MANIP=path_list_append:suffix"
  70. "PATH_MANIP=path_list_prepend:prefix"
  71. # Path manipulation on non-existent.
  72. "PATH_DNE=path_list_append:post"
  73. "PATH_DNE=path_list_prepend:pre"
  74. "PATH_DNE=path_list_append:suffix"
  75. "PATH_DNE=path_list_prepend:prefix"
  76. # CMake list manipulation.
  77. "CMAKE_LIST_MANIP=set:core"
  78. "CMAKE_LIST_MANIP=cmake_list_append:post"
  79. "CMAKE_LIST_MANIP=cmake_list_prepend:pre"
  80. "CMAKE_LIST_MANIP=cmake_list_append:suffix"
  81. "CMAKE_LIST_MANIP=cmake_list_prepend:prefix"
  82. # CMake list manipulation on non-existent.
  83. "CMAKE_LIST_DNE=cmake_list_append:post"
  84. "CMAKE_LIST_DNE=cmake_list_prepend:pre"
  85. "CMAKE_LIST_DNE=cmake_list_append:suffix"
  86. "CMAKE_LIST_DNE=cmake_list_prepend:prefix"
  87. )