diff options
author | tamasmeszaros <meszaros.q@gmail.com> | 2022-01-19 12:46:12 +0300 |
---|---|---|
committer | tamasmeszaros <meszaros.q@gmail.com> | 2022-04-04 13:43:25 +0300 |
commit | e50a408e2e4e3a62640f02bf6a34318a9b78d06d (patch) | |
tree | babb7330ef0b9484db85bf94ee073ae1105c03f9 /cmake | |
parent | 43fe9fd3f9fc7a2b0724b26fefad40648671bbec (diff) |
Use upstream expat, remove duplication in deps and src
Fix clash of builtin findEXPAT with config scripts
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/modules/FindEXPAT.cmake | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/cmake/modules/FindEXPAT.cmake b/cmake/modules/FindEXPAT.cmake new file mode 100644 index 000000000..de204c60f --- /dev/null +++ b/cmake/modules/FindEXPAT.cmake @@ -0,0 +1,36 @@ +set(_q "") +if(EXPAT_FIND_QUIETLY) + set(_q QUIET) +endif() +find_package(EXPAT ${EXPAT_FIND_VERSION} CONFIG ${_q}) + +if(NOT EXPAT_FIND_QUIETLY) + if (NOT EXPAT_FOUND) + message(STATUS "Falling back to MODULE search for EXPAT...") + else() + message(STATUS "EXPAT found in ${EXPAT_DIR}") + endif() +endif() + +if (NOT EXPAT_FOUND) + set(_modpath ${CMAKE_MODULE_PATH}) + set(CMAKE_MODULE_PATH "") + include(FindEXPAT) + set(CMAKE_MODULE_PATH ${_modpath}) + + if (NOT TARGET EXPAT::EXPAT) + add_library(EXPAT::EXPAT INTERFACE) + target_link_libraries(EXPAT::EXPAT INTERFACE ${EXPAT_LIBRARIES}) + target_include_directories(EXPAT::EXPAT INTERFACE ${EXPAT_INCLUDE_DIRS}) + endif () +endif() + +if (EXPAT_FOUND AND NOT TARGET EXPAT::EXPAT) + add_library(libexpat INTERFACE) + add_library(EXPAT::EXPAT ALIAS libexpat) + target_link_libraries(libexpat INTERFACE expat::expat) + if (NOT EXPAT_LIBRARIES) + set(EXPAT_LIBRARIES expat::expat CACHE STRING "") + endif () +endif () + |