From be848a71b079cbb21b2b6f9bdbf5d2fff8f46426 Mon Sep 17 00:00:00 2001 From: Yonggang Luo Date: Mon, 19 Sep 2022 18:12:22 +0800 Subject: 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 --- Help/release/dev/detect-lib_foo.a-msvc.rst | 7 +++++++ Modules/Platform/Windows.cmake | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 Help/release/dev/detect-lib_foo.a-msvc.rst 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 -- cgit v0.12