Skip to content
Snippets Groups Projects
Commit 54cca79e authored by Guillaume Pasero's avatar Guillaume Pasero
Browse files

Merge branch 'mantis-1499' into develop

parents 02ec0742 8cad2e5d
No related branches found
No related tags found
No related merge requests found
......@@ -35,14 +35,10 @@ find_path( OSSIM_INCLUDE_DIR
NAMES ossim/init/ossimInit.h )
# Version checking
set(OSSIM_VERSION)
if(EXISTS "${OSSIM_INCLUDE_DIR}/ossim/ossimVersion.h")
file(READ "${OSSIM_INCLUDE_DIR}/ossim/ossimVersion.h" _ossim_version_h_CONTENTS)
string(REGEX REPLACE ".*# *define OSSIM_VERSION *\"([0-9.]+)\".*" "\\1" OSSIM_VERSION "${_ossim_version_h_CONTENTS}")
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" OSSIM_MAJOR_VERSION_NUMBER "${OSSIM_VERSION}")
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" OSSIM_MINOR_VERSION_NUMBER "${OSSIM_VERSION}")
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" OSSIM_PATCH_VERSION_NUMBER "${OSSIM_VERSION}")
math(EXPR OSSIM_VERSION_NUMBER
"((${OSSIM_MAJOR_VERSION_NUMBER})*100+${OSSIM_MINOR_VERSION_NUMBER})*100+${OSSIM_PATCH_VERSION_NUMBER}")
if("${OSSIM_VERSION}" VERSION_LESS "1.8.20")
message(WARNING "The OSSIM include directory detected by OTB is: '${OSSIM_INCLUDE_DIR}'."
"This version (${OSSIM_VERSION}) is not fully compatible with OTB."
......@@ -67,6 +63,28 @@ else()
endif()
endif()
# Hack to detect version 2.2.0, without ossimVersion.h
if(EXISTS "${OSSIM_INCLUDE_DIR}/ossim/projection/ossimRpcSolver.h")
file(STRINGS "${OSSIM_INCLUDE_DIR}/ossim/projection/ossimRpcSolver.h" _ossim_rpc_solv_content)
if(_ossim_rpc_solv_content MATCHES "const +ossimRefPtr<ossimRpcModel> +getRpcModel\\(\\)")
if((NOT OSSIM_VERSION) OR (OSSIM_VERSION VERSION_LESS "2.2.0"))
set(OSSIM_VERSION "2.2.0")
endif()
endif()
endif()
if(OSSIM_VERSION)
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" OSSIM_MAJOR_VERSION_NUMBER "${OSSIM_VERSION}")
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" OSSIM_MINOR_VERSION_NUMBER "${OSSIM_VERSION}")
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" OSSIM_PATCH_VERSION_NUMBER "${OSSIM_VERSION}")
math(EXPR OSSIM_VERSION_NUMBER
"((${OSSIM_MAJOR_VERSION_NUMBER})*100+${OSSIM_MINOR_VERSION_NUMBER})*100+${OSSIM_PATCH_VERSION_NUMBER}")
else()
# Unknown version : default to 0
set(OSSIM_VERSION_NUMBER 0)
endif()
# Look for the library
find_library(OSSIM_LIBRARY
NAMES ossim)
......
......@@ -41,7 +41,16 @@ target_link_libraries(OTBOSSIMAdapters
${OTBOssim_LIBRARIES}
${OTBOssimPlugins_LIBRARIES}
${OTBOpenThreads_LIBRARIES}
)
otb_module_target(OTBOSSIMAdapters)
# add the OTB_OSSIM_VERSION definition
get_target_property(_OTBOSSIMAdapters_COMP_DEF OTBOSSIMAdapters COMPILE_DEFINITIONS)
if(_OTBOSSIMAdapters_COMP_DEF)
set_target_properties(OTBOSSIMAdapters
PROPERTIES COMPILE_DEFINITIONS "${_OTBOSSIMAdapters_COMP_DEF};OTB_OSSIM_VERSION=${OTB_OSSIM_VERSION}")
else()
set_target_properties(OTBOSSIMAdapters
PROPERTIES COMPILE_DEFINITIONS "OTB_OSSIM_VERSION=${OTB_OSSIM_VERSION}")
endif()
......@@ -112,7 +112,11 @@ RPCSolverAdapter::Solve(const GCPsContainerType& gcpContainer,
rmsError = rpcSolver->getRmsError();
// Retrieve the output RPC projection
#if OTB_OSSIM_VERSION < 20200
ossimRefPtr<ossimRpcProjection> rpcProjection = dynamic_cast<ossimRpcProjection*>(rpcSolver->createRpcProjection()->getProjection());
#else
ossimRefPtr<ossimRpcModel> rpcProjection = rpcSolver->getRpcModel();
#endif
// Export the sensor model in an ossimKeywordlist
ossimKeywordlist geom_kwl;
......
......@@ -19,3 +19,5 @@
#
find_package ( Ossim REQUIRED )
set(OTB_OSSIM_VERSION ${OSSIM_VERSION_NUMBER} CACHE INTERNAL "Ossim version detected by OTB" FORCE)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment