From 70bd5508c24f3bac5807dbb8b10fcebb456d5627 Mon Sep 17 00:00:00 2001 From: Emmanuel Christophe <emmanuel.christophe@orfeo-toolbox.org> Date: Sun, 26 Jun 2011 12:41:45 -0700 Subject: [PATCH] COMP: enable usage of ossim external --- CMake/ImportOssim.cmake | 28 +++++++++++++++++++ CMake/otbIncludeDirectories.cmake | 14 ++++++++-- CMakeLists.txt | 1 + .../OssimAdapters/CMakeLists.txt | 2 +- Utilities/CMakeLists.txt | 8 ++++-- Utilities/otbossim/CMakeLists.txt | 2 ++ Utilities/otbossimplugins/CMakeLists.txt | 14 ++++++++-- 7 files changed, 60 insertions(+), 9 deletions(-) create mode 100644 CMake/ImportOssim.cmake diff --git a/CMake/ImportOssim.cmake b/CMake/ImportOssim.cmake new file mode 100644 index 0000000000..27ff10f87f --- /dev/null +++ b/CMake/ImportOssim.cmake @@ -0,0 +1,28 @@ + +MESSAGE(STATUS "Importing Ossim...") +# Option for internal/external GDAL +OPTION(OTB_USE_EXTERNAL_OSSIM "Use an outside build of Ossim." OFF) +MARK_AS_ADVANCED(OTB_USE_EXTERNAL_OSSIM) + +IF(OTB_USE_EXTERNAL_OSSIM) + + IF (NOT OSSIM_FOUND) + FIND_PATH(OSSIM_INCLUDE_DIR NAMES ossim/init/ossimInit.h PATHS $ENV{OSSIM_INCLUDE_DIR} /usr/local) + FIND_LIBRARY(OSSIM_LIBRARY NAMES ossim PATHS /usr/local/lib/ossim) + ENDIF(NOT OSSIM_FOUND) + + IF (NOT OSSIM_INCLUDE_DIR) + MESSAGE(FATAL_ERROR + "Cannot find OSSIM include directory. Please set OSSIM_INCLUDE_DIR.") + ENDIF (NOT OSSIM_INCLUDE_DIR) + + INCLUDE_DIRECTORIES(${OSSIM_INCLUDE_DIR} ${OSSIM_INCLUDE_DIR}/ossim) + + IF (NOT OSSIM_LIBRARY) + MESSAGE(FATAL_ERROR + "Cannot find OSSIM library. Please set OSSIM_LIBRARY.") + ENDIF (NOT OSSIM_LIBRARY) + MESSAGE(STATUS " OSSIM includes : ${OSSIM_INCLUDE_DIR}") + MESSAGE(STATUS " OSSIM library : ${OSSIM_LIBRARY}") +ENDIF(OTB_USE_EXTERNAL_OSSIM) + diff --git a/CMake/otbIncludeDirectories.cmake b/CMake/otbIncludeDirectories.cmake index 1c28ca1001..236c5091dd 100644 --- a/CMake/otbIncludeDirectories.cmake +++ b/CMake/otbIncludeDirectories.cmake @@ -57,9 +57,6 @@ SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE} ${OTB_BINARY_DIR}/Code/Visualization ${OTB_MSINTTYPES_INCLUDE_DIR_BUILDTREE} ${OTB_SOURCE_DIR}/Utilities/otbsvm - ${OTB_SOURCE_DIR}/Utilities/otbossim/include - ${OTB_SOURCE_DIR}/Utilities/otbossim/include/ossim - ${OTB_BINARY_DIR}/Utilities/otbossim/include/ossim ${OTB_SOURCE_DIR}/Utilities/otbossimplugins ${OTB_SOURCE_DIR}/Utilities/otbossimplugins/ossim ${OTB_SOURCE_DIR}/Utilities/InsightJournal @@ -87,6 +84,16 @@ ELSE(NOT OTB_USE_EXTERNAL_BOOST) ${Boost_INCLUDE_DIR}) ENDIF(NOT OTB_USE_EXTERNAL_BOOST) +IF(NOT OTB_USE_EXTERNAL_OSSIM) + SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE} + ${OTB_SOURCE_DIR}/Utilities/otbossim/include + ${OTB_SOURCE_DIR}/Utilities/otbossim/include/ossim + ${OTB_BINARY_DIR}/Utilities/otbossim/include/ossim) +ELSE(NOT OTB_USE_EXTERNAL_OSSIM) + SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE} + ${OSSIM_INCLUDE_DIR}) +ENDIF(NOT OTB_USE_EXTERNAL_OSSIM) + IF(OTB_COMPILE_JPEG2000) SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE} ${OTB_SOURCE_DIR}/Utilities/otbopenjpeg @@ -325,6 +332,7 @@ SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS} Utilities/ITK ${OTB_MSINTTYPES_INCLUDE_RELATIVE_DIR} Utilities/otbsvm + #TODO: probably have to fix that: we don't need to install ossim headers Utilities/otbossim Utilities/otbossim/include Utilities/otbossim/include/ossim diff --git a/CMakeLists.txt b/CMakeLists.txt index 49f974cadf..6758c43917 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,6 +130,7 @@ INCLUDE(ImportBoost) INCLUDE(ImportMapnik) # depends on ImportBoost INCLUDE(ImportGetText) INCLUDE(ImportOpenThreads) +INCLUDE(ImportOssim) #----------------------------------------------------------------------------- # Installation vars. diff --git a/Code/UtilitiesAdapters/OssimAdapters/CMakeLists.txt b/Code/UtilitiesAdapters/OssimAdapters/CMakeLists.txt index 2b9a16ec49..caf6253626 100644 --- a/Code/UtilitiesAdapters/OssimAdapters/CMakeLists.txt +++ b/Code/UtilitiesAdapters/OssimAdapters/CMakeLists.txt @@ -3,7 +3,7 @@ FILE(GLOB OTBOssimAdapters_SRCS "*.cxx" ) ADD_LIBRARY(OTBOssimAdapters ${OTBOssimAdapters_SRCS}) -TARGET_LINK_LIBRARIES (OTBOssimAdapters otbossim otbossimplugins ITKCommon) +TARGET_LINK_LIBRARIES (OTBOssimAdapters ${OSSIM_LIBRARY} otbossimplugins ITKCommon) IF(OTB_LIBRARY_PROPERTIES) SET_TARGET_PROPERTIES(OTBOssimAdapters PROPERTIES ${OTB_LIBRARY_PROPERTIES}) ENDIF(OTB_LIBRARY_PROPERTIES) diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt index e24f9a078b..fb05d78bf4 100644 --- a/Utilities/CMakeLists.txt +++ b/Utilities/CMakeLists.txt @@ -53,8 +53,12 @@ MESSAGE(STATUS "Configuring otbknn...") ADD_SUBDIRECTORY(otbknn ) MESSAGE(STATUS "Configuring InsightJournal...") ADD_SUBDIRECTORY(InsightJournal) -MESSAGE(STATUS "Configuring otbossim...") -ADD_SUBDIRECTORY(otbossim) + +IF(NOT OTB_USE_EXTERNAL_OSSIM) + MESSAGE(STATUS "Configuring otbossim...") + ADD_SUBDIRECTORY(otbossim) +ENDIF(NOT OTB_USE_EXTERNAL_OSSIM) + MESSAGE(STATUS "Configuring otbossimplugins...") ADD_SUBDIRECTORY(otbossimplugins) MESSAGE(STATUS "Configuring otb6S...") diff --git a/Utilities/otbossim/CMakeLists.txt b/Utilities/otbossim/CMakeLists.txt index 992968fa05..84fa09fb7c 100644 --- a/Utilities/otbossim/CMakeLists.txt +++ b/Utilities/otbossim/CMakeLists.txt @@ -104,6 +104,8 @@ IF(NOT OTB_DISABLE_UTILITIES_COMPILATION) ${ossim_parallel_SRCS} ${ossim_elevation_SRCS}) + SET(OSSIM_LIB otbossim) + #Apparently not supported by opensolaris at least # SET_TARGET_PROPERTIES(otbossim # PROPERTIES diff --git a/Utilities/otbossimplugins/CMakeLists.txt b/Utilities/otbossimplugins/CMakeLists.txt index 3c8d49eff0..24be1d8782 100644 --- a/Utilities/otbossimplugins/CMakeLists.txt +++ b/Utilities/otbossimplugins/CMakeLists.txt @@ -11,9 +11,17 @@ SET(OSSIMPLUGINS_OTB_PATCH "1") INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/ossim - ${OTB_SOURCE_DIR}/Utilities/otbossim/include - ${OTB_BINARY_DIR}/Utilities/otbossim/include +# ${OTB_SOURCE_DIR}/Utilities/otbossim/include +# ${OTB_BINARY_DIR}/Utilities/otbossim/include ) +IF(OTB_USE_EXTERNAL_OSSIM) + MESSAGE(${OSSIM_INCLUDE_DIR}) + INCLUDE_DIRECTORIES(${OSSIM_INCLUDE_DIR}) +ELSE(OTB_USE_EXTERNAL_OSSIM) + INCLUDE_DIRECTORIES(${OTB_SOURCE_DIR}/Utilities/otbossim/include) + INCLUDE_DIRECTORIES(${OTB_BINARY_DIR}/Utilities/otbossim/include) +ENDIF(OTB_USE_EXTERNAL_OSSIM) + INCLUDE_DIRECTORIES(AFTER ${GEOTIFF_INCLUDE_DIRS} ${TIFF_INCLUDE_DIRS}) SET(ossimplugins_SOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR}) @@ -27,7 +35,7 @@ SET(ossimplugins_SOURCES ) ADD_LIBRARY(otbossimplugins ${ossimplugins_SOURCES} ) -TARGET_LINK_LIBRARIES(otbossimplugins ${GEOTIFF_LIBRARY} ${GDAL_LIBRARY} ${OGR_LIBRARY} otbossim) +TARGET_LINK_LIBRARIES(otbossimplugins ${GEOTIFF_LIBRARY} ${GDAL_LIBRARY} ${OGR_LIBRARY} ${OSSIM_LIBRARY}) SET_TARGET_PROPERTIES(otbossimplugins PROPERTIES VERSION "${OSSIMPLUGINS_SVN_REVISION}.${OSSIMPLUGINS_OTB_PATCH}.0" SOVERSION "${OSSIMPLUGINS_SVN_REVISION}.${OSSIMPLUGINS_OTB_PATCH}") -- GitLab