summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/find_library
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-09-11 23:11:54 (GMT)
committerBrad King <brad.king@kitware.com>2023-09-13 12:35:59 (GMT)
commit5e5132e1b1a090b8d9f58e0316fced47479c9a53 (patch)
tree4d8d6d06322946788d16a73358c0424f0d2c542f /Tests/RunCMake/find_library
parenta273b7f5d4e68df5b1cbc20243491ff23f5d353c (diff)
downloadCMake-5e5132e1b1a090b8d9f58e0316fced47479c9a53.zip
CMake-5e5132e1b1a090b8d9f58e0316fced47479c9a53.tar.gz
CMake-5e5132e1b1a090b8d9f58e0316fced47479c9a53.tar.bz2
MinGW: Search for packages in standard MSYSTEM environment prefixes
MSYS2 and similar MinGW/MSYS distributions define development environments with a `MSYSTEM` environment variable. Each such environment has a documented installation prefix for its packages, often provided by a `MSYSTEM_PREFIX` environment variable. Since commit 84a25fc263 (cmake_host_system_information: Add MSYSTEM_PREFIX query, 2023-09-08) we can look up this prefix. Add `$MSYSTEM_PREFIX/local` and `$MSYSTEM_PREFIX` to our system search prefixes when targeting MinGW under `MSYSTEM` environments. This is their equivalent to `/usr/local` and `/usr`, which we search by default on UNIX systems. Issue: #24216
Diffstat (limited to 'Tests/RunCMake/find_library')
-rw-r--r--Tests/RunCMake/find_library/MSYSTEM_PREFIX-stdout.txt1
-rw-r--r--Tests/RunCMake/find_library/MSYSTEM_PREFIX.cmake5
-rw-r--r--Tests/RunCMake/find_library/MSYSTEM_PREFIX/lib/libmsystem_prefix.a0
-rw-r--r--Tests/RunCMake/find_library/RunCMakeTest.cmake4
4 files changed, 10 insertions, 0 deletions
diff --git a/Tests/RunCMake/find_library/MSYSTEM_PREFIX-stdout.txt b/Tests/RunCMake/find_library/MSYSTEM_PREFIX-stdout.txt
new file mode 100644
index 0000000..b19bcce
--- /dev/null
+++ b/Tests/RunCMake/find_library/MSYSTEM_PREFIX-stdout.txt
@@ -0,0 +1 @@
+-- MSYSTEM_PREFIX_LIB='[^']*/Tests/RunCMake/find_library/MSYSTEM_PREFIX/lib/libmsystem_prefix.a'
diff --git a/Tests/RunCMake/find_library/MSYSTEM_PREFIX.cmake b/Tests/RunCMake/find_library/MSYSTEM_PREFIX.cmake
new file mode 100644
index 0000000..ef4ce2f
--- /dev/null
+++ b/Tests/RunCMake/find_library/MSYSTEM_PREFIX.cmake
@@ -0,0 +1,5 @@
+set(ENV{MSYSTEM} "FAKEMSYS")
+set(ENV{MSYSTEM_PREFIX} "${CMAKE_CURRENT_LIST_DIR}/MSYSTEM_PREFIX")
+enable_language(C)
+find_library(MSYSTEM_PREFIX_LIB NAMES msystem_prefix)
+message(STATUS "MSYSTEM_PREFIX_LIB='${MSYSTEM_PREFIX_LIB}'")
diff --git a/Tests/RunCMake/find_library/MSYSTEM_PREFIX/lib/libmsystem_prefix.a b/Tests/RunCMake/find_library/MSYSTEM_PREFIX/lib/libmsystem_prefix.a
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Tests/RunCMake/find_library/MSYSTEM_PREFIX/lib/libmsystem_prefix.a
diff --git a/Tests/RunCMake/find_library/RunCMakeTest.cmake b/Tests/RunCMake/find_library/RunCMakeTest.cmake
index 8b223b4..0bed252 100644
--- a/Tests/RunCMake/find_library/RunCMakeTest.cmake
+++ b/Tests/RunCMake/find_library/RunCMakeTest.cmake
@@ -20,6 +20,10 @@ run_cmake(VALIDATOR-undefined-function)
run_cmake(VALIDATOR-specify-macro)
run_cmake(VALIDATOR)
+if(CMAKE_HOST_WIN32 AND MINGW)
+ run_cmake(MSYSTEM_PREFIX)
+endif()
+
run_cmake_script(FromScriptMode "-DTEMP_DIR=${RunCMake_BINARY_DIR}/FromScriptMode-temp")
run_cmake_with_options(FromPATHEnvDebugVar --debug-find-var=CREATED_LIBRARY)