diff options
author | Brad King <brad.king@kitware.com> | 2019-04-19 11:23:36 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2019-04-19 11:23:48 (GMT) |
commit | 8542152626590db6a13b20aa3d36214186c6b40d (patch) | |
tree | 0900294b3fe53b751c3e5812259dff420af7d472 /Tests | |
parent | bf64e50da4a36e17ea0e27a45a5277226e123210 (diff) | |
parent | a9428fc473ca6eff749bd9868e2caabf7f84cc39 (diff) | |
download | CMake-8542152626590db6a13b20aa3d36214186c6b40d.zip CMake-8542152626590db6a13b20aa3d36214186c6b40d.tar.gz CMake-8542152626590db6a13b20aa3d36214186c6b40d.tar.bz2 |
Merge topic 'test-find_package-resolve-symlinks'
a9428fc473 Tests: Fix FindPackageTest when path to source has a symlink
e27437d0e0 Tests/FindPackageTest: Tell Git to ignore temporary symlink path
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3244
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/FindPackageTest/.gitignore | 1 | ||||
-rw-r--r-- | Tests/FindPackageTest/CMakeLists.txt | 21 |
2 files changed, 14 insertions, 8 deletions
diff --git a/Tests/FindPackageTest/.gitignore b/Tests/FindPackageTest/.gitignore new file mode 100644 index 0000000..3aaef13 --- /dev/null +++ b/Tests/FindPackageTest/.gitignore @@ -0,0 +1 @@ +/symlink diff --git a/Tests/FindPackageTest/CMakeLists.txt b/Tests/FindPackageTest/CMakeLists.txt index 972580c..6c876a7 100644 --- a/Tests/FindPackageTest/CMakeLists.txt +++ b/Tests/FindPackageTest/CMakeLists.txt @@ -205,15 +205,20 @@ if(UNIX) message(SEND_ERROR "SetFoundResolved_DIR set by find_package() is set to \"${SetFoundResolved_DIR}\" (expected \"${SetFoundResolved_EXPECTED}\")") endif() - # Resolve symlinks when finding the package. - set(CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS TRUE) - set(SetFoundResolved_DIR "") - find_package(SetFoundResolved) - # ./symlink points back here so it should be gone when resolved. - set(SetFoundResolved_EXPECTED "${CMAKE_CURRENT_SOURCE_DIR}/cmake") - if(NOT "${SetFoundResolved_DIR}" STREQUAL "${SetFoundResolved_EXPECTED}") - message(SEND_ERROR "SetFoundResolved_DIR set by find_package() is set to \"${SetFoundResolved_DIR}\" (expected \"${SetFoundResolved_EXPECTED}\")") + # This part of the test only works if there are no symlinks in our path. + get_filename_component(real_src_dir "${CMAKE_CURRENT_SOURCE_DIR}" REALPATH) + if(real_src_dir STREQUAL CMAKE_CURRENT_SOURCE_DIR) + # Resolve symlinks when finding the package. + set(CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS TRUE) + set(SetFoundResolved_DIR "") + find_package(SetFoundResolved) + # ./symlink points back here so it should be gone when resolved. + set(SetFoundResolved_EXPECTED "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + if(NOT "${SetFoundResolved_DIR}" STREQUAL "${SetFoundResolved_EXPECTED}") + message(SEND_ERROR "SetFoundResolved_DIR set by find_package() is set to \"${SetFoundResolved_DIR}\" (expected \"${SetFoundResolved_EXPECTED}\")") + endif() endif() + # Cleanup. unset(CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS) file(REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/symlink") |