From 48385f3430834e95575b8a4057bc818477f0f180 Mon Sep 17 00:00:00 2001 From: htramsey Date: Fri, 28 Feb 2025 07:31:10 -0500 Subject: [PATCH] CMake: Fix Finding EXPAT --- src/AnalyzeView/CMakeLists.txt | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/AnalyzeView/CMakeLists.txt b/src/AnalyzeView/CMakeLists.txt index 8fbb4a1b7dc..1d707283e66 100644 --- a/src/AnalyzeView/CMakeLists.txt +++ b/src/AnalyzeView/CMakeLists.txt @@ -100,6 +100,12 @@ if(TARGET ulog_cpp::ulog_cpp) target_link_libraries(AnalyzeView PRIVATE ulog_cpp::ulog_cpp) endif() +if(WIN32) + set(_EXPAT_INSTALL_OPTION ON) +else() + set(_EXPAT_INSTALL_OPTION OFF) +endif() + CPMAddPackage( NAME EXPAT VERSION 2.6.4 @@ -113,20 +119,24 @@ CPMAddPackage( "EXPAT_BUILD_PKGCONFIG OFF" "EXPAT_BUILD_TESTS OFF" "EXPAT_BUILD_TOOLS OFF" - "EXPAT_ENABLE_INSTALL OFF" + "EXPAT_ENABLE_INSTALL ${_EXPAT_INSTALL_OPTION}" "EXPAT_SHARED_LIBS OFF" ) set(_EXIV2_ENABLE_XMP OFF) if(EXPAT_ADDED) find_package(expat CONFIG QUIET) - if(NOT TARGET expat::expat) + if(TARGET expat::expat) + add_library(EXPAT::EXPAT INTERFACE IMPORTED) + target_link_libraries(EXPAT::EXPAT INTERFACE expat::expat) + get_target_property(EXPAT_INCLUDES expat::expat INTERFACE_INCLUDE_DIRECTORIES) + if(EXPAT_INCLUDES) + target_include_directories(EXPAT::EXPAT INTERFACE ${EXPAT_INCLUDES}) + set(_EXIV2_ENABLE_XMP ON) + endif() + else() find_package(EXPAT MODULE) if(EXPAT_FOUND) - if(NOT TARGET expat::expat) - add_library(expat::expat INTERFACE IMPORTED) - target_link_libraries(expat::expat INTERFACE EXPAT::EXPAT) - endif() set(_EXIV2_ENABLE_XMP ON) endif() endif()