# (includer selects CMP0144) list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_SOURCE_DIR}/PackageRoot) set(PackageRoot_BASE ${CMAKE_CURRENT_SOURCE_DIR}/PackageRoot) function(PrintPath label path) string(REPLACE "${PackageRoot_BASE}" "" out "${path}") message("${label} ${out}") endfunction() macro(RunTestCase) message("----------") PrintPath("FOO_ROOT :" "'${FOO_ROOT}'") PrintPath("ENV{FOO_ROOT}:" "'$ENV{FOO_ROOT}'") message("") find_package(Foo) message("find_package(Foo)") PrintPath("FOO_TEST_FILE_FOO:" "${FOO_TEST_FILE_FOO}") PrintPath("FOO_TEST_FILE_ZOT:" "${FOO_TEST_FILE_ZOT}") PrintPath("FOO_TEST_PATH_FOO:" "${FOO_TEST_PATH_FOO}") PrintPath("FOO_TEST_PATH_ZOT:" "${FOO_TEST_PATH_ZOT}") PrintPath("FOO_TEST_PROG_FOO:" "${FOO_TEST_PROG_FOO}") message("") unset(FOO_ROOT) unset(ENV{FOO_ROOT}) if(NOT CMAKE_HOST_WIN32) unset(Foo_ROOT) unset(ENV{Foo_ROOT}) endif() unset(FOO_TEST_FILE_FOO) unset(FOO_TEST_FILE_ZOT) unset(FOO_TEST_PATH_FOO) unset(FOO_TEST_PATH_ZOT) unset(FOO_TEST_PROG_FOO) unset(FOO_TEST_FILE_FOO CACHE) unset(FOO_TEST_FILE_ZOT CACHE) unset(FOO_TEST_PATH_FOO CACHE) unset(FOO_TEST_PATH_ZOT CACHE) unset(FOO_TEST_PROG_FOO CACHE) endmacro() RunTestCase() set(FOO_ROOT ${PackageRoot_BASE}/foo/cmake_root) set(ENV{FOO_ROOT} ${PackageRoot_BASE}/foo/env_root) if(RunCMake_TEST MATCHES "CaseSensitive") if(RunCMake_TEST STREQUAL "CMP0144-WARN-CaseSensitive-Mixed") set(Foo_ROOT "${FOO_ROOT}") set(ENV{Foo_ROOT} "$ENV{FOO_ROOT}") else() set(Foo_ROOT ${PackageRoot_BASE}/does_not_exist) set(ENV{Foo_ROOT} ${PackageRoot_BASE}/does_not_exist) endif() endif() RunTestCase() set(FOO_ROOT ${PackageRoot_BASE}/foo/cmake_root) if(RunCMake_TEST MATCHES "CaseSensitive") if(RunCMake_TEST STREQUAL "CMP0144-WARN-CaseSensitive-Mixed") set(Foo_ROOT "${FOO_ROOT}") else() set(Foo_ROOT ${PackageRoot_BASE}/does_not_exist) endif() endif() RunTestCase() set(ENV{FOO_ROOT} ${PackageRoot_BASE}/foo/env_root) if(RunCMake_TEST MATCHES "CaseSensitive") if(RunCMake_TEST STREQUAL "CMP0144-WARN-CaseSensitive-Mixed") set(ENV{Foo_ROOT} "$ENV{FOO_ROOT}") else() set(ENV{Foo_ROOT} ${PackageRoot_BASE}/does_not_exist) endif() endif() RunTestCase() message("----------")