diff --git a/Modules/ThirdParty/GDCM/itk-module.cmake b/Modules/ThirdParty/GDCM/itk-module.cmake index e22c27ecb93..a5962846078 100644 --- a/Modules/ThirdParty/GDCM/itk-module.cmake +++ b/Modules/ThirdParty/GDCM/itk-module.cmake @@ -13,6 +13,7 @@ else() DEPENDS ITKZLIB ITKExpat + ITKOpenJPEG DESCRIPTION "${DOCUMENTATION}" ) diff --git a/Modules/ThirdParty/GDCM/src/CMakeLists.txt b/Modules/ThirdParty/GDCM/src/CMakeLists.txt index 5519567cf00..9b99de751a3 100644 --- a/Modules/ThirdParty/GDCM/src/CMakeLists.txt +++ b/Modules/ThirdParty/GDCM/src/CMakeLists.txt @@ -30,8 +30,10 @@ set(GDCM_USE_SYSTEM_EXPAT ON CACHE INTERNAL "") set(EXPAT_INCLUDE_DIR ${ITKExpat_INCLUDE_DIRS}) set(EXPAT_LIBRARY ${ITKExpat_LIBRARIES}) # OpenJPEG: -set(GDCM_USE_SYSTEM_OPENJPEG OFF CACHE INTERNAL "") +set(GDCM_USE_SYSTEM_OPENJPEG ON CACHE INTERNAL "") set(GDCM_USE_OPENJPEG_V2 ON CACHE INTERNAL "") +set(OPENJPEG_INCLUDE_DIRS ${ITKOpenJPEG_INCLUDE_DIRS}) +set(OPENJPEG_LIBRARIES ${ITKOpenJPEG_LIBRARIES}) # ZLIB: set(GDCM_USE_SYSTEM_ZLIB ON CACHE INTERNAL "") set(ZLIB_INCLUDE_DIR ${ITKZLIB_INCLUDE_DIRS}) diff --git a/Modules/ThirdParty/GDCM/src/gdcm/CMakeLists.txt b/Modules/ThirdParty/GDCM/src/gdcm/CMakeLists.txt index 227ca4d7747..b60369205d1 100644 --- a/Modules/ThirdParty/GDCM/src/gdcm/CMakeLists.txt +++ b/Modules/ThirdParty/GDCM/src/gdcm/CMakeLists.txt @@ -353,7 +353,7 @@ else() endif() if(GDCM_USE_SYSTEM_OPENJPEG) - find_package(OpenJPEG 2.0.0 REQUIRED) + #find_package(OpenJPEG REQUIRED) set(GDCM_OPENJPEG_LIBRARIES ${OPENJPEG_LIBRARIES}) else() set(GDCM_OPENJPEG_LIBRARIES gdcmopenjp2) diff --git a/Modules/ThirdParty/OpenJPEG/UpdateFromUpstream.sh b/Modules/ThirdParty/OpenJPEG/UpdateFromUpstream.sh index 5ea781b073b..01c42fb25b3 100755 --- a/Modules/ThirdParty/OpenJPEG/UpdateFromUpstream.sh +++ b/Modules/ThirdParty/OpenJPEG/UpdateFromUpstream.sh @@ -16,6 +16,8 @@ LICENSE cmake/EnsureFileInclude.cmake cmake/TestLargeFiles.cmake +cmake/TestFileOffsetBits.c +cmake/TestLargeFiles.c.cmake.in src/lib/CMakeLists.txt src/lib/openjp2/CMakeLists.txt diff --git a/Modules/ThirdParty/OpenJPEG/src/openjpeg/cmake/TestFileOffsetBits.c b/Modules/ThirdParty/OpenJPEG/src/openjpeg/cmake/TestFileOffsetBits.c new file mode 100644 index 00000000000..cd679c1130c --- /dev/null +++ b/Modules/ThirdParty/OpenJPEG/src/openjpeg/cmake/TestFileOffsetBits.c @@ -0,0 +1,11 @@ +#include + +/* Cause a compile-time error if off_t is smaller than 64 bits */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +int off_t_is_large[ (LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1 ]; + +int main(int argc, char **argv) +{ + return 0; +} + diff --git a/Modules/ThirdParty/OpenJPEG/src/openjpeg/cmake/TestLargeFiles.c.cmake.in b/Modules/ThirdParty/OpenJPEG/src/openjpeg/cmake/TestLargeFiles.c.cmake.in new file mode 100644 index 00000000000..623f95f8ce9 --- /dev/null +++ b/Modules/ThirdParty/OpenJPEG/src/openjpeg/cmake/TestLargeFiles.c.cmake.in @@ -0,0 +1,23 @@ +#cmakedefine _LARGEFILE_SOURCE +#cmakedefine _LARGE_FILES +#cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@ + +#include +#include +#include + +int main(int argc, char **argv) +{ + /* Cause a compile-time error if off_t is smaller than 64 bits, + * and make sure we have ftello / fseeko. + */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[ (LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1 ]; + FILE *fp = fopen(argv[0],"r"); + off_t offset = ftello( fp ); + + fseeko( fp, offset, SEEK_CUR ); + fclose(fp); + return 0; +} +