From 7325629e168289618fcfdcaea4cb602d0c80040c Mon Sep 17 00:00:00 2001 From: Julien Malik <julien.malik@c-s.fr> Date: Thu, 1 Dec 2011 14:06:35 +0100 Subject: [PATCH] UTIL: apply OTB patch --- Utilities/otbopenjpeg/CMakeLists.txt | 78 +++++++++++-------- .../otbopenjpeg/libopenjpeg/CMakeLists.txt | 16 ++-- Utilities/otbopenjpeg/libopenjpeg/openjpeg.h | 7 +- .../otbopenjpeg/libopenjpeg/opj_includes.h | 1 + 4 files changed, 62 insertions(+), 40 deletions(-) diff --git a/Utilities/otbopenjpeg/CMakeLists.txt b/Utilities/otbopenjpeg/CMakeLists.txt index 09a0a10055..405afafe0c 100644 --- a/Utilities/otbopenjpeg/CMakeLists.txt +++ b/Utilities/otbopenjpeg/CMakeLists.txt @@ -34,15 +34,21 @@ SET(OPENJPEG_VERSION "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}") SET(PACKAGE_VERSION "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}") + +# svn revision number of this openjpeg fork (used for .so versioning) +SET(OPENJPEG_SVN_REVISION "1108") +# patch number for OTB modifications applied on top of OPENJPEG_SVN_REVISION (used for .so versioning) +SET(OPENJPEG_OTB_PATCH "1") + SET(OPENJPEG_LIBRARY_PROPERTIES - VERSION "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}" - SOVERSION "${OPENJPEG_VERSION_MAJOR}" + VERSION "${OPENJPEG_SVN_REVISION}.${OPENJPEG_OTB_PATCH}.0" + SOVERSION "${OPENJPEG_SVN_REVISION}.${OPENJPEG_OTB_PATCH}" ) # -------------------------------------------------------------------------- # Path to additional CMake modules SET(CMAKE_MODULE_PATH - ${CMAKE_SOURCE_DIR}/CMake + ${${OPENJPEG_NAMESPACE}_SOURCE_DIR}/CMake ${CMAKE_MODULE_PATH}) # -------------------------------------------------------------------------- @@ -118,8 +124,8 @@ TEST_BIG_ENDIAN(OPJ_BIG_ENDIAN) #----------------------------------------------------------------------------- # Setup file for setting custom ctest vars CONFIGURE_FILE( - ${CMAKE_SOURCE_DIR}/CMake/CTestCustom.cmake.in - ${CMAKE_BINARY_DIR}/CTestCustom.cmake + ${${OPENJPEG_NAMESPACE}_SOURCE_DIR}/CMake/CTestCustom.cmake.in + ${${OPENJPEG_NAMESPACE}_BINARY_DIR}/CTestCustom.cmake @ONLY ) @@ -133,19 +139,28 @@ MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH) #----------------------------------------------------------------------------- # configure name mangling to allow multiple libraries to coexist # peacefully -IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in) -SET(MANGLE_PREFIX ${OPENJPEG_LIBRARY_NAME}) -CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in + +#SET(OPJ_MANGLE_PREFIX "" CACHE STRING "Prefix used to mangle all the symbols") +IF(OPJ_MANGLE_PREFIX) + SET(OPJ_USE_MANGLE_PREFIX ON) +ELSE(OPJ_MANGLE_PREFIX) + SET(OPJ_USE_MANGLE_PREFIX OFF) +ENDIF(OPJ_MANGLE_PREFIX) + +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/openjpeg_mangle.h - @ONLY) -ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in) + @ONLY IMMEDIATE) + +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle_private.h.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/openjpeg_mangle_private.h + @ONLY IMMEDIATE) #----------------------------------------------------------------------------- # pkgconfig support CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libopenjpeg1.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg1.pc @ONLY) -INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg1.pc DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig ) -INSTALL( CODE - "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink \"libopenjpeg1.pc\" \"\$ENV{DESTDIR}${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig/libopenjpeg.pc\")") +#INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg1.pc DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig ) +#INSTALL( CODE +# "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink \"libopenjpeg1.pc\" \"\$ENV{DESTDIR}${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig/libopenjpeg.pc\")") #----------------------------------------------------------------------------- # Compiler specific flags: @@ -179,9 +194,9 @@ ADD_SUBDIRECTORY(libopenjpeg) #----------------------------------------------------------------------------- # Build Applications -OPTION(BUILD_CODEC "Build the CODEC executables" ON) -OPTION(BUILD_MJ2 "Build the MJ2 executables." OFF) -OPTION(BUILD_JPIP "Build the JPIP library and executables." OFF) +#OPTION(BUILD_CODEC "Build the CODEC executables" ON) +#OPTION(BUILD_MJ2 "Build the MJ2 executables." OFF) +#OPTION(BUILD_JPIP "Build the JPIP library and executables." OFF) IF(BUILD_CODEC OR BUILD_MJ2 OR BUILD_JPIP) OPTION(BUILD_THIRDPARTY "Build the thirdparty executables if it is needed" OFF) @@ -198,18 +213,18 @@ CONFIGURE_FILE("${OPENJPEG_SOURCE_DIR}/opj_config.h.cmake.in" #----------------------------------------------------------------------------- # Build JPWL-flavoured library and executables -OPTION(BUILD_JPWL "Build the JPWL library and executables" OFF) +#OPTION(BUILD_JPWL "Build the JPWL library and executables" OFF) #----------------------------------------------------------------------------- # Build DOCUMENTATION (not in ALL target and only if Doxygen is found) -OPTION(BUILD_DOC "Build the HTML documentation (with doxygen if available)." OFF) +#OPTION(BUILD_DOC "Build the HTML documentation (with doxygen if available)." OFF) IF(BUILD_DOC) ADD_SUBDIRECTORY(doc) ENDIF(BUILD_DOC) #----------------------------------------------------------------------------- # Buld Testing -OPTION(BUILD_TESTING "Build the tests." OFF) +#OPTION(BUILD_TESTING "Build the tests." OFF) IF(BUILD_TESTING) IF(BUILD_CODEC) ENABLE_TESTING() @@ -243,18 +258,19 @@ ENDIF(BUILD_TESTING) #----------------------------------------------------------------------------- # install all targets referenced as OPENJPEGTargets -INSTALL(EXPORT OpenJPEGTargets DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR}) -CONFIGURE_FILE( ${OPENJPEG_SOURCE_DIR}/CMake/OpenJPEGConfig.cmake.in - ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake - @ONLY -) -INSTALL( FILES ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake - DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR} -) +#INSTALL(EXPORT OpenJPEGTargets DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR}) +#CONFIGURE_FILE( ${OPENJPEG_SOURCE_DIR}/CMake/OpenJPEGConfig.cmake.in +# ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake +# @ONLY +#) +#INSTALL( FILES ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake +# DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR} +#) #----------------------------------------------------------------------------- # install CHANGES and LICENSE -INSTALL( - FILES CHANGES - LICENSE - DESTINATION ${OPENJPEG_INSTALL_DOC_DIR}) +#INSTALL( +# FILES CHANGES +# LICENSE +# DESTINATION ${OPENJPEG_INSTALL_DOC_DIR}) +# diff --git a/Utilities/otbopenjpeg/libopenjpeg/CMakeLists.txt b/Utilities/otbopenjpeg/libopenjpeg/CMakeLists.txt index 24ecf40910..84a441aa5e 100644 --- a/Utilities/otbopenjpeg/libopenjpeg/CMakeLists.txt +++ b/Utilities/otbopenjpeg/libopenjpeg/CMakeLists.txt @@ -53,13 +53,13 @@ INSTALL(TARGETS ${OPENJPEG_LIBRARY_NAME} ) # Install includes files -INSTALL(FILES openjpeg.h - DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers -) -INSTALL(CODE - "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${OPENJPEG_INSTALL_SUBDIR}/openjpeg.h \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${OPENJPEG_INSTALL_INCLUDE_DIR}/openjpeg.h)") +#INSTALL(FILES openjpeg.h +# DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers +#) +#INSTALL(CODE +# "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${OPENJPEG_INSTALL_SUBDIR}/openjpeg.h \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${OPENJPEG_INSTALL_INCLUDE_DIR}/openjpeg.h)") # install man page of the library -INSTALL( - FILES ${OPENJPEG_SOURCE_DIR}/doc/man/man3/libopenjpeg.3 - DESTINATION ${OPENJPEG_INSTALL_MAN_DIR}/man3) +#INSTALL( +# FILES ${OPENJPEG_SOURCE_DIR}/doc/man/man3/libopenjpeg.3 +# DESTINATION ${OPENJPEG_INSTALL_MAN_DIR}/man3) diff --git a/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h b/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h index d8a332b3c7..147ee003c1 100644 --- a/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h +++ b/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h @@ -35,6 +35,7 @@ #ifndef OPENJPEG_H #define OPENJPEG_H +#include "openjpeg_mangle.h" /* ========================================================== @@ -1515,7 +1516,11 @@ OPJ_API opj_jp2_metadata_t* OPJ_CALLCONV opj_get_jp2_metadata(opj_codec_t *p_cod OPJ_API opj_jp2_index_t* OPJ_CALLCONV opj_get_jp2_index(opj_codec_t *p_codec); - +/* >>OTB */ +OPJ_API opj_image_t* OPJ_CALLCONV opj_image_create0(); +OPJ_API void opj_copy_image_header(const opj_image_t* p_image_src, opj_image_t* p_image_dest); +/* <<OTB */ + #ifdef __cplusplus diff --git a/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h b/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h index 0ee873a813..b00acd1031 100644 --- a/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h +++ b/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h @@ -87,6 +87,7 @@ OpenJPEG interface ========================================================== */ +#include "openjpeg_mangle_private.h" #include "openjpeg.h" /* -- GitLab