From 7334c78aff79771e4cf12572ce0de18995453ea3 Mon Sep 17 00:00:00 2001
From: Cyrille Valladeau <cyrille.valladeau@c-s.fr>
Date: Thu, 12 Jun 2008 12:05:23 +0000
Subject: [PATCH] Mise en place de l'option de compil d'openJpeg + correction
 TEsting/Utilities/openJpegDecoder (bool l_go_on -> OPJBOOL l_go_on).

---
 CMakeLists.txt                         |  24 ++++-
 Code/IO/CMakeLists.txt                 |  55 ++++++-----
 Testing/Code/IO/CMakeLists.txt         | 123 +++++++++++++------------
 Testing/Code/IO/otbIOTests13.cxx       |   9 +-
 Testing/Utilities/CMakeLists.txt       |  22 +++--
 Testing/Utilities/openJpegDecoder.cxx  |   6 +-
 Utilities/CMakeLists.txt               |   8 +-
 Utilities/ITK/Utilities/CMakeLists.txt |   7 +-
 otbIncludeDirectories.cmake            |  13 ++-
 9 files changed, 160 insertions(+), 107 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index dd1318b909..0c81f786b4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -63,9 +63,22 @@ SET(OTB_VERSION_PATCH "1")
 # enough to distinguish available features of the toolkit.
 SET(OTB_VERSION_STRING "${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR}.${OTB_VERSION_PATCH}")
 
+
 OPTION(BUILD_TESTING "Build testing." OFF)
 
+
+#-----------------------------------------------------------------------------
+
+# Case for release 2.2.1
+# Use the openjpeg library.
+OPTION(OTB_USE_OPENJPEG "Use the openjpeg library." OFF)
+MARK_AS_ADVANCED(OTB_USE_OPENJPEG)
+# Add compiler option 
+ADD_DEFINITIONS(-DOTB_USE_OPENJPEG)
+
 #-----------------------------------------------------------------------------
+
+
 # FIND EXTERNAL LIBRAIRIES USE
 
 #-------------------------------
@@ -461,9 +474,13 @@ ENDIF(OTB_USE_VISU_GUI)
 SET(OTB_ALGO_UTILITIES_DEPENDENT_LIBRARIES "otb6S otbgalib InsightJournal otbsvm")
 
 IF(NOT OTB_USE_EXTERNAL_ITK)
-# Commented for release 2.2.0
-#        SET(OTB_UTILITIES_DEPENDENT_LIBRARIES  "${OTB_UTILITIES_DEPENDENT_LIBRARIES} otbopenjpeg")
-SET(OTB_UTILITIES_DEPENDENT_LIBRARIES  "${OTB_UTILITIES_DEPENDENT_LIBRARIES}")
+# Case for release 2.2.1
+# SET(OTB_UTILITIES_DEPENDENT_LIBRARIES "${OTB_UTILITIES_DEPENDENT_LIBRARIES}") 
+  IF(OTB_USE_OPENJPEG)
+     SET(OTB_UTILITIES_DEPENDENT_LIBRARIES "${OTB_UTILITIES_DEPENDENT_LIBRARIES} otbopenjpeg") 
+   ELSE(OTB_USE_OPENJPEG)
+     SET(OTB_UTILITIES_DEPENDENT_LIBRARIES "${OTB_UTILITIES_DEPENDENT_LIBRARIES} ") 
+   ENDIF(OTB_USE_OPENJPEG)
 ENDIF(NOT OTB_USE_EXTERNAL_ITK)
 
 # => Create OTB_ALLS_UTILITIES_DEPENDENT_LIBRARIES
@@ -473,7 +490,6 @@ SET(OTB_ALLS_UTILITIES_DEPENDENT_LIBRARIES "${OTB_IO_UTILITIES_DEPENDENT_LIBRARI
 #-----------------------------------------------------------------------------
 
 
-
 OPTION(BUILD_EXAMPLES "Build the Examples directory." OFF)
 OPTION(BUILD_EXAMPLES_TESTING "Build the Examples testing." OFF)
 
diff --git a/Code/IO/CMakeLists.txt b/Code/IO/CMakeLists.txt
index c9f6a6e606..0cbcad9c8e 100755
--- a/Code/IO/CMakeLists.txt
+++ b/Code/IO/CMakeLists.txt
@@ -2,12 +2,14 @@
 
 FILE(GLOB OTBIO_SRCS "*.cxx" )
 
-# Commented for release 2.2.0
-#IF(OTB_USE_EXTERNAL_ITK)
-LIST(REMOVE_ITEM OTBIO_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/otbJPEG2000ImageIO.cxx" )
-LIST(REMOVE_ITEM OTBIO_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/otbJPEG2000ImageIOFactory.cxx" )
-ADD_DEFINITIONS(-DOTB_JPEG2000_DISABLED)
-#ENDIF(OTB_USE_EXTERNAL_ITK)
+# Case for release 2.2.1
+IF(OTB_USE_EXTERNAL_ITK)
+  IF(NOT OTB_USE_OPENJPEG)
+    LIST(REMOVE_ITEM OTBIO_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/otbJPEG2000ImageIO.cxx" )
+    LIST(REMOVE_ITEM OTBIO_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/otbJPEG2000ImageIOFactory.cxx" )
+    ADD_DEFINITIONS(-DOTB_JPEG2000_DISABLED)
+  ENDIF(NOT OTB_USE_OPENJPEG)
+ENDIF(OTB_USE_EXTERNAL_ITK)
 
 IF( NOT OTB_USE_CURL )
     LIST(REMOVE_ITEM OTBIO_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/otbTileMapImageIOFactory.cxx" )
@@ -15,22 +17,30 @@ IF( NOT OTB_USE_CURL )
 ENDIF( NOT OTB_USE_CURL )
 
 
-# Commented for release 2.2.0
+# Case for release 2.2.1
 # otbopenjpeg
-#IF(OTB_BUILD_SHARED_LIBS)
-#  ADD_DEFINITIONS(-DOPJ_EXPORTS)
-#ELSE(OTB_BUILD_SHARED_LIBS)
-#  ADD_DEFINITIONS(-DOPJ_STATIC)
-#ENDIF(OTB_BUILD_SHARED_LIBS)
+IF(OTB_USE_OPENJPEG)
+  IF(OTB_BUILD_SHARED_LIBS)
+    ADD_DEFINITIONS(-DOPJ_EXPORTS)
+  ELSE(OTB_BUILD_SHARED_LIBS)
+    ADD_DEFINITIONS(-DOPJ_STATIC)
+  ENDIF(OTB_BUILD_SHARED_LIBS)
+ENDIF(OTB_USE_OPENJPEG)
+
 
 ADD_LIBRARY(OTBIO ${OTBIO_SRCS})
 #PROVISOIRE
 IF(OTB_USE_EXTERNAL_ITK)
-TARGET_LINK_LIBRARIES (OTBIO gdal OTBCommon ITKIO ITKCommon otbossim dxf )
+  TARGET_LINK_LIBRARIES (OTBIO gdal OTBCommon ITKIO ITKCommon otbossim dxf )
 ELSE(OTB_USE_EXTERNAL_ITK)
-# Commented for release 2.2.0
-# TARGET_LINK_LIBRARIES (OTBIO gdal OTBCommon ITKIO ITKCommon otbossim dxf otbopenjpeg)
-TARGET_LINK_LIBRARIES (OTBIO gdal OTBCommon ITKIO ITKCommon otbossim dxf)
+# Case for release 2.2.1
+## TARGET_LINK_LIBRARIES (OTBIO gdal OTBCommon ITKIO ITKCommon otbossim dxf otbopenjpeg)
+#TARGET_LINK_LIBRARIES (OTBIO gdal OTBCommon ITKIO ITKCommon otbossim dxf)
+  IF(OTB_USE_OPENJPEG)
+    TARGET_LINK_LIBRARIES (OTBIO gdal OTBCommon ITKIO ITKCommon otbossim dxf otbopenjpeg)
+  ELSE(OTB_USE_OPENJPEG)
+    TARGET_LINK_LIBRARIES (OTBIO gdal OTBCommon ITKIO ITKCommon otbossim dxf)
+  ENDIF(OTB_USE_OPENJPEG)
 ENDIF(OTB_USE_EXTERNAL_ITK)
 
 IF( OTB_USE_CURL )
@@ -50,11 +60,14 @@ IF( NOT OTB_USE_CURL )
     LIST(REMOVE_ITEM __files1 "${CMAKE_CURRENT_SOURCE_DIR}/otbTileMapImageIO.h" )
 ENDIF( NOT OTB_USE_CURL )
 
-# Commented for release 2.2.0
-#IF(OTB_USE_EXTERNAL_ITK)
-#LIST(REMOVE_ITEM __files1 "${CMAKE_CURRENT_SOURCE_DIR}/otbJpeg2000ImageIOFactory.h" )
-#LIST(REMOVE_ITEM __files1 "${CMAKE_CURRENT_SOURCE_DIR}/otbJpeg2000ImageIO.h" )
-#ENDIF(OTB_USE_EXTERNAL_ITK)
+
+# Case for release 2.2.1
+IF(OTB_USE_EXTERNAL_ITK)
+  IF(OTB_USE_OPENJPEG)
+    LIST(REMOVE_ITEM __files1 "${CMAKE_CURRENT_SOURCE_DIR}/otbJpeg2000ImageIOFactory.h" )
+    LIST(REMOVE_ITEM __files1 "${CMAKE_CURRENT_SOURCE_DIR}/otbJpeg2000ImageIO.h" )
+  ENDIF(OTB_USE_OPENJPEG)
+ENDIF(OTB_USE_EXTERNAL_ITK)
 
 
 INSTALL(FILES ${__files1} ${__files2}
diff --git a/Testing/Code/IO/CMakeLists.txt b/Testing/Code/IO/CMakeLists.txt
index e2e871d430..2ed2d3340e 100755
--- a/Testing/Code/IO/CMakeLists.txt
+++ b/Testing/Code/IO/CMakeLists.txt
@@ -1268,64 +1268,66 @@ ADD_TEST(ioTvossimElevManagerTest ${IO_TESTS12}
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ otbIOTESTS13 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+
+# Case for release 2.2.1
+IF(OTB_USE_OPENJPEG)
+IF(NOT OTB_USE_EXTERNAL_ITK)
 
-# Commented for release 2.2.0
-#IF(NOT OTB_USE_EXTERNAL_ITK)
-#
 # ---  JPEG2000 can read ---
-#ADD_TEST(ioTuJ2KImageIOCanRead ${IO_TESTS13} 
-#         otbJPEG2000ImageIOTestCanRead
-#         ${INPUTDATA}/bretagne.j2k
-#         )
-
-#ADD_TEST(ioTuJP2ImageIOCanRead ${IO_TESTS13} 
-#         otbJPEG2000ImageIOTestCanRead
-#         ${IMAGEDATA}/JPEG2000/QB_multicomp.jpx
-#         )
-
-#ADD_TEST(ioTuVectorImageFileReaderWriterJ2K2TIF ${IO_TESTS9} 
-#--compare-image ${TOL}  ${BASELINE}/ioTvVectorImageFileReaderWriterJ2K2TIFOutput.tif
-#                        ${TEMP}/ioTvVectorImageFileReaderWriterJ2K2TIFOutput.tif
-#         otbVectorImageFileReaderWriterTest
-#         ${INPUTDATA}/bretagne.j2k
-#	 ${TEMP}/ioTvVectorImageFileReaderWriterJ2K2TIFOutput.tif
-#         )
-
-#ADD_TEST(ioTuImageFileReaderWriterJ2K2TIF ${IO_TESTS2} 
-#--compare-image ${TOL}  ${BASELINE}/ioTvImageFileReaderWriterJ2K2TIFOutput.tif
-#                        ${TEMP}/ioTvImageFileReaderWriterJ2K2TIFOutput.tif
-#         otbDoubleImageIOTest
-#         ${INPUTDATA}/bretagne.j2k
-#	 ${TEMP}/ioTvImageFileReaderWriterJ2K2TIFOutput.tif
-#         )
+ADD_TEST(ioTuJ2KImageIOCanRead ${IO_TESTS13} 
+         otbJPEG2000ImageIOTestCanRead
+         ${INPUTDATA}/bretagne.j2k
+         )
+
+ADD_TEST(ioTuJP2ImageIOCanRead ${IO_TESTS13} 
+         otbJPEG2000ImageIOTestCanRead
+         ${IMAGEDATA}/JPEG2000/QB_multicomp.jpx
+         )
+
+ADD_TEST(ioTuVectorImageFileReaderWriterJ2K2TIF ${IO_TESTS9} 
+-compare-image ${TOL}  ${BASELINE}/ioTvVectorImageFileReaderWriterJ2K2TIFOutput.tif
+                        ${TEMP}/ioTvVectorImageFileReaderWriterJ2K2TIFOutput.tif
+         otbVectorImageFileReaderWriterTest
+         ${INPUTDATA}/bretagne.j2k
+	 ${TEMP}/ioTvVectorImageFileReaderWriterJ2K2TIFOutput.tif
+         )
+
+ADD_TEST(ioTuImageFileReaderWriterJ2K2TIF ${IO_TESTS2} 
+--compare-image ${TOL}  ${BASELINE}/ioTvImageFileReaderWriterJ2K2TIFOutput.tif
+                        ${TEMP}/ioTvImageFileReaderWriterJ2K2TIFOutput.tif
+         otbDoubleImageIOTest
+         ${INPUTDATA}/bretagne.j2k
+	 ${TEMP}/ioTvImageFileReaderWriterJ2K2TIFOutput.tif
+        )
 
 #NOTE: we are comparing with the kakadu output in raw format.
-#ADD_TEST(ioTuVectorImageFileReaderWriterJP22TIF ${IO_TESTS9} 
-#--compare-image ${TOL}  ${BASELINE}/ioTvVectorImageFileReaderWriterJP22TIFOutput
-#                        ${TEMP}/ioTvVectorImageFileReaderWriterJP22TIFOutput.tif
-#         otbVectorImageFileReaderWriterTest
-#         ${IMAGEDATA}/JPEG2000/QB_multicomp_small.jpx
-#	 ${TEMP}/ioTvVectorImageFileReaderWriterJP22TIFOutput.tif
-#         )
+ADD_TEST(ioTuVectorImageFileReaderWriterJP22TIF ${IO_TESTS9} 
+--compare-image ${TOL}  ${BASELINE}/ioTvVectorImageFileReaderWriterJP22TIFOutput
+                        ${TEMP}/ioTvVectorImageFileReaderWriterJP22TIFOutput.tif
+         otbVectorImageFileReaderWriterTest
+         ${IMAGEDATA}/JPEG2000/QB_multicomp_small.jpx
+	 ${TEMP}/ioTvVectorImageFileReaderWriterJP22TIFOutput.tif
+         )
 
 
-#ADD_TEST(ioTuImageFileReaderWriterJP22TIF ${IO_TESTS2} 
-#--compare-image ${TOL}  ${BASELINE}/ioTvImageFileReaderWriterJP22TIFOutput.tif
-#                        ${TEMP}/ioTvImageFileReaderWriterJP22TIFOutput.tif
-#         otbDoubleImageIOTest
-#         ${IMAGEDATA}/JPEG2000/QB_multicomp_small.jpx
-#	 ${TEMP}/ioTvImageFileReaderWriterJP22TIFOutput.tif
-#         )
+ADD_TEST(ioTuImageFileReaderWriterJP22TIF ${IO_TESTS2} 
+-compare-image ${TOL}  ${BASELINE}/ioTvImageFileReaderWriterJP22TIFOutput.tif
+                        ${TEMP}/ioTvImageFileReaderWriterJP22TIFOutput.tif
+         otbDoubleImageIOTest
+         ${IMAGEDATA}/JPEG2000/QB_multicomp_small.jpx
+	 ${TEMP}/ioTvImageFileReaderWriterJP22TIFOutput.tif
+         )
 
 
 
 # ---  JPEG2000 can write ---
-#ADD_TEST(ioTuJPEG2000ImageIOCanWrite ${IO_TESTS13} 
-#         otbJPEG2000ImageIOTestCanWrite
-#         ${INPUTDATA}/toto.j2k
-#         )
-#ENDIF(NOT OTB_USE_EXTERNAL_ITK)
+ADD_TEST(ioTuJPEG2000ImageIOCanWrite ${IO_TESTS13} 
+         otbJPEG2000ImageIOTestCanWrite
+         ${INPUTDATA}/toto.j2k
+         )
+ENDIF(NOT OTB_USE_EXTERNAL_ITK)
+ENDIF(OTB_USE_OPENJPEG)
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ otbIOTESTS14 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1493,17 +1495,20 @@ otbOssimElevManagerTest.cxx
 )
 
 
-#SET(BasicIO_SRCS13
-#otbJPEG2000ImageIOTestCanRead.cxx
-#otbJPEG2000ImageIOTestCanWrite.cxx
-#)
-
-# Commented for release 2.2.0
-#IF(OTB_USE_EXTERNAL_ITK)
-#LIST(REMOVE_ITEM BasicIO_SRCS13 "${CMAKE_CURRENT_SOURCE_DIR}/otbJPEG2000ImageIOTestCanRead.cxx" )
-#LIST(REMOVE_ITEM BasicIO_SRCS13 "${CMAKE_CURRENT_SOURCE_DIR}/otbJPEG2000ImageIOTestCanWrite.cxx" )
-#ENDIF(OTB_USE_EXTERNAL_ITK)
-
+IF(OTB_USE_OPENJPEG)
+SET(BasicIO_SRCS13
+otbJPEG2000ImageIOTestCanRead.cxx
+otbJPEG2000ImageIOTestCanWrite.cxx
+)
+ENDIF(OTB_USE_OPENJPEG)
+
+# Case for release 2.2.1
+IF(OTB_USE_OPENJPEG)
+  IF(OTB_USE_EXTERNAL_ITK)
+    LIST(REMOVE_ITEM BasicIO_SRCS13 "${CMAKE_CURRENT_SOURCE_DIR}/otbJPEG2000ImageIOTestCanRead.cxx" )
+    LIST(REMOVE_ITEM BasicIO_SRCS13 "${CMAKE_CURRENT_SOURCE_DIR}/otbJPEG2000ImageIOTestCanWrite.cxx" )
+  ENDIF(OTB_USE_EXTERNAL_ITK)
+ENDIF(OTB_USE_OPENJPEG)
 
 SET(BasicIO_SRCS14
 otbOGRDriverTest.cxx
diff --git a/Testing/Code/IO/otbIOTests13.cxx b/Testing/Code/IO/otbIOTests13.cxx
index 57dfd8a3a5..8a73506c21 100644
--- a/Testing/Code/IO/otbIOTests13.cxx
+++ b/Testing/Code/IO/otbIOTests13.cxx
@@ -28,7 +28,10 @@
 
 void RegisterTests()
 {
-  // Commented for release 2.2.0
-  // REGISTER_TEST(otbJPEG2000ImageIOTestCanRead);
-  // REGISTER_TEST(otbJPEG2000ImageIOTestCanWrite);
+  //# Case for release 2.2.0
+  if(OTB_USE_OPENJPEG)
+    {
+      REGISTER_TEST(otbJPEG2000ImageIOTestCanRead);
+      REGISTER_TEST(otbJPEG2000ImageIOTestCanWrite);
+    }
 }
diff --git a/Testing/Utilities/CMakeLists.txt b/Testing/Utilities/CMakeLists.txt
index 7af3b8ffa8..3fd96a0a06 100644
--- a/Testing/Utilities/CMakeLists.txt
+++ b/Testing/Utilities/CMakeLists.txt
@@ -325,11 +325,11 @@ ADD_TEST(utOssimRadarSatSupport ${UTILITIES_TESTS}
 
 
 # -------            lib OpenJpeg   ------------------------------
-#ADD_TEST(utOpenJpegEncoder ${UTILITIES_TESTS}
-#	openJpegEncoder)
+ADD_TEST(utOpenJpegEncoder ${UTILITIES_TESTS}
+	openJpegEncoder)
 
-#ADD_TEST(utOpenJpegDecoder ${UTILITIES_TESTS}
-#	openJpegDecoder)
+ADD_TEST(utOpenJpegDecoder ${UTILITIES_TESTS}
+	openJpegDecoder)
 
 # -------            SIFT   -------------------------------------
 ADD_TEST(ut2DSiftImageSquareSyntheticRotate10 ${UTILITIES_TESTS}
@@ -412,18 +412,24 @@ tinyXMLlibTest.cxx
 svmGenericKernelBasicOperationsTest.cxx
 otbSVMComposedKernelFunctorTest.cxx
 ossimRadarSatSupport.cxx
-#openJpegEncoder.cxx
-#openJpegDecoder.cxx
 itkScaleInvariantFeatureImageFilterTest.cxx
 )
 
+# Case for release 2.2.1
+IF(OTB_USE_OPENJPEG)
+  SET(UtilitiesTests_SRCS ${UtilitiesTests_SRCS} openJpegEncoder.cxx openJpegDecoder.cxx)
+ENDIF(OTB_USE_OPENJPEG)
+
 INCLUDE_DIRECTORIES("${OTBTesting_BINARY_DIR}")
 
 INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}")
 
 ADD_EXECUTABLE(otbUtilitiesTests otbUtilitiesTests.cxx ${UtilitiesTests_SRCS})
-#TARGET_LINK_LIBRARIES(otbUtilitiesTests OTBIO OTBCommon gdal ITKIO ITKAlgorithms ITKStatistics ITKCommon otbossim otbsvm otb6S tinyXML openjpeg)
-TARGET_LINK_LIBRARIES(otbUtilitiesTests OTBIO OTBCommon gdal ITKIO ITKAlgorithms ITKStatistics ITKCommon otbossim otbsvm otb6S tinyXML )
+IF(OTB_USE_OPENJPEG)
+  TARGET_LINK_LIBRARIES(otbUtilitiesTests OTBIO OTBCommon gdal ITKIO ITKAlgorithms ITKStatistics ITKCommon otbossim otbsvm otb6S tinyXML openjpeg)
+ELSE(OTB_USE_OPENJPEG)
+  TARGET_LINK_LIBRARIES(otbUtilitiesTests OTBIO OTBCommon gdal ITKIO ITKAlgorithms ITKStatistics ITKCommon otbossim otbsvm otb6S tinyXML )
+ENDIF(OTB_USE_OPENJPEG)
 IF(UNIX)
     TARGET_LINK_LIBRARIES (otbUtilitiesTests m)
 ENDIF(UNIX)
diff --git a/Testing/Utilities/openJpegDecoder.cxx b/Testing/Utilities/openJpegDecoder.cxx
index 0dfe57f31c..e277509d49 100644
--- a/Testing/Utilities/openJpegDecoder.cxx
+++ b/Testing/Utilities/openJpegDecoder.cxx
@@ -66,7 +66,8 @@ int openJpegDecoder(int argc, char * argv[])
 	OPJ_UINT32 l_max_data_size = 1000;
 	OPJ_UINT32 l_tile_index;
 	OPJ_BYTE * l_data = (OPJ_BYTE *) malloc(1000);
-	bool l_go_on = true;
+	//bool l_go_on = true;
+	OPJ_BOOL l_go_on = true;
 	OPJ_INT32 l_tile_x0,l_tile_y0;
 	OPJ_UINT32 l_tile_width,l_tile_height,l_nb_tiles_x,l_nb_tiles_y,l_nb_comps;
 	OPJ_INT32 l_current_tile_x0,l_current_tile_y0,l_current_tile_x1,l_current_tile_y1;
@@ -147,8 +148,7 @@ int openJpegDecoder(int argc, char * argv[])
 		(l_go_on)
 	{
 		if
-			(! opj_read_tile_header(
-						l_codec,
+			(! opj_read_tile_header(l_codec,
 						&l_tile_index,
 						&l_data_size,
 						&l_current_tile_x0,
diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt
index 66d50b9d68..75dacddc13 100755
--- a/Utilities/CMakeLists.txt
+++ b/Utilities/CMakeLists.txt
@@ -2,9 +2,11 @@
 
 
 IF(NOT OTB_USE_EXTERNAL_ITK)
-# Commented for release 2.2.0
-#	SUBDIRS( ITK otbopenjpeg)
-SUBDIRS(ITK)
+  SUBDIRS(ITK)
+  # Case for release 2.2.1
+  IF(NOT OTB_USE_OPENJPEG)
+    SUBDIRS( ITK otbopenjpeg)
+  ENDIF(NOT OTB_USE_OPENJPEG)
 ENDIF(NOT OTB_USE_EXTERNAL_ITK)
 
 IF(OTB_USE_VISU_GUI)
diff --git a/Utilities/ITK/Utilities/CMakeLists.txt b/Utilities/ITK/Utilities/CMakeLists.txt
index 76894c057f..df16bee1e5 100644
--- a/Utilities/ITK/Utilities/CMakeLists.txt
+++ b/Utilities/ITK/Utilities/CMakeLists.txt
@@ -23,9 +23,12 @@ SET(OPJ_PREFIX "itk")
 #-----------------------------
 # The folowing lines are commented for the otbopenjpeg pb.
 # In static, pb of linking between itkopenjpeg and otbopenjeg (method definided twice)
+# Case for release 2.2.1
 #-----------------------------
-#ITK_THIRD_PARTY_SUBDIR(OpenJPEG openjpeg)
-#ITK_THIRD_PARTY_SUBDIR(GDCM gdcm)
+IF(NOT OTB_USE_OPENJPEG)
+  ITK_THIRD_PARTY_SUBDIR(OpenJPEG openjpeg)
+  ITK_THIRD_PARTY_SUBDIR(GDCM gdcm)
+ENDIF(NOT OTB_USE_OPENJPEG)
 
 
 #------------------------------------------------------------------------------
diff --git a/otbIncludeDirectories.cmake b/otbIncludeDirectories.cmake
index 7ef4aa2499..2456b1aee1 100644
--- a/otbIncludeDirectories.cmake
+++ b/otbIncludeDirectories.cmake
@@ -36,14 +36,16 @@ SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE}
   ${OTB_SOURCE_DIR}/Utilities/otbgeotiff
   ${OTB_SOURCE_DIR}/Utilities/otbgeotiff/libxtiff
   ${OTB_SOURCE_DIR}/Utilities/tinyXMLlib
-# Commented for release 2.2.0
-#  ${OTB_SOURCE_DIR}/Utilities/otbopenjpeg/libopenjpeg
 #  ${OTB_SOURCE_DIR}/Utilities/otbgalib
 #  ${OTB_SOURCE_DIR}/Utilities/otbkml
 #  ${OTB_SOURCE_DIR}/Utilities/otbkml/src
 #  ${OTB_SOURCE_DIR}/Utilities/otbkml/third_party/zlib-1.2.3
 #  ${OTB_SOURCE_DIR}/Utilities/otbkml/third_party/zlib-1.2.3/contrib
 )
+# Case for release 2.2.1
+IF(OTB_USE_OPENJPEG)
+  SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE} ${OTB_SOURCE_DIR}/Utilities/otbopenjpeg/libopenjpeg)
+ENDIF(OTB_USE_OPENJPEG)
 
 #-----------------------------------------------------------------------------
 # Include directories from the ossim build tree
@@ -187,14 +189,17 @@ SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
   ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbgeotiff
   ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbgeotiff/libxtiff
   ${OTB_INSTALL_INCLUDE_DIR}/Utilities/tinyXMLlib
-# Commented for release 2.2.0
-#  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbopenjpeg/libopenjpeg
 #  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbgalib
 #  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbkml
 #  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbkml/third_party/zlib-1.2.3
 #  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbkml/third_party/zlib-1.2.3/contrib
 )
 
+# Case for release 2.2.0
+IF(OTB_USE_OPENJPEG)
+  SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE} ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbopenjpeg/libopenjpeg)
+ENDIF(OTB_USE_OPENJPEG)
+
 #For GDAL header file
 SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
   		${GDAL_INCLUDE_DIRS} )
-- 
GitLab