1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
#.rst:
# FindXercesC
# -----------
#
# Find the Xerces-C++ XML Parser library.
#
# Imported targets
# ^^^^^^^^^^^^^^^^
#
# This module defines the following :prop_tgt:`IMPORTED` target:
#
# ``XercesC::XercesC``
# The Xerces-C++ library, if found.
#
# Result variables
# ^^^^^^^^^^^^^^^^
#
# This module will set the following variables in your project:
#
# ``XERCES_C_INCLUDE_DIRS``
# where to find Xerces-C++ header files, etc.
# ``XERCES_C_LIBRARIES``
# the libraries to link against to use Xerces-C++.
# ``XERCES_C_FOUND``
# If false, do not try to use Xerces-C++.
if(NOT XERCES_C_INCLUDE_DIR)
find_path(XERCES_C_UTIL_DIR XercesVersion.hpp PATH_SUFFIXES xercesc/util)
if(XERCES_C_UTIL_DIR)
get_filename_component(XERCES_C_INCLUDE_DIR "${XERCES_C_UTIL_DIR}/../.." ABSOLUTE)
endif()
endif()
if(NOT XERCES_C_LIBRARY)
find_library(
XERCES_C_LIBRARY NAMES ${GR_THIRDPARTY_LIBRARY_PREFIX}xerces-c${GR_THIRDPARTY_LIBRARY_SUFFIX} xerces-c libxerces-c
)
endif()
if(XERCES_C_INCLUDE_DIR)
if(NOT XERCES_C_VERSION_STRING)
file(READ ${XERCES_C_INCLUDE_DIR}/xercesc/util/XercesVersion.hpp XERCES_VERSION_H_TEXT)
string(REGEX REPLACE ".*#define XERCES_VERSION_MAJOR[ \t]*([0-9]+).*" "\\1" XERCES_C_VERSION_MAJOR
${XERCES_VERSION_H_TEXT}
)
string(REGEX REPLACE ".*#define XERCES_VERSION_MINOR[ \t]*([0-9]+).*" "\\1" XERCES_C_VERSION_MINOR
${XERCES_VERSION_H_TEXT}
)
string(REGEX REPLACE ".*#define XERCES_VERSION_REVISION[ \t]*([0-9]+).*" "\\1" XERCES_C_VERSION_REVISION
${XERCES_VERSION_H_TEXT}
)
string(CONCAT XERCES_C_VERSION_STRING
"${XERCES_C_VERSION_MAJOR}.${XERCES_C_VERSION_MINOR}.${XERCES_C_VERSION_REVISION}"
)
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
XERCES_C
VERSION_VAR
XERCES_C_VERSION_STRING
REQUIRED_VARS
XERCES_C_LIBRARY
XERCES_C_INCLUDE_DIR
XERCES_C_VERSION_STRING
)
if(XERCES_C_FOUND)
set(XERCES_C_INCLUDE_DIRS ${XERCES_C_INCLUDE_DIR})
set(XERCES_C_LIBRARY ${XERCES_C_LIBRARY})
if(NOT TARGET XercesC::XercesC)
add_library(XercesC::XercesC UNKNOWN IMPORTED)
set_target_properties(
XercesC::XercesC
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${XERCES_C_INCLUDE_DIRS}"
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${XERCES_C_LIBRARY}"
)
endif()
elseif(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED)
message(FATAL_ERROR "${CMAKE_FIND_PACKAGE_NAME} was required but could not be found.")
endif()
mark_as_advanced(XERCES_C_INCLUDE_DIRS XERCES_C_LIBRARY)
|