diff options
Diffstat (limited to 'Tests/RunCMake/find_package/RunCMakeTest.cmake')
-rw-r--r-- | Tests/RunCMake/find_package/RunCMakeTest.cmake | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Tests/RunCMake/find_package/RunCMakeTest.cmake b/Tests/RunCMake/find_package/RunCMakeTest.cmake index b2d1bf6..32e54d5 100644 --- a/Tests/RunCMake/find_package/RunCMakeTest.cmake +++ b/Tests/RunCMake/find_package/RunCMakeTest.cmake @@ -51,8 +51,38 @@ run_cmake(VersionRangeConfigStd2) run_cmake_with_options(IgnoreInstallPrefix "-DCMAKE_INSTALL_PREFIX=${RunCMake_SOURCE_DIR}/PackageRoot/foo/cmake_root") run_cmake(IgnorePath) run_cmake(IgnorePrefixPath) +run_cmake(REGISTRY_VIEW-no-view) +run_cmake(REGISTRY_VIEW-wrong-view) +run_cmake(REGISTRY_VIEW-propagated) + if(UNIX AND NOT MSYS # FIXME: This works on CYGWIN but not on MSYS ) run_cmake(SetFoundResolved) endif() + +if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") + # Tests using the Windows registry + find_program(REG NAMES "reg.exe" NO_CACHE) + if (REG) + ## check host architecture + cmake_host_system_information(RESULT result QUERY WINDOWS_REGISTRY "HKCU" SUBKEYS VIEW 64 ERROR_VARIABLE status) + if (status STREQUAL "") + set(ARCH "64bit") + else() + set(ARCH "32bit") + endif() + + # crete some entries in the registry + cmake_path(CONVERT "${RunCMake_SOURCE_DIR}/registry_host${ARCH}.reg" TO_NATIVE_PATH_LIST registry_data) + execute_process(COMMAND "${REG}" import "${registry_data}" OUTPUT_QUIET ERROR_QUIET) + + run_cmake_with_options(Registry-query -DARCH=${ARCH}) + + # clean-up registry + execute_process(COMMAND "${REG}" delete "HKCU\\SOFTWARE\\Classes\\CLSID\\CMake-Tests\\find_package" /f OUTPUT_QUIET ERROR_QUIET) + if (ARCH STREQUAL "64bit") + execute_process(COMMAND "${REG}" delete "HKCU\\SOFTWARE\\Classes\\WOW6432Node\\CLSID\\CMake-Tests\\find_package" /f OUTPUT_QUIET ERROR_QUIET) + endif() + endif() +endif() |