summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYonggang Luo <luoyonggang@gmail.com>2022-09-19 10:12:22 (GMT)
committerBrad King <brad.king@kitware.com>2022-09-19 15:02:44 (GMT)
commitbe848a71b079cbb21b2b6f9bdbf5d2fff8f46426 (patch)
tree9f1653a867fd253c5ef5edf385e7ba29185e90c1
parent40af69a1069abfff1e3bd63683ac55d4943f24bd (diff)
downloadCMake-be848a71b079cbb21b2b6f9bdbf5d2fff8f46426.zip
CMake-be848a71b079cbb21b2b6f9bdbf5d2fff8f46426.tar.gz
CMake-be848a71b079cbb21b2b6f9bdbf5d2fff8f46426.tar.bz2
MSVC: Teach find_library to consider the 'libfoo.a' naming convention
When targeting the GNU ABI, we consider `.a` libraries first but also accept `.lib`. For symmetry, when targeting the MSVC ABI, we now consider `.lib` first but also accept `.a`. This adds support for meson-generated static libraries, which are named with the pattern `lib${foo}.a`: * https://mesonbuild.com/FAQ.html#why-does-building-my-project-with-msvc-output-static-libraries-called-libfooa Fixes: #23975 Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
-rw-r--r--Help/release/dev/detect-lib_foo.a-msvc.rst7
-rw-r--r--Modules/Platform/Windows.cmake4
2 files changed, 9 insertions, 2 deletions
diff --git a/Help/release/dev/detect-lib_foo.a-msvc.rst b/Help/release/dev/detect-lib_foo.a-msvc.rst
new file mode 100644
index 0000000..4080a5b
--- /dev/null
+++ b/Help/release/dev/detect-lib_foo.a-msvc.rst
@@ -0,0 +1,7 @@
+detect-lib_foo.a-msvc
+---------------------
+
+* On Windows, when targeting the MSVC ABI, the :command:`find_library` command
+ now accepts ``.a`` file names after first considering ``.lib``. This is
+ symmetric with existing behavior when targeting the GNU ABI, in which the
+ command accepts ``.lib`` file names after first considering ``.a``.
diff --git a/Modules/Platform/Windows.cmake b/Modules/Platform/Windows.cmake
index d8b3957..5263161 100644
--- a/Modules/Platform/Windows.cmake
+++ b/Modules/Platform/Windows.cmake
@@ -19,8 +19,8 @@ set(CMAKE_LINK_LIBRARY_SUFFIX ".lib")
set(CMAKE_DL_LIBS "")
set(CMAKE_EXTRA_LINK_EXTENSIONS ".targets")
-set(CMAKE_FIND_LIBRARY_PREFIXES "")
-set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
+set(CMAKE_FIND_LIBRARY_PREFIXES "" "lib")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".a")
# for borland make long command lines are redirected to a file
# with the following syntax, see Windows-bcc32.cmake for use