|
|
|
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"
|
|
|
|
)
|