summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/install/TARGETS-FILE_RPATH_CHANGE-check-common.cmake
diff options
context:
space:
mode:
authorDennis Klein <d.klein@gsi.de>2019-06-13 14:40:01 (GMT)
committerDennis Klein <d.klein@gsi.de>2019-06-13 14:41:11 (GMT)
commit4caefbb42369cf652df920edd07ee9e81eb95577 (patch)
tree4ebb103777b4c69889c25c3c55f7ee3ad571a9c6 /Tests/RunCMake/install/TARGETS-FILE_RPATH_CHANGE-check-common.cmake
parent749ce48eb5b2876b347115a857839fdf9c24a221 (diff)
downloadCMake-4caefbb42369cf652df920edd07ee9e81eb95577.zip
CMake-4caefbb42369cf652df920edd07ee9e81eb95577.tar.gz
CMake-4caefbb42369cf652df920edd07ee9e81eb95577.tar.bz2
cmInstallTargetGenerator: Add tests for the RPATH_CHANGE rule
Diffstat (limited to 'Tests/RunCMake/install/TARGETS-FILE_RPATH_CHANGE-check-common.cmake')
-rw-r--r--Tests/RunCMake/install/TARGETS-FILE_RPATH_CHANGE-check-common.cmake30
1 files changed, 30 insertions, 0 deletions
diff --git a/Tests/RunCMake/install/TARGETS-FILE_RPATH_CHANGE-check-common.cmake b/Tests/RunCMake/install/TARGETS-FILE_RPATH_CHANGE-check-common.cmake
new file mode 100644
index 0000000..673fdde
--- /dev/null
+++ b/Tests/RunCMake/install/TARGETS-FILE_RPATH_CHANGE-check-common.cmake
@@ -0,0 +1,30 @@
+file(READ ${RunCMake_TEST_BINARY_DIR}/cmake_install.cmake install_script)
+#message(STATUS ${install_script})
+
+set(wsnl " *[\n\r]+ *") # whitespace + single newline + whitespace
+set(wssl " *[\n\r]+[^\n\r]*[\n\r]+ *") # ws nl skipline nl ws
+string(CONCAT prefix [[file\(RPATH_CHANGE]])
+set(_msg "cmake_install.cmake does not match ")
+
+macro(check)
+ if(NOT install_script MATCHES "${regex}")
+ message(STATUS "${test} - check \"${target}\" - FAILED:")
+ string(CONCAT RunCMake_TEST_FAILED "${_msg}" ">>>${regex}<<<")
+ return()
+ else()
+ message(STATUS "${test} - check \"${target}\" - PASSED")
+ endif()
+endmacro()
+
+macro(skip_without_rpath_change_rule)
+# Not all platforms generate a file(RPATH_CHANGE) rule
+ if(NOT install_script MATCHES [[file\(RPATH_CHANGE]])
+ # Sanity check against a platform known to generate a file(RPATH_CHANGE) rule
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ message(FATAL_ERROR "Expected generated file(RPATH_CHANGE) rule on platform Linux.")
+ else()
+ message(STATUS "${test} - All checks skipped. No file(RPATH_CHANGE) rule found on this platform.")
+ return()
+ endif()
+ endif()
+endmacro()