diff --git a/mk/cmake/Modules/FindXercesC.cmake b/mk/cmake/Modules/FindXercesC.cmake index c328b353a..363de7e71 100644 --- a/mk/cmake/Modules/FindXercesC.cmake +++ b/mk/cmake/Modules/FindXercesC.cmake @@ -6,26 +6,129 @@ # XERCESC_FOUND - True if Xerces-C found. -IF (XERCESC_INCLUDE_DIR) +#IF (XERCESC_INCLUDE_DIR) # Already in cache, be silent. -SET(XERCESC_FIND_QUIETLY TRUE) -ENDIF (XERCESC_INCLUDE_DIR) +#SET(XERCESC_FIND_QUIETLY TRUE) +#ENDIF (XERCESC_INCLUDE_DIR) -FIND_PATH(XERCESC_INCLUDE_DIR xercesc - PATH_SUFFIXES DOM/dom.hpp) +#FIND_PATH(XERCESC_INCLUDE_DIR xercesc +# PATH_SUFFIXES DOM/dom.hpp) -SET(XERCESC_NAMES xerces-c2_8_0 xerces-c xerces-c_3 xerces-c_2 Xerces) -FIND_LIBRARY(XERCESC_LIBRARY NAMES ${XERCESC_NAMES} ) +#SET(XERCESC_NAMES xerces-c2_8_0 xerces-c xerces-c_3 xerces-c_2 Xerces) +#FIND_LIBRARY(XERCESC_LIBRARY NAMES ${XERCESC_NAMES} ) # Handle the QUIETLY and REQUIRED arguments and set XERCESC_FOUND to # TRUE if all listed variables are TRUE. -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(XercesC DEFAULT_MSG XERCESC_LIBRARY XERCESC_INCLUDE_DIR) +#INCLUDE(FindPackageHandleStandardArgs) +#FIND_PACKAGE_HANDLE_STANDARD_ARGS(XercesC DEFAULT_MSG XERCESC_LIBRARY XERCESC_INCLUDE_DIR) + +#IF(XERCESC_FOUND) +# SET( XERCESC_LIBRARIES ${XERCESC_LIBRARY} ) +#ELSE(XERCESC_FOUND) +# SET( XERCESC_LIBRARIES ) +#ENDIF(XERCESC_FOUND) + +#MARK_AS_ADVANCED( XERCESC_LIBRARY XERCESC_INCLUDE_DIR ) + +########################### NEW CODE BELOW + +# - Try to find Xerces-C +# Once done this will define +# +# XERCESC_FOUND - system has Xerces-C +# XERCESC_INCLUDE - the Xerces-C include directory +# XERCESC_LIBRARY - Link these to use Xerces-C +# XERCESC_VERSION - Xerces-C found version + +IF (XERCESC_INCLUDE AND XERCESC_LIBRARY) + # in cache already + SET(XERCESC_FIND_QUIETLY TRUE) +ENDIF (XERCESC_INCLUDE AND XERCESC_LIBRARY) + +OPTION(XERCESC_STATIC "Set to ON to link your project with static library (instead of DLL)." ON) + +IF (NOT ${XERCESC_WAS_STATIC} STREQUAL ${XERCESC_STATIC}) + UNSET(XERCESC_LIBRARY CACHE) + UNSET(XERCESC_LIBRARY_DEBUG CACHE) +ENDIF (NOT ${XERCESC_WAS_STATIC} STREQUAL ${XERCESC_STATIC}) + +SET(XERCESC_WAS_STATIC ${XERCESC_STATIC} CACHE INTERNAL "" ) + +FIND_PATH(XERCESC_INCLUDE NAMES xercesc/util/XercesVersion.hpp +PATHS +$ENV{XERCESC_INCLUDE_DIR} +${XERCESC_INCLUDE_DIR} + /usr/local/include + /usr/include +) + +IF (XERCESC_STATIC) + FIND_LIBRARY(XERCESC_LIBRARY NAMES xerces-c_static_3 libxerces-c.a libxerces-c_3.a libxerces-c2_8_0.a libxerces-c_2.a libXerces.a + PATHS + $ENV{XERCESC_LIBRARY_DIR} + ${XERCESC_LIBRARY_DIR} + /usr/lib + /usr/local/lib + ) + ADD_DEFINITIONS( -DXERCES_STATIC_LIBRARY ) + IF(UNIX AND NOT APPLE) + SET(XERCESC_LIBRARY "-Bstatic ${XERCESC_LIBRARY} -Bdynamic -licuuc -licudata") + ENDIF() +ELSE (XERCESC_STATIC) + FIND_LIBRARY(XERCESC_LIBRARY NAMES xerces-c_3 xerces-c xerces-c_3 xerces-c2_8_0 xerces-c_2 Xerces + PATHS + $ENV{XERCESC_LIBRARY_DIR} + ${XERCESC_LIBRARY_DIR} + ) + FIND_LIBRARY(XERCESC_LIBRARY_DEBUG NAMES xerces-c_3D + PATHS + $ENV{XERCESC_LIBRARY_DIR} + ${XERCESC_LIBRARY_DIR} + ) +ENDIF (XERCESC_STATIC) + +IF (XERCESC_INCLUDE AND XERCESC_LIBRARY) + SET(XERCESC_FOUND TRUE) +ELSE (XERCESC_INCLUDE AND XERCESC_LIBRARY) + SET(XERCESC_FOUND FALSE) +ENDIF (XERCESC_INCLUDE AND XERCESC_LIBRARY) IF(XERCESC_FOUND) - SET( XERCESC_LIBRARIES ${XERCESC_LIBRARY} ) + FIND_PATH(XERCESC_XVERHPPPATH NAMES XercesVersion.hpp PATHS + ${XERCESC_INCLUDE} + PATH_SUFFIXES xercesc/util) + + IF ( ${XERCESC_XVERHPPPATH} STREQUAL XERCESC_XVERHPPPATH-NOTFOUND ) + SET(XERCES_VERSION "0") + ELSE( ${XERCESC_XVERHPPPATH} STREQUAL XERCESC_XVERHPPPATH-NOTFOUND ) + FILE(READ ${XERCESC_XVERHPPPATH}/XercesVersion.hpp XVERHPP) + + STRING(REGEX MATCHALL "\n *#define XERCES_VERSION_MAJOR +[0-9]+" XVERMAJ + ${XVERHPP}) + STRING(REGEX MATCH "\n *#define XERCES_VERSION_MINOR +[0-9]+" XVERMIN + ${XVERHPP}) + STRING(REGEX MATCH "\n *#define XERCES_VERSION_REVISION +[0-9]+" XVERREV + ${XVERHPP}) + + STRING(REGEX REPLACE "\n *#define XERCES_VERSION_MAJOR +" "" + XVERMAJ ${XVERMAJ}) + STRING(REGEX REPLACE "\n *#define XERCES_VERSION_MINOR +" "" + XVERMIN ${XVERMIN}) + STRING(REGEX REPLACE "\n *#define XERCES_VERSION_REVISION +" "" + XVERREV ${XVERREV}) + + SET(XERCESC_VERSION ${XVERMAJ}.${XVERMIN}.${XVERREV}) + + ENDIF ( ${XERCESC_XVERHPPPATH} STREQUAL XERCESC_XVERHPPPATH-NOTFOUND ) + + IF(NOT XERCESC_FIND_QUIETLY) + MESSAGE(STATUS "Found Xerces-C: ${XERCESC_LIBRARY}") + MESSAGE(STATUS " : ${XERCESC_INCLUDE}") + MESSAGE(STATUS " Version: ${XERCESC_VERSION}") + ENDIF(NOT XERCESC_FIND_QUIETLY) ELSE(XERCESC_FOUND) - SET( XERCESC_LIBRARIES ) + MESSAGE(FATAL_ERROR "Could not find Xerces-C !") ENDIF(XERCESC_FOUND) -MARK_AS_ADVANCED( XERCESC_LIBRARY XERCESC_INCLUDE_DIR ) +MARK_AS_ADVANCED(XERCESC_INCLUDE XERCESC_LIBRARY) +