summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-06-23 15:01:19 (GMT)
committerKitware Robot <kwrobot@kitware.com>2023-06-23 15:01:48 (GMT)
commit09df135b606a019b63ecfbb59cf08b2aa1bd4f5c (patch)
treeceaa2a4d050800a0f1b29f259cbbd43ca1de67cc
parent483c971940836043c3189aef3cff2a22d264ae8e (diff)
parent302501ad363628176d15bf91687d9adc4df6e5ce (diff)
downloadCMake-09df135b606a019b63ecfbb59cf08b2aa1bd4f5c.zip
CMake-09df135b606a019b63ecfbb59cf08b2aa1bd4f5c.tar.gz
CMake-09df135b606a019b63ecfbb59cf08b2aa1bd4f5c.tar.bz2
Merge topic 'FindEXPAT-static'
302501ad36 FindEXPAT: add a EXPAT_USE_STATIC_LIBS hint Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8572
-rw-r--r--Help/release/dev/FindEXPAT-static.rst5
-rw-r--r--Modules/FindEXPAT.cmake23
2 files changed, 26 insertions, 2 deletions
diff --git a/Help/release/dev/FindEXPAT-static.rst b/Help/release/dev/FindEXPAT-static.rst
new file mode 100644
index 0000000..8808ebd
--- /dev/null
+++ b/Help/release/dev/FindEXPAT-static.rst
@@ -0,0 +1,5 @@
+FindEXPAT-static
+----------------
+
+* The :module:`FindEXPAT` module gained a ``EXPAT_USE_STATIC_LIBS`` hint
+ to select static libraries.
diff --git a/Modules/FindEXPAT.cmake b/Modules/FindEXPAT.cmake
index 3bedc73..762931e 100644
--- a/Modules/FindEXPAT.cmake
+++ b/Modules/FindEXPAT.cmake
@@ -30,6 +30,15 @@ This module will set the following variables in your project:
``EXPAT_FOUND``
true if the Expat headers and libraries were found.
+Hints
+^^^^^
+
+``EXPAT_USE_STATIC_LIBS``
+
+ .. versionadded:: 3.28
+
+ Set to ``TRUE`` to use static libraries.
+
#]=======================================================================]
find_package(PkgConfig QUIET)
@@ -43,8 +52,13 @@ set(EXPAT_NAMES expat expatw)
set(EXPAT_NAMES_DEBUG expatd expatwd)
if(WIN32)
- list(APPEND EXPAT_NAMES expatMT expatMD expatwMT expatwMD)
- list(APPEND EXPAT_NAMES_DEBUG expatdMT expatdMD expatwdMT expatwdMD)
+ if(EXPAT_USE_STATIC_LIBS)
+ list(APPEND EXPAT_NAMES expatMT expatwMT)
+ list(APPEND EXPAT_NAMES_DEBUG expatdMT expatwdMT)
+ else()
+ list(APPEND EXPAT_NAMES expatMT expatMD expatwMT expatwMD)
+ list(APPEND EXPAT_NAMES_DEBUG expatdMT expatdMD expatwdMT expatwdMD)
+ endif()
endif()
# Allow EXPAT_LIBRARY to be set manually, as the location of the expat library
@@ -115,6 +129,11 @@ if(EXPAT_FOUND)
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
INTERFACE_INCLUDE_DIRECTORIES "${EXPAT_INCLUDE_DIRS}")
+ if(EXPAT_USE_STATIC_LIBS)
+ set_property(TARGET EXPAT::EXPAT APPEND PROPERTY
+ INTERFACE_COMPILE_DEFINITIONS "XML_STATIC")
+ endif()
+
if(EXPAT_LIBRARY_RELEASE)
set_property(TARGET EXPAT::EXPAT APPEND PROPERTY
IMPORTED_CONFIGURATIONS RELEASE)