cmake_minimum_required(VERSION 2.6) project(EnvironmentProj) add_executable(Environment main.cxx) enable_testing() add_test(Environment1 Environment) add_test(Environment2 Environment) add_test(EchoEnvironment1 ${CMAKE_COMMAND} -E environment) add_test(EchoEnvironment2 ${CMAKE_COMMAND} -E environment) add_test(EchoEnvironment3 ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_SOURCE_DIR}/check_mod.cmake") # Make sure "CMAKE_ENV.*Happy Thanksgiving" is in the output of # the "1" tests: # set_tests_properties(Environment1 EchoEnvironment1 PROPERTIES ENVIRONMENT "CMAKE_ENVIRONMENT_TEST_VAR=Happy Thanksgiving!" PASS_REGULAR_EXPRESSION "CMAKE_ENV.*Happy Thanksgiving" ) # Make sure "CMAKE_ENV.*Happy Thanksgiving" is *NOT* in the output of # the "2" tests: # set_tests_properties(Environment2 EchoEnvironment2 PROPERTIES FAIL_REGULAR_EXPRESSION "CMAKE_ENV.*Happy Thanksgiving" ) set_property(TEST EchoEnvironment3 PROPERTY ENVIRONMENT "SET_FROM_ENVIRONMENT_PROPERTY_unset=base" "SET_FROM_ENVIRONMENT_PROPERTY_replace=base" "SET_FROM_ENVIRONMENT_PROPERTY_string=base" "SET_FROM_ENVIRONMENT_PROPERTY_path=base" "SET_FROM_ENVIRONMENT_PROPERTY_list=base" ) set_property(TEST EchoEnvironment3 PROPERTY ENVIRONMENT_MODIFICATION # Modifying variables set in the ambient environment (see properties for # this test in `Tests/CMakeLists.txt`). "SET_FROM_AMBIENT_unset=unset:" "SET_FROM_AMBIENT_replace=set:new" "SET_FROM_AMBIENT_string=string_append:new" "SET_FROM_AMBIENT_path=path_list_append:new" "SET_FROM_AMBIENT_list=cmake_list_append:new" # Modifying variables set in the `ENVIRONMENT` property. "SET_FROM_ENVIRONMENT_PROPERTY_unset=unset:" "SET_FROM_ENVIRONMENT_PROPERTY_replace=set:new" "SET_FROM_ENVIRONMENT_PROPERTY_string=string_append:new" "SET_FROM_ENVIRONMENT_PROPERTY_path=path_list_append:new" "SET_FROM_ENVIRONMENT_PROPERTY_list=cmake_list_append:new" # Variables expected to be unset. "UNSET_EXPLICIT=set:value" "UNSET_EXPLICIT=unset:" "UNSET_VIA_RESET=set:value" "UNSET_VIA_RESET=reset:" # Direct settings. "DIRECT=set:old" "DIRECT=set:new" # String manipulation. "STRING_MANIP=set:-core-" "STRING_MANIP=string_append:post-" "STRING_MANIP=string_prepend:-pre" "STRING_MANIP=string_append:suffix" "STRING_MANIP=string_prepend:prefix" # String manipulation on non-existent. "STRING_DNE=string_append:post-" "STRING_DNE=string_prepend:-pre" "STRING_DNE=string_append:suffix" "STRING_DNE=string_prepend:prefix" # Path manipulation. "PATH_MANIP=set:core" "PATH_MANIP=path_list_append:post" "PATH_MANIP=path_list_prepend:pre" "PATH_MANIP=path_list_append:suffix" "PATH_MANIP=path_list_prepend:prefix" # Path manipulation on non-existent. "PATH_DNE=path_list_append:post" "PATH_DNE=path_list_prepend:pre" "PATH_DNE=path_list_append:suffix" "PATH_DNE=path_list_prepend:prefix" # CMake list manipulation. "CMAKE_LIST_MANIP=set:core" "CMAKE_LIST_MANIP=cmake_list_append:post" "CMAKE_LIST_MANIP=cmake_list_prepend:pre" "CMAKE_LIST_MANIP=cmake_list_append:suffix" "CMAKE_LIST_MANIP=cmake_list_prepend:prefix" # CMake list manipulation on non-existent. "CMAKE_LIST_DNE=cmake_list_append:post" "CMAKE_LIST_DNE=cmake_list_prepend:pre" "CMAKE_LIST_DNE=cmake_list_append:suffix" "CMAKE_LIST_DNE=cmake_list_prepend:prefix" )