From 29fe4ee393901880d3a060a90483930910ef3df0 Mon Sep 17 00:00:00 2001
From: Mickael Savinaud <mickael.savinaud@c-s.fr>
Date: Tue, 8 Nov 2011 16:03:57 +0100
Subject: [PATCH] UTIL: apply otb patch

---
 Utilities/otbopenjpeg/CMakeLists.txt          | 80 ++++++++++++-------
 .../otbopenjpeg/libopenjpeg/CMakeLists.txt    | 24 ++++--
 Utilities/otbopenjpeg/libopenjpeg/openjpeg.h  |  3 +
 .../otbopenjpeg/libopenjpeg/opj_includes.h    |  2 +
 4 files changed, 71 insertions(+), 38 deletions(-)

diff --git a/Utilities/otbopenjpeg/CMakeLists.txt b/Utilities/otbopenjpeg/CMakeLists.txt
index 47ebfdcd19..37dc09343a 100644
--- a/Utilities/otbopenjpeg/CMakeLists.txt
+++ b/Utilities/otbopenjpeg/CMakeLists.txt
@@ -34,15 +34,26 @@ 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 "1047")
+# 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}"
+#)
+
 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_SOURCE_DIR}/CMake
     ${CMAKE_MODULE_PATH})
 
 # --------------------------------------------------------------------------
@@ -115,8 +126,8 @@ INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake)
 #-----------------------------------------------------------------------------
 # Setup file for setting custom ctest vars
 CONFIGURE_FILE(
-  ${CMAKE_SOURCE_DIR}/CMake/CTestCustom.cmake.in
-  ${CMAKE_BINARY_DIR}/CTestCustom.cmake
+  ${OPENJPEG_SOURCE_DIR}/CMake/CTestCustom.cmake.in
+  ${OPENJPEG_BINARY_DIR}/CTestCustom.cmake
   @ONLY
   )
 
@@ -130,19 +141,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 IMMEDIATE)
-ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in)
+
+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:
@@ -208,9 +228,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)
@@ -227,18 +247,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()
@@ -264,18 +284,18 @@ 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..1f94fe04e5 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/CMakeLists.txt
+++ b/Utilities/otbopenjpeg/libopenjpeg/CMakeLists.txt
@@ -53,13 +53,21 @@ 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(FILES ${OPENJPEG_BINARY_DIR}/openjpeg_mangle.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_mangle.h \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${OPENJPEG_INSTALL_INCLUDE_DIR}/openjpeg_mangle.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 3c82498c04..8665981da5 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h
@@ -36,6 +36,7 @@
 #define OPENJPEG_H
 
 
+
 /* 
 ==========================================================
    Compiler directives
@@ -86,6 +87,8 @@ typedef unsigned int	OPJ_SIZE_T;
 typedef double			OPJ_FLOAT64;
 typedef float			OPJ_FLOAT32;
 
+#include "openjpeg_mangle.h"
+
 // Avoid compile-time warning because parameter is not used
 #define OPJ_ARG_NOT_USED(x) (void)(x)
 
diff --git a/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h b/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h
index d94237e7fb..f67e3ee098 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h
@@ -55,6 +55,8 @@
  ==========================================================
 */
 
+#include "openjpeg_mangle_private.h"
+
 /* Ignore GCC attributes if this is not GCC */
 #ifndef __GNUC__
 	#define __attribute__(x) /* __attribute__(x) */
-- 
GitLab