diff --git a/CMake/FindLibKML.cmake b/CMake/FindLibKML.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c0c41f866d82aab75eb09f83ae0150b0f7a69efc --- /dev/null +++ b/CMake/FindLibKML.cmake @@ -0,0 +1,61 @@ +# - Find LibKML +# Find the native LibKML includes and library +# +# LIBKML_FOUND - True if LibKML found. +# LIBKML_INCLUDE_DIR - where to find tinyxml.h, etc. +# LIBKML_LIBRARIES - List of libraries when using LibKML. +# + +IF( LIBKML_INCLUDE_DIR ) + # Already in cache, be silent + SET( LibKML_FIND_QUIETLY TRUE ) +ENDIF( LIBKML_INCLUDE_DIR ) + +FIND_PATH( LIBKML_INCLUDE_DIR kml/dom.h ) + +FIND_LIBRARY( LIBKML_BASE_LIBRARY + NAMES kmlbase ) +FIND_LIBRARY( LIBKML_CONVENIENCE_LIBRARY + NAMES kmlconvenience ) +FIND_LIBRARY( LIBKML_DOM_LIBRARY + NAMES kmldom ) +FIND_LIBRARY( LIBKML_ENGINE_LIBRARY + NAMES kmlengine ) +FIND_LIBRARY( LIBKML_REGIONATOR_LIBRARY + NAMES kmlregionator ) +FIND_LIBRARY( LIBKML_XSD_LIBRARY + NAMES kmlxsd ) +FIND_LIBRARY( LIBKML_MINIZIP_LIBRARY + NAMES minizip ) + +MARK_AS_ADVANCED( LIBKML_INCLUDE_DIR + LIBKML_BASE_LIBRARY + LIBKML_CONVENIENCE_LIBRARY + LIBKML_DOM_LIBRARY + LIBKML_ENGINE_LIBRARY + LIBKML_REGIONATOR_LIBRARY + LIBKML_XSD_LIBRARY + LIBKML_MINIZIP_LIBRARY ) + +# handle the QUIETLY and REQUIRED arguments and set LIBKML_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE( FindPackageHandleStandardArgs ) +FIND_PACKAGE_HANDLE_STANDARD_ARGS( LibKML DEFAULT_MSG + LIBKML_INCLUDE_DIR + LIBKML_BASE_LIBRARY + LIBKML_CONVENIENCE_LIBRARY + LIBKML_DOM_LIBRARY + LIBKML_ENGINE_LIBRARY + LIBKML_REGIONATOR_LIBRARY + LIBKML_XSD_LIBRARY + LIBKML_MINIZIP_LIBRARY ) +IF(LibKML_FOUND) + SET(LIBKML_INCLUDE_DIRS ${LIBKML_INCLUDE_DIR}) + SET(LIBKML_LIBRARIES ${LIBKML_BASE_LIBRARY} + ${LIBKML_CONVENIENCE_LIBRARY} + ${LIBKML_DOM_LIBRARY} + ${LIBKML_ENGINE_LIBRARY} + ${LIBKML_REGIONATOR_LIBRARY} + ${LIBKML_XSD_LIBRARY} + ${LIBKML_MINIZIP_LIBRARY}) +ENDIF(LibKML_FOUND) diff --git a/CMake/ImportLibKML.cmake b/CMake/ImportLibKML.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2c571b9cb3ccf75c933f75b19355986e8d5bac0c --- /dev/null +++ b/CMake/ImportLibKML.cmake @@ -0,0 +1,10 @@ +MESSAGE(STATUS "Importing LibKML...") +FIND_PACKAGE(LibKML) + +IF(LIBKML_FOUND) + OPTION(OTB_USE_EXTERNAL_LIBKML "Use external LibKML library." ON) +ELSE(LIBKML_FOUND) + OPTION(OTB_USE_EXTERNAL_LIBKML "Use external LibKML library." OFF) + SET(LIBKML_LIBRARIES otbkml) +ENDIF(LIBKML_FOUND) +MARK_AS_ADVANCED(OTB_USE_EXTERNAL_LIBKML) diff --git a/CMake/otbIncludeDirectories.cmake b/CMake/otbIncludeDirectories.cmake index d92239191c5f6bae41915b53888121ad4167b551..08b5ef9ddc7befd5e173486365891705927e2d81 100644 --- a/CMake/otbIncludeDirectories.cmake +++ b/CMake/otbIncludeDirectories.cmake @@ -43,7 +43,6 @@ SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE} ${OTB_SOURCE_DIR}/Utilities/otbossimplugins/ossim ${OTB_SOURCE_DIR}/Utilities/InsightJournal ${OTB_SOURCE_DIR}/Utilities/otb6S - ${OTB_SOURCE_DIR}/Utilities/otbkml/src ${OTB_SOURCE_DIR}/Utilities/otbliblas/include ${OTB_SOURCE_DIR}/Utilities/otbedison/segm ${OTB_SOURCE_DIR}/Utilities/otbedison/prompt @@ -108,6 +107,14 @@ ELSEIF(OTB_USE_EXTERNAL_MUPARSER) ${OTB_SOURCE_DIR}/Utilities/otbmuparser) ENDIF(OTB_USE_EXTERNAL_MUPARSER) +IF(OTB_USE_EXTERNAL_LIBKML) + SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE} + ${LIBKML_INCLUDE_DIRS}) +ELSEIF(OTB_USE_EXTERNAL_LIBKML) + SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE} + ${OTB_SOURCE_DIR}/Utilities/otbkml/src) +ENDIF(OTB_USE_EXTERNAL_LIBKML) + IF(OTB_USE_CURL) SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE} ${CURL_INCLUDE_DIR} ) @@ -281,8 +288,6 @@ SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS} Utilities/otbsvm Utilities/InsightJournal Utilities/otb6S - Utilities/otbkml - Utilities/otbkml/src Utilities/otbliblas/include Utilities/otbedison Utilities/otbconfigfile @@ -369,6 +374,15 @@ ELSE(OTB_USE_EXTERNAL_MUPARSER) Utilities/otbmuparser) ENDIF(OTB_USE_EXTERNAL_MUPARSER) +#For LibKML header file +IF(OTB_USE_EXTERNAL_LIBKML) + SET(OTB_INCLUDE_ABSOLUE_DIRS ${OTB_INCLUDE_ABSOLUE_DIRS} + ${LIBKML_INCLUDE_DIRS}) +ELSE(OTB_USE_EXTERNAL_LIBKML) + SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS} + Utilities/otbkml) +ENDIF(OTB_USE_EXTERNAL_LIBKML) + #For GLU header file SET(OTB_INCLUDE_ABSOLUE_DIRS ${OTB_INCLUDE_ABSOLUE_DIRS} ${OTB_GLU_INCLUDE_PATH} ) diff --git a/CMakeLists.txt b/CMakeLists.txt index a58ecd28725fdd80fed2e850e6f7afb3ec4f1cc4..d3955b02f9de0198e2ffc1023c152099cf87a936 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -232,6 +232,7 @@ INCLUDE(ImportGetText) INCLUDE(ImportSiftFast) INCLUDE(ImportTinyXML) INCLUDE(ImportMuParser) +INCLUDE(ImportLibKML) INCLUDE_DIRECTORIES ( diff --git a/Code/IO/CMakeLists.txt b/Code/IO/CMakeLists.txt index 6b215aeaf70accf797fdc4397948dbc544fc5db6..5f411bfe8f480b427a996ff2ef12c750bf5bd5d6 100644 --- a/Code/IO/CMakeLists.txt +++ b/Code/IO/CMakeLists.txt @@ -39,7 +39,7 @@ ADD_LIBRARY(OTBIO ${OTBIO_SRCS}) # LINK_INTERFACE_LIBRARIES "" # ) TARGET_LINK_LIBRARIES (OTBIO ${TIFF_LIBRARY} ${GEOTIFF_LIBRARY} ${GDAL_LIBRARY} ${OGR_LIBRARY} ${JPEG_LIBRARY} ${OPENTHREADS_LIBRARY} OTBCommon OTBBasicFilters OTBCurlAdapters) -TARGET_LINK_LIBRARIES (OTBIO ITKIO ITKCommon otbkml ${TINYXML_LIBRARIES}) +TARGET_LINK_LIBRARIES (OTBIO ITKIO ITKCommon ${LIBKML_LIBRARIES} ${TINYXML_LIBRARIES}) IF (OTB_USE_LIBLAS) IF(OTB_USE_EXTERNAL_LIBLAS) diff --git a/Testing/Utilities/CMakeLists.txt b/Testing/Utilities/CMakeLists.txt index 444db639f848c91a42199006ac12ecea51bf0367..f166477c0285c3b9ba06b7cdc9515b61cdea5b8f 100644 --- a/Testing/Utilities/CMakeLists.txt +++ b/Testing/Utilities/CMakeLists.txt @@ -399,7 +399,7 @@ IF(NOT BUILD_SHARED_LIBS) ENDIF(NOT BUILD_SHARED_LIBS) ADD_EXECUTABLE(otbUtilitiesTests otbUtilitiesTests.cxx ${UtilitiesTests_SRCS}) -TARGET_LINK_LIBRARIES(otbUtilitiesTests OTBIO OTBCommon OTBTesting otbsvm otb6S ${TINYXML_LIBRARIES} otbkml) +TARGET_LINK_LIBRARIES(otbUtilitiesTests OTBIO OTBCommon OTBTesting otbsvm otb6S ${TINYXML_LIBRARIES} ${LIBKML_LIBRARIES}) IF(OTB_USE_SIFTFAST) TARGET_LINK_LIBRARIES(otbUtilitiesTests otbsiftfast) diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt index c5afa4222313388e5ce832e39afbbcaf68d29dda..e90e8000d7da85dae8d38bf86dc276472e4ab4f4 100644 --- a/Utilities/CMakeLists.txt +++ b/Utilities/CMakeLists.txt @@ -79,8 +79,10 @@ IF(NOT OTB_USE_EXTERNAL_MUPARSER) ADD_SUBDIRECTORY(otbmuparser) ENDIF(NOT OTB_USE_EXTERNAL_MUPARSER) -MESSAGE(STATUS "Configuring otbkml...") -ADD_SUBDIRECTORY(otbkml) +IF(NOT OTB_USE_EXTERNAL_LIBKML) + MESSAGE(STATUS "Configuring otbkml...") + ADD_SUBDIRECTORY(otbkml) +ENDIF(NOT OTB_USE_EXTERNAL_LIBKML) MESSAGE(STATUS "Configuring otbedison...") ADD_SUBDIRECTORY(otbedison)