diff --git a/CMake/FindEXPAT.cmake b/CMake/FindEXPAT.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3c04b4cb732e0a44e21033ae2e102551316c73c9 --- /dev/null +++ b/CMake/FindEXPAT.cmake @@ -0,0 +1,38 @@ +# - Find expat +# Find the native EXPAT headers and libraries. +# +# EXPAT_INCLUDE_DIRS - where to find expat.h, etc. +# EXPAT_LIBRARIES - List of libraries when using expat. +# EXPAT_FOUND - True if expat found. + +#============================================================================= +# Copyright 2006-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +# Look for the header file. +FIND_PATH(EXPAT_INCLUDE_DIR NAMES expat.h) + +# Look for the library. +FIND_LIBRARY(EXPAT_LIBRARY NAMES expat libexpat) + +# handle the QUIETLY and REQUIRED arguments and set EXPAT_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(EXPAT DEFAULT_MSG EXPAT_LIBRARY EXPAT_INCLUDE_DIR) + +# Copy the results to the output variables. +IF(EXPAT_FOUND) + SET(EXPAT_LIBRARIES ${EXPAT_LIBRARY}) + SET(EXPAT_INCLUDE_DIRS ${EXPAT_INCLUDE_DIR}) +ENDIF(EXPAT_FOUND) + +MARK_AS_ADVANCED(EXPAT_INCLUDE_DIR EXPAT_LIBRARY) diff --git a/CMake/ImportExpat.cmake b/CMake/ImportExpat.cmake index e9bfc6b484f3fac3ca564ecf7e32701c0500cb2c..d440443e85a26e8f2b2d73ab490c3789d5cf36e0 100644 --- a/CMake/ImportExpat.cmake +++ b/CMake/ImportExpat.cmake @@ -1,36 +1,33 @@ -MESSAGE(STATUS "Importing Expat...") +MESSAGE(STATUS "Importing EXPAT...") + FIND_PACKAGE(EXPAT) + +# Initialize option with what's found on the system IF(EXPAT_FOUND) OPTION(OTB_USE_EXTERNAL_EXPAT "Use an outside build of EXPAT." ON) ELSE(EXPAT_FOUND) OPTION(OTB_USE_EXTERNAL_EXPAT "Use an outside build of EXPAT." OFF) ENDIF(EXPAT_FOUND) - MARK_AS_ADVANCED(OTB_USE_EXTERNAL_EXPAT) +# Setup IF(OTB_USE_EXTERNAL_EXPAT) - FIND_PACKAGE(EXPAT) - - IF (NOT EXPAT_FOUND) - FIND_PATH(EXPAT_INCLUDE_DIR NAMES expat.h PATHS ${OSGEO4W_INCLUDE}) - FIND_LIBRARY(EXPAT_LIBRARY NAMES expat libexpat PATHS ${OSGEO4W_LIB}) - ENDIF(NOT EXPAT_FOUND) - - IF(NOT EXPAT_INCLUDE_DIR OR NOT EXPAT_LIBRARY) - MESSAGE(FATAL_ERROR - "Cannot build OTB project without lib EXPAT. Please set EXPAT_DIR or set OTB_USE_EXTERNAL_EXPAT OFF to use INTERNAL EXPAT set on OTB/Utilities repository.") - ENDIF(NOT EXPAT_INCLUDE_DIR OR NOT EXPAT_LIBRARY) - - MESSAGE(STATUS " Using Expat external version") - MESSAGE(STATUS " Expat includes : ${EXPAT_INCLUDE_DIR}") - MESSAGE(STATUS " Expat library : ${EXPAT_LIBRARY}") + IF(EXPAT_FOUND) + MESSAGE(STATUS "Using EXPAT external version") + ELSE(EXPAT_FOUND) + # Generate an error if no external EXPAT is available + MESSAGE(FATAL_ERROR "EXPAT required but not found. " + "Turn OTB_USE_EXTERNAL_EXPAT to OFF to use the internal version.") + ENDIF(EXPAT_FOUND) ELSE(OTB_USE_EXTERNAL_EXPAT) + MESSAGE(STATUS "Using EXPAT internal version") + + SET(EXPAT_LIBRARIES otbexpat) ADD_DEFINITIONS(-DOTB_USE_INTERNAL_EXPAT) - INCLUDE_DIRECTORIES(BEFORE "${OTB_SOURCE_DIR}/Utilities/otbexpat") - INCLUDE_DIRECTORIES(BEFORE "${OTB_BINARY_DIR}/Utilities/otbexpat") IF(NOT BUILD_SHARED_LIBS) ADD_DEFINITIONS(-DXML_STATIC) ENDIF(NOT BUILD_SHARED_LIBS) - - MESSAGE(STATUS " Using Expat internal version") + INCLUDE_DIRECTORIES(BEFORE "${OTB_SOURCE_DIR}/Utilities/otbexpat") + INCLUDE_DIRECTORIES(BEFORE "${OTB_BINARY_DIR}/Utilities/otbexpat") ENDIF(OTB_USE_EXTERNAL_EXPAT) +