early-access version 2853

This commit is contained in:
pineappleEA
2022-07-23 03:01:36 +02:00
parent 1f2b5081b5
commit 1f111bb69c
8955 changed files with 418777 additions and 999 deletions

View File

@@ -0,0 +1,16 @@
diff --git a/Modules/ThirdParty/DoubleConversion/CMakeLists.txt b/Modules/ThirdParty/DoubleConversion/CMakeLists.txt
index 16c611fd3..13978724c 100644
--- a/Modules/ThirdParty/DoubleConversion/CMakeLists.txt
+++ b/Modules/ThirdParty/DoubleConversion/CMakeLists.txt
@@ -9,7 +9,10 @@ mark_as_advanced(ITK_USE_SYSTEM_DOUBLECONVERSION)
if(ITK_USE_SYSTEM_DOUBLECONVERSION)
find_package(double-conversion REQUIRED)
get_target_property(ITKDoubleConversion_INCLUDE_DIRS double-conversion::double-conversion INTERFACE_INCLUDE_DIRECTORIES)
- get_target_property(ITKDoubleConversion_LIBRARIES double-conversion::double-conversion LOCATION)
+ get_target_property(ITKDoubleConversion_LIBRARY_RELEASE double-conversion::double-conversion LOCATION_RELEASE)
+ get_target_property(ITKDoubleConversion_LIBRARY_DEBUG double-conversion::double-conversion LOCATION_DEBUG)
+ include(SelectLibraryConfigurations)
+ select_library_configurations(ITKDoubleConversion)
else()
set(ITKDoubleConversion_INCLUDE_DIRS
${ITKDoubleConversion_SOURCE_DIR}/src

176
externals/vcpkg/ports/itk/opencl.patch vendored Executable file
View File

@@ -0,0 +1,176 @@
diff --git a/Modules/Core/GPUCommon/CMakeLists.txt b/Modules/Core/GPUCommon/CMakeLists.txt
index da2d66b63..6fb476680 100644
--- a/Modules/Core/GPUCommon/CMakeLists.txt
+++ b/Modules/Core/GPUCommon/CMakeLists.txt
@@ -24,9 +24,13 @@ if(ITK_USE_GPU AND APPLE AND NOT ITK_COMPILER_HAS_BLOCKS)
endif()
if(ITK_USE_GPU)
+ message(STATUS "OPENCL_LIBRARIES:${OPENCL_LIBRARIES}")
+ if(TARGET OpenCL::OpenCL)
+ message(STATUS "OPENCL_LIBRARIES:${OpenCL_LIBRARIES}")
+ endif()
set(ITKGPUCommon_LIBRARIES ITKGPUCommon)
- set(ITKGPUCommon_SYSTEM_INCLUDE_DIRS ${OPENCL_INCLUDE_DIRS})
- set(ITKGPUCommon_SYSTEM_LIBRARY_DIRS ${OPENCL_LIBRARIES})
+ set(ITKGPUCommon_SYSTEM_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS})
+ set(ITKGPUCommon_SYSTEM_LIBRARY_DIRS ${OpenCL_LIBRARIES})
endif()
if(NOT ITK_SOURCE_DIR)
diff --git a/Modules/Core/GPUCommon/src/CMakeLists.txt b/Modules/Core/GPUCommon/src/CMakeLists.txt
index 0b39f2a9a..160f7a752 100644
--- a/Modules/Core/GPUCommon/src/CMakeLists.txt
+++ b/Modules/Core/GPUCommon/src/CMakeLists.txt
@@ -14,5 +14,5 @@ if (ITK_USE_GPU)
write_gpu_kernels("${ITKGPUCommon_Kernels}" ITKGPUCommon_SRCS)
itk_module_add_library(ITKGPUCommon ${ITKGPUCommon_SRCS})
- target_link_libraries(ITKGPUCommon LINK_PUBLIC ${OPENCL_LIBRARIES})
+ target_link_libraries(ITKGPUCommon LINK_PUBLIC ${OpenCL_LIBRARIES})
endif()
diff --git a/Modules/Core/GPUFiniteDifference/CMakeLists.txt b/Modules/Core/GPUFiniteDifference/CMakeLists.txt
index c1bfde450..a642d9230 100644
--- a/Modules/Core/GPUFiniteDifference/CMakeLists.txt
+++ b/Modules/Core/GPUFiniteDifference/CMakeLists.txt
@@ -9,8 +9,8 @@ if(NOT ITK_SOURCE_DIR)
endif()
if (ITK_USE_GPU)
- set(ITKGPUFiniteDifference_SYSTEM_INCLUDE_DIRS ${OPENCL_INCLUDE_DIRS})
- set(ITKGPUFiniteDifference_SYSTEM_LIBRARY_DIRS ${OPENCL_LIBRARIES})
+ set(ITKGPUFiniteDifference_SYSTEM_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS})
+ set(ITKGPUFiniteDifference_SYSTEM_LIBRARY_DIRS ${OpenCL_LIBRARIES})
set(ITKGPUFiniteDifference_LIBRARIES ITKGPUFiniteDifference)
endif()
diff --git a/Modules/Core/GPUFiniteDifference/src/CMakeLists.txt b/Modules/Core/GPUFiniteDifference/src/CMakeLists.txt
index 8425cc025..8335c69a0 100644
--- a/Modules/Core/GPUFiniteDifference/src/CMakeLists.txt
+++ b/Modules/Core/GPUFiniteDifference/src/CMakeLists.txt
@@ -9,5 +9,5 @@ if (ITK_USE_GPU)
write_gpu_kernels("${ITKGPUFiniteDifference_Kernels}" ITKGPUFiniteDifference_SRCS)
itk_module_add_library(ITKGPUFiniteDifference ${ITKGPUFiniteDifference_SRCS})
- target_link_libraries(ITKGPUFiniteDifference LINK_PUBLIC ${OPENCL_LIBRARIES})
+ target_link_libraries(ITKGPUFiniteDifference LINK_PUBLIC ${OpenCL_LIBRARIES})
endif()
diff --git a/Modules/Filtering/GPUAnisotropicSmoothing/CMakeLists.txt b/Modules/Filtering/GPUAnisotropicSmoothing/CMakeLists.txt
index f36fd887d..310d983fa 100644
--- a/Modules/Filtering/GPUAnisotropicSmoothing/CMakeLists.txt
+++ b/Modules/Filtering/GPUAnisotropicSmoothing/CMakeLists.txt
@@ -10,8 +10,8 @@ endif()
if (ITK_USE_GPU)
set(ITKGPUAnisotropicSmoothing_LIBRARIES ITKGPUAnisotropicSmoothing)
- set(ITKGPUAnisotropicSmoothing_SYSTEM_INCLUDE_DIRS ${OPENCL_INCLUDE_DIRS})
- set(ITKGPUAnisotropicSmoothing_SYSTEM_LIBRARY_DIRS ${OPENCL_LIBRARIES})
+ set(ITKGPUAnisotropicSmoothing_SYSTEM_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS})
+ set(ITKGPUAnisotropicSmoothing_SYSTEM_LIBRARY_DIRS ${OpenCL_LIBRARIES})
endif()
if(NOT ITK_SOURCE_DIR)
diff --git a/Modules/Filtering/GPUImageFilterBase/CMakeLists.txt b/Modules/Filtering/GPUImageFilterBase/CMakeLists.txt
index 078905521..67fd7b832 100644
--- a/Modules/Filtering/GPUImageFilterBase/CMakeLists.txt
+++ b/Modules/Filtering/GPUImageFilterBase/CMakeLists.txt
@@ -10,8 +10,8 @@ endif()
if (ITK_USE_GPU)
set(ITKGPUImageFilterBase_LIBRARIES ITKGPUImageFilterBase)
- set(ITKGPUImageFilterBase_SYSTEM_INCLUDE_DIRS ${OPENCL_INCLUDE_DIRS})
- set(ITKGPUImageFilterBase_SYSTEM_LIBRARY_DIRS ${OPENCL_LIBRARIES})
+ set(ITKGPUImageFilterBase_SYSTEM_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS})
+ set(ITKGPUImageFilterBase_SYSTEM_LIBRARY_DIRS ${OpenCL_LIBRARIES})
endif()
if(NOT ITK_SOURCE_DIR)
diff --git a/Modules/Filtering/GPUImageFilterBase/src/CMakeLists.txt b/Modules/Filtering/GPUImageFilterBase/src/CMakeLists.txt
index 251493f5e..6d33fa964 100644
--- a/Modules/Filtering/GPUImageFilterBase/src/CMakeLists.txt
+++ b/Modules/Filtering/GPUImageFilterBase/src/CMakeLists.txt
@@ -10,5 +10,5 @@ if (ITK_USE_GPU)
write_gpu_kernels("${ITKGPUImageFilterBase_Kernels}" ITKGPUImageFilterBase_SRCS)
itk_module_add_library(ITKGPUImageFilterBase ${ITKGPUImageFilterBase_SRCS})
- target_link_libraries(ITKGPUImageFilterBase LINK_PUBLIC ${OPENCL_LIBRARIES})
+ target_link_libraries(ITKGPUImageFilterBase LINK_PUBLIC ${OpenCL_LIBRARIES})
endif()
diff --git a/Modules/Filtering/GPUSmoothing/CMakeLists.txt b/Modules/Filtering/GPUSmoothing/CMakeLists.txt
index 9bac40921..2ed493d40 100644
--- a/Modules/Filtering/GPUSmoothing/CMakeLists.txt
+++ b/Modules/Filtering/GPUSmoothing/CMakeLists.txt
@@ -10,8 +10,8 @@ endif()
if (ITK_USE_GPU)
set(ITKGPUSmoothing_LIBRARIES ITKGPUSmoothing)
- set(ITKGPUSmoothing_SYSTEM_INCLUDE_DIRS ${OPENCL_INCLUDE_DIRS})
- set(ITKGPUSmoothing_SYSTEM_LIBRARY_DIRS ${OPENCL_LIBRARIES})
+ set(ITKGPUSmoothing_SYSTEM_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS})
+ set(ITKGPUSmoothing_SYSTEM_LIBRARY_DIRS ${OpenCL_LIBRARIES})
endif()
if(NOT ITK_SOURCE_DIR)
diff --git a/Modules/Filtering/GPUSmoothing/src/CMakeLists.txt b/Modules/Filtering/GPUSmoothing/src/CMakeLists.txt
index d2120e842..2c6ca4a4a 100644
--- a/Modules/Filtering/GPUSmoothing/src/CMakeLists.txt
+++ b/Modules/Filtering/GPUSmoothing/src/CMakeLists.txt
@@ -9,5 +9,5 @@ if (ITK_USE_GPU)
write_gpu_kernels("${ITKGPUSmoothing_Kernels}" ITKGPUSmoothing_SRCS)
itk_module_add_library(ITKGPUSmoothing ${ITKGPUSmoothing_SRCS})
- target_link_libraries(ITKGPUSmoothing LINK_PUBLIC ${OPENCL_LIBRARIES})
+ target_link_libraries(ITKGPUSmoothing LINK_PUBLIC ${OpenCL_LIBRARIES})
endif()
diff --git a/Modules/Filtering/GPUThresholding/CMakeLists.txt b/Modules/Filtering/GPUThresholding/CMakeLists.txt
index 4390785f5..61786b7a8 100644
--- a/Modules/Filtering/GPUThresholding/CMakeLists.txt
+++ b/Modules/Filtering/GPUThresholding/CMakeLists.txt
@@ -2,8 +2,8 @@ project(ITKGPUThresholding)
if (ITK_USE_GPU)
set(ITKGPUThresholding_LIBRARIES ITKGPUThresholding)
- set(ITKGPUThresholding_SYSTEM_INCLUDE_DIRS ${OPENCL_INCLUDE_DIRS})
- set(ITKGPUThresholding_SYSTEM_LIBRARY_DIRS ${OPENCL_LIBRARIES})
+ set(ITKGPUThresholding_SYSTEM_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS})
+ set(ITKGPUThresholding_SYSTEM_LIBRARY_DIRS ${OpenCL_LIBRARIES})
endif()
itk_module_impl()
diff --git a/Modules/Filtering/GPUThresholding/src/CMakeLists.txt b/Modules/Filtering/GPUThresholding/src/CMakeLists.txt
index 326c86859..c07c80414 100644
--- a/Modules/Filtering/GPUThresholding/src/CMakeLists.txt
+++ b/Modules/Filtering/GPUThresholding/src/CMakeLists.txt
@@ -9,5 +9,5 @@ if (ITK_USE_GPU)
write_gpu_kernels("${ITKGPUThresholding_Kernels}" ITKGPUThresholding_SRCS)
itk_module_add_library(ITKGPUThresholding ${ITKGPUThresholding_SRCS})
- target_link_libraries(ITKGPUThresholding LINK_PUBLIC ${OPENCL_LIBRARIES})
+ target_link_libraries(ITKGPUThresholding LINK_PUBLIC ${OpenCL_LIBRARIES})
endif()
diff --git a/Modules/Registration/GPUPDEDeformable/CMakeLists.txt b/Modules/Registration/GPUPDEDeformable/CMakeLists.txt
index c8d70a423..097c974c5 100644
--- a/Modules/Registration/GPUPDEDeformable/CMakeLists.txt
+++ b/Modules/Registration/GPUPDEDeformable/CMakeLists.txt
@@ -2,8 +2,8 @@ project(ITKGPUPDEDeformableRegistration)
if (ITK_USE_GPU)
set(ITKGPUPDEDeformableRegistration_LIBRARIES ITKGPUPDEDeformableRegistration)
- set(ITKGPUPDEDeformableRegistration_SYSTEM_INCLUDE_DIRS ${OPENCL_INCLUDE_DIRS})
- set(ITKGPUPDEDeformableRegistration_SYSTEM_LIBRARY_DIRS ${OPENCL_LIBRARIES})
+ set(ITKGPUPDEDeformableRegistration_SYSTEM_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS})
+ set(ITKGPUPDEDeformableRegistration_SYSTEM_LIBRARY_DIRS ${OpenCL_LIBRARIES})
endif()
itk_module_impl()
diff --git a/Modules/Registration/GPUPDEDeformable/src/CMakeLists.txt b/Modules/Registration/GPUPDEDeformable/src/CMakeLists.txt
index 28b1d194c..1a049bdde 100644
--- a/Modules/Registration/GPUPDEDeformable/src/CMakeLists.txt
+++ b/Modules/Registration/GPUPDEDeformable/src/CMakeLists.txt
@@ -10,5 +10,5 @@ if (ITK_USE_GPU)
write_gpu_kernels("${ITKGPUPDEDeformableRegistration_Kernels}" ITKGPUPDEDeformableRegistration_SRCS)
itk_module_add_library(ITKGPUPDEDeformableRegistration ${ITKGPUPDEDeformableRegistration_SRCS})
- target_link_libraries(ITKGPUPDEDeformableRegistration LINK_PUBLIC ${OPENCL_LIBRARIES})
+ target_link_libraries(ITKGPUPDEDeformableRegistration LINK_PUBLIC ${OpenCL_LIBRARIES})
endif()

548
externals/vcpkg/ports/itk/openjpeg.patch vendored Executable file
View File

@@ -0,0 +1,548 @@
diff --git a/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx b/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx
index 1b1fe9526..0da4aa0c4 100644
--- a/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx
+++ b/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx
@@ -26,9 +26,9 @@
extern "C"
{
-#include "openjpeg.h"
-#include "j2k.h"
-#include "jp2.h"
+#include <openjpeg.h>
+//#include "j2k.h"
+//##include "jp2.h"
}
@@ -62,8 +62,7 @@ public:
OPJ_UINT32 m_TileStartX;
OPJ_UINT32 m_TileStartY;
- OPJ_UINT32 m_NumberOfTilesInX;
- OPJ_UINT32 m_NumberOfTilesInY;
+ OPJ_UINT32 m_NumberOfTiles;
opj_dparameters_t m_DecompressionParameters; /* decompression parameters */
};
@@ -86,8 +85,7 @@ JPEG2000ImageIO::JPEG2000ImageIO()
this->m_Internal->m_TileStartX = 0;
this->m_Internal->m_TileStartY = 0;
- this->m_Internal->m_NumberOfTilesInX = 0;
- this->m_Internal->m_NumberOfTilesInY = 0;
+ this->m_Internal->m_NumberOfTiles = 0;
const char * extensions[] = { ".j2k", ".jp2", ".jpt" };
@@ -139,22 +137,16 @@ JPEG2000ImageIO::ReadImageInformation()
{
itkDebugMacro(<< "ReadImageInformation()");
- FILE * l_file = fopen(this->m_FileName.c_str(), "rb");
-
- /* decompression parameters */
+ /* set decoding parameters to default values */
+ opj_set_default_decoder_parameters(&(this->m_Internal->m_DecompressionParameters));
- if (!l_file)
+ opj_stream_t * cio = opj_stream_create_default_file_stream(this->m_FileName.c_str(), true);
+ if (!cio)
{
itkExceptionMacro("JPEG2000ImageIO failed to open file for reading: " << this->GetFileName() << std::endl
<< "Reason: "
<< itksys::SystemTools::GetLastSystemError());
}
-
- /* set decoding parameters to default values */
- opj_set_default_decoder_parameters(&(this->m_Internal->m_DecompressionParameters));
-
- opj_stream_t * cio = opj_stream_create_default_file_stream(l_file, true);
-
this->m_Internal->m_Dinfo = nullptr; /* handle to a decompressor */
opj_image_t * l_image = nullptr;
@@ -187,14 +179,14 @@ JPEG2000ImageIO::ReadImageInformation()
/* JPEG-2000 codestream */
/* get a decoder handle */
- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_J2K);
+ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_J2K);
if (!this->m_Internal->m_Dinfo)
{
opj_stream_destroy(cio);
- fclose(l_file);
+ // fclose(l_file);
itkExceptionMacro("JPEG2000ImageIO failed to read file: "
<< this->GetFileName() << std::endl
- << "Reason: opj_create_decompress(CODEC_J2K) returns nullptr");
+ << "Reason: opj_create_decompress(OPJ_CODEC_J2K) returns nullptr");
}
break;
}
@@ -202,14 +194,14 @@ JPEG2000ImageIO::ReadImageInformation()
{
/* JPEG 2000 compressed image data */
/* get a decoder handle */
- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JP2);
+ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JP2);
if (!this->m_Internal->m_Dinfo)
{
opj_stream_destroy(cio);
- fclose(l_file);
+ // fclose(l_file);
itkExceptionMacro("JPEG2000ImageIO failed to read file: "
<< this->GetFileName() << std::endl
- << "Reason: opj_create_decompress(CODEC_JP2) returns nullptr");
+ << "Reason: opj_create_decompress(OPJ_CODEC_JP2) returns nullptr");
}
break;
}
@@ -217,20 +209,19 @@ JPEG2000ImageIO::ReadImageInformation()
{
/* JPEG 2000, JPIP */
/* get a decoder handle */
- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JPT);
+ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JPT);
if (!this->m_Internal->m_Dinfo)
{
opj_stream_destroy(cio);
- fclose(l_file);
+ // fclose(l_file);
itkExceptionMacro("JPEG2000ImageIO failed to read file: "
<< this->GetFileName() << std::endl
- << "Reason: opj_create_decompress(CODEC_JPT) returns nullptr");
+ << "Reason: opj_create_decompress(OPJ_CODEC_JPT) returns nullptr");
}
break;
}
default:
opj_stream_destroy(cio);
- fclose(l_file);
itkExceptionMacro("JPEG2000ImageIO failed to read file: "
<< this->GetFileName() << std::endl
<< "Reason: "
@@ -247,27 +238,11 @@ JPEG2000ImageIO::ReadImageInformation()
<< "Reason: opj_setup_decoder returns false");
}
- // Image parameters - first tile
- OPJ_INT32 l_tile_x0;
- OPJ_INT32 l_tile_y0;
- // Image parameters - tile width, height and number of tiles
- OPJ_UINT32 l_tile_width;
- OPJ_UINT32 l_tile_height;
- OPJ_UINT32 l_nb_tiles_x;
- OPJ_UINT32 l_nb_tiles_y;
itkDebugMacro(<< "Trying to read header now...");
- bResult = opj_read_header(this->m_Internal->m_Dinfo,
- &l_image,
- &l_tile_x0,
- &l_tile_y0,
- &l_tile_width,
- &l_tile_height,
- &l_nb_tiles_x,
- &l_nb_tiles_y,
- cio);
+ bResult = opj_read_header(cio, this->m_Internal->m_Dinfo, &l_image);
if (!bResult)
{
@@ -283,14 +258,22 @@ JPEG2000ImageIO::ReadImageInformation()
<< "Reason: Error whle reading image header");
}
+ // Image parameters - first tile
+ OPJ_INT32 l_tile_x0=l_image->x0;
+ OPJ_INT32 l_tile_y0=l_image->y0;
+
+ // Image parameters - tile width, height and number of tiles
+ OPJ_UINT32 l_tile_width=l_image->x1;
+ OPJ_UINT32 l_tile_height=l_image->y1;
+ OPJ_UINT32 l_nb_tiles=l_image->numcomps;
+
this->m_Internal->m_TileStartX = l_tile_x0;
this->m_Internal->m_TileStartY = l_tile_y0;
this->m_Internal->m_TileWidth = l_tile_width;
this->m_Internal->m_TileHeight = l_tile_height;
- this->m_Internal->m_NumberOfTilesInX = l_nb_tiles_x;
- this->m_Internal->m_NumberOfTilesInY = l_nb_tiles_y;
+ this->m_Internal->m_NumberOfTiles = l_nb_tiles;
itkDebugMacro(<< "Number of Components = " << l_image->numcomps);
@@ -319,7 +302,7 @@ JPEG2000ImageIO::ReadImageInformation()
this->SetPixelType(IOPixelEnum::SCALAR);
break;
case 3:
- if (l_image->color_space != CLRSPC_SRGB)
+ if (l_image->color_space != OPJ_CLRSPC_SRGB)
{
itkWarningMacro(<< "file does not specify color space, assuming sRGB");
}
@@ -335,8 +318,7 @@ JPEG2000ImageIO::ReadImageInformation()
itkDebugMacro(<< "Tile Start Y = " << this->m_Internal->m_TileStartY);
itkDebugMacro(<< "Tile Width = " << this->m_Internal->m_TileWidth);
itkDebugMacro(<< "Tile Height = " << this->m_Internal->m_TileHeight);
- itkDebugMacro(<< "Number of Tiles X = " << this->m_Internal->m_NumberOfTilesInX);
- itkDebugMacro(<< "Number of Tiles Y = " << this->m_Internal->m_NumberOfTilesInY);
+ itkDebugMacro(<< "Number of Tiles = " << this->m_Internal->m_NumberOfTiles);
itkDebugMacro(<< "image->x1 = " << l_image->x1);
itkDebugMacro(<< "image->y1 = " << l_image->y1);
@@ -349,7 +331,6 @@ JPEG2000ImageIO::ReadImageInformation()
/* close the byte stream */
opj_stream_destroy(cio);
- fclose(l_file);
if (this->m_Internal->m_Dinfo)
{
@@ -368,16 +349,7 @@ JPEG2000ImageIO::Read(void * buffer)
{
itkDebugMacro(<< "JPEG2000ImageIO::Read() Begin");
- FILE * l_file = fopen(this->m_FileName.c_str(), "rb");
-
- if (!l_file)
- {
- itkExceptionMacro("JPEG2000ImageIO failed to open file for reading: " << this->GetFileName() << std::endl
- << "Reason: "
- << itksys::SystemTools::GetLastSystemError());
- }
-
- opj_stream_t * l_stream = opj_stream_create_default_file_stream(l_file, true);
+ opj_stream_t * l_stream = opj_stream_create_default_file_stream(this->m_FileName.c_str(), true);
if (!l_stream)
{
itkExceptionMacro("JPEG2000ImageIO failed to read file: "
@@ -397,12 +369,13 @@ JPEG2000ImageIO::Read(void * buffer)
{
/* JPEG-2000 codestream */
/* get a decoder handle */
- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_J2K);
+ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_J2K);
if (!this->m_Internal->m_Dinfo)
{
+ opj_stream_destroy(l_stream);
itkExceptionMacro("JPEG2000ImageIO failed to read file: "
<< this->GetFileName() << std::endl
- << "Reason: opj_create_decompress(CODEC_J2K) returns nullptr");
+ << "Reason: opj_create_decompress(OPJ_CODEC_J2K) returns nullptr");
}
break;
}
@@ -410,12 +383,13 @@ JPEG2000ImageIO::Read(void * buffer)
{
/* JPEG 2000 compressed image data */
/* get a decoder handle */
- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JP2);
+ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JP2);
if (!this->m_Internal->m_Dinfo)
{
+ opj_stream_destroy(l_stream);
itkExceptionMacro("JPEG2000ImageIO failed to read file: "
<< this->GetFileName() << std::endl
- << "Reason: opj_create_decompress(CODEC_JP2) returns nullptr");
+ << "Reason: opj_create_decompress(OPJ_CODEC_JP2) returns nullptr");
}
break;
}
@@ -423,17 +397,18 @@ JPEG2000ImageIO::Read(void * buffer)
{
/* JPEG 2000, JPIP */
/* get a decoder handle */
- this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JPT);
+ this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JPT);
if (!this->m_Internal->m_Dinfo)
{
+ opj_stream_destroy(l_stream);
itkExceptionMacro("JPEG2000ImageIO failed to read file: "
<< this->GetFileName() << std::endl
- << "Reason: opj_create_decompress(CODEC_JPT) returns nullptr");
+ << "Reason: opj_create_decompress(OPJ_CODEC_JPT) returns nullptr");
}
break;
}
default:
- fclose(l_file);
+ opj_stream_destroy(l_stream);
itkExceptionMacro("JPEG2000ImageIO failed to read file: "
<< this->GetFileName() << std::endl
<< "Reason: "
@@ -448,29 +423,13 @@ JPEG2000ImageIO::Read(void * buffer)
<< "Reason: opj_setup_decoder returns false");
}
- OPJ_INT32 l_tile_x0, l_tile_y0;
-
- OPJ_UINT32 l_tile_width;
- OPJ_UINT32 l_tile_height;
- OPJ_UINT32 l_nb_tiles_x;
- OPJ_UINT32 l_nb_tiles_y;
-
- bool bResult = opj_read_header(this->m_Internal->m_Dinfo,
- &l_image,
- &l_tile_x0,
- &l_tile_y0,
- &l_tile_width,
- &l_tile_height,
- &l_nb_tiles_x,
- &l_nb_tiles_y,
- l_stream);
+ bool bResult = opj_read_header(l_stream, this->m_Internal->m_Dinfo,&l_image);
if (!bResult)
{
opj_destroy_codec(this->m_Internal->m_Dinfo);
this->m_Internal->m_Dinfo = nullptr;
opj_stream_destroy(l_stream);
- fclose(l_file);
itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
<< "Reason: opj_read_header returns false");
}
@@ -499,7 +458,7 @@ JPEG2000ImageIO::Read(void * buffer)
itkDebugMacro(<< "p_end_x = " << p_end_x);
itkDebugMacro(<< "p_end_y = " << p_end_y);
- bResult = opj_set_decode_area(this->m_Internal->m_Dinfo, p_start_x, p_start_y, p_end_x, p_end_y);
+ bResult = opj_set_decode_area(this->m_Internal->m_Dinfo, l_image, p_start_x, p_start_y, p_end_x, p_end_y);
itkDebugMacro(<< "opj_set_decode_area() after");
@@ -508,7 +467,6 @@ JPEG2000ImageIO::Read(void * buffer)
opj_destroy_codec(this->m_Internal->m_Dinfo);
this->m_Internal->m_Dinfo = nullptr;
opj_stream_destroy(l_stream);
- fclose(l_file);
itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
<< "Reason: opj_set_decode_area returns false");
}
@@ -525,13 +483,13 @@ JPEG2000ImageIO::Read(void * buffer)
OPJ_UINT32 l_max_data_size = 1000;
- bool l_go_on = true;
+ int l_go_on = true; // should be OBJ_BOOL
auto * l_data = (OPJ_BYTE *)malloc(1000);
while (l_go_on)
{
- bool tileHeaderRead = opj_read_tile_header(this->m_Internal->m_Dinfo,
+ bool tileHeaderRead = opj_read_tile_header(this->m_Internal->m_Dinfo, l_stream,
&l_tile_index,
&l_data_size,
&l_current_tile_x0,
@@ -539,14 +497,12 @@ JPEG2000ImageIO::Read(void * buffer)
&l_current_tile_x1,
&l_current_tile_y1,
&l_nb_comps,
- &l_go_on,
- l_stream);
+ &l_go_on);
if (!tileHeaderRead)
{
free(l_data);
opj_stream_destroy(l_stream);
- fclose(l_file);
opj_destroy_codec(this->m_Internal->m_Dinfo);
opj_image_destroy(l_image);
itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
@@ -571,7 +527,6 @@ JPEG2000ImageIO::Read(void * buffer)
if (!l_data)
{
opj_stream_destroy(l_stream);
- fclose(l_file);
opj_destroy_codec(this->m_Internal->m_Dinfo);
opj_image_destroy(l_image);
itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
@@ -590,7 +545,6 @@ JPEG2000ImageIO::Read(void * buffer)
{
free(l_data);
opj_stream_destroy(l_stream);
- fclose(l_file);
opj_destroy_codec(this->m_Internal->m_Dinfo);
opj_image_destroy(l_image);
itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
@@ -654,7 +608,6 @@ JPEG2000ImageIO::Read(void * buffer)
{
free(l_data);
opj_stream_destroy(l_stream);
- fclose(l_file);
opj_destroy_codec(this->m_Internal->m_Dinfo);
opj_image_destroy(l_image);
itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
@@ -666,14 +619,12 @@ JPEG2000ImageIO::Read(void * buffer)
opj_destroy_codec(this->m_Internal->m_Dinfo);
this->m_Internal->m_Dinfo = nullptr;
opj_stream_destroy(l_stream);
- fclose(l_file);
itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl
<< "Reason: error whle reading image");
}
/* close the byte stream */
opj_stream_destroy(l_stream);
- fclose(l_file);
if (this->m_Internal->m_Dinfo)
{
@@ -840,13 +791,13 @@ JPEG2000ImageIO ::Write(const void * buffer)
parameters.numresolution = numberOfResolutions;
- OPJ_COLOR_SPACE color_space = CLRSPC_GRAY;
+ OPJ_COLOR_SPACE color_space = OPJ_CLRSPC_GRAY;
opj_image_cmptparm_t cmptparms[3];
if (this->GetNumberOfComponents() == 3)
{
- color_space = (this->GetPixelType() == IOPixelEnum::RGB) ? CLRSPC_SRGB : CLRSPC_UNSPECIFIED;
+ color_space = (this->GetPixelType() == IOPixelEnum::RGB) ? OPJ_CLRSPC_SRGB : OPJ_CLRSPC_UNSPECIFIED;
/* initialize image components */
memset(&cmptparms[0], 0, 3 * sizeof(opj_image_cmptparm_t));
@@ -864,7 +815,7 @@ JPEG2000ImageIO ::Write(const void * buffer)
if (this->GetNumberOfComponents() == 1)
{
- color_space = CLRSPC_GRAY;
+ color_space = OPJ_CLRSPC_GRAY;
/* initialize image components */
memset(&cmptparms[0], 0, sizeof(opj_image_cmptparm_t));
@@ -940,32 +891,32 @@ JPEG2000ImageIO ::Write(const void * buffer)
opj_codec_t * cinfo = nullptr;
if (extension == ".j2k")
{
- cinfo = opj_create_compress(CODEC_J2K);
+ cinfo = opj_create_compress(OPJ_CODEC_J2K);
if (!cinfo)
{
itkExceptionMacro("JPEG2000ImageIO failed to write file: "
<< this->GetFileName() << std::endl
- << "Reason: opj_create_compress(CODEC_J2K) returns nullptr");
+ << "Reason: opj_create_compress(OPJ_CODEC_J2K) returns nullptr");
}
}
else if (extension == ".jp2")
{
- cinfo = opj_create_compress(CODEC_JP2);
+ cinfo = opj_create_compress(OPJ_CODEC_JP2);
if (!cinfo)
{
itkExceptionMacro("JPEG2000ImageIO failed to write file: "
<< this->GetFileName() << std::endl
- << "Reason: opj_create_compress(CODEC_JP2) returns nullptr");
+ << "Reason: opj_create_compress(OPJ_CODEC_JP2) returns nullptr");
}
}
else if (extension == ".jpt")
{
- cinfo = opj_create_compress(CODEC_JPT);
+ cinfo = opj_create_compress(OPJ_CODEC_JPT);
if (!cinfo)
{
itkExceptionMacro("JPEG2000ImageIO failed to write file: "
<< this->GetFileName() << std::endl
- << "Reason: opj_create_compress(CODEC_JPT) returns nullptr");
+ << "Reason: opj_create_compress(OPJ_CODEC_JPT) returns nullptr");
}
}
else
@@ -989,17 +940,9 @@ JPEG2000ImageIO ::Write(const void * buffer)
<< "Reason: opj_setup_encoder returns false");
}
- FILE * l_file = fopen(parameters.outfile, "wb");
- if (!l_file)
- {
- itkExceptionMacro("JPEG2000ImageIO failed to open file for writing: " << this->GetFileName() << std::endl
- << "Reason: "
- << itksys::SystemTools::GetLastSystemError());
- }
-
/* open a byte stream for writing */
/* allocate memory for all tiles */
- opj_stream_t * cio = opj_stream_create_default_file_stream(l_file, false);
+ opj_stream_t * cio = opj_stream_create_default_file_stream(parameters.outfile, false);
if (!cio)
{
itkExceptionMacro("JPEG2000ImageIO failed to write file: "
@@ -1017,8 +960,7 @@ JPEG2000ImageIO ::Write(const void * buffer)
if (!bSuccess)
{
opj_stream_destroy(cio);
- fclose(l_file);
- itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
+ itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
<< "Reason: opj_start_compress returns false");
}
@@ -1026,7 +968,6 @@ JPEG2000ImageIO ::Write(const void * buffer)
if (!bSuccess)
{
opj_stream_destroy(cio);
- fclose(l_file);
itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
<< "Reason: opj_encode returns false");
}
@@ -1035,14 +976,12 @@ JPEG2000ImageIO ::Write(const void * buffer)
if (!bSuccess)
{
opj_stream_destroy(cio);
- fclose(l_file);
itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl
<< "Reason: opj_end_compress returns false");
}
/* close and free the byte stream */
opj_stream_destroy(cio);
- fclose(l_file);
/* free remaining compression structures */
opj_destroy_codec(cinfo);
diff --git a/Modules/ThirdParty/OpenJPEG/CMakeLists.txt b/Modules/ThirdParty/OpenJPEG/CMakeLists.txt
index 103eaa9dd..eb8989135 100644
--- a/Modules/ThirdParty/OpenJPEG/CMakeLists.txt
+++ b/Modules/ThirdParty/OpenJPEG/CMakeLists.txt
@@ -1,12 +1,25 @@
project(ITKOpenJPEG)
set(ITKOpenJPEG_THIRD_PARTY 1)
-set(ITKOpenJPEG_INCLUDE_DIRS
- ${ITKOpenJPEG_BINARY_DIR}/src/openjpeg
- ${ITKOpenJPEG_SOURCE_DIR}/src/openjpeg
- )
-set(ITKOpenJPEG_LIBRARIES itkopenjpeg)
-set(ITK_LIBRARY_PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS FALSE)
+if(ITK_USE_SYSTEM_OpenJPEG)
+ find_package(OpenJPEG REQUIRED)
+ if(TARGET openjp2)
+ set(ITKOpenJPEG_LIBRARIES ${OPENJPEG_LIBRARIES})
+ else()
+ message(FATAL_ERROR "OpenJPEG target openjp2 missing!")
+ endif()
+ set(ITKOpenJPEG_INCLUDE_DIRS
+ ${ITKOpenJPEG_BINARY_DIR}/src/openjpeg
+ ${ITKOpenJPEG_SOURCE_DIR}/src/openjpeg
+ )
+else()
+ set(ITKOpenJPEG_INCLUDE_DIRS
+ ${ITKOpenJPEG_BINARY_DIR}/src/openjpeg
+ ${ITKOpenJPEG_SOURCE_DIR}/src/openjpeg
+ )
+ set(ITKOpenJPEG_LIBRARIES itkopenjpeg)
+ set(ITK_LIBRARY_PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS FALSE)
+endif()
itk_module_impl()

58
externals/vcpkg/ports/itk/openjpeg2.patch vendored Executable file
View File

@@ -0,0 +1,58 @@
diff --git a/Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmopenjpeg/CMakeLists.txt b/Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmopenjpeg/CMakeLists.txt
index 565cc338b..c061f0721 100644
--- a/Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmopenjpeg/CMakeLists.txt
+++ b/Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmopenjpeg/CMakeLists.txt
@@ -194,7 +194,7 @@ 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})
+set(MANGLE_PREFIX)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in
${CMAKE_CURRENT_BINARY_DIR}/openjpeg_mangle.h
@ONLY)
diff --git a/Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmopenjpeg/src/lib/openjp2/CMakeLists.txt b/Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmopenjpeg/src/lib/openjp2/CMakeLists.txt
index c4adb91a2..89b731d88 100644
--- a/Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmopenjpeg/src/lib/openjp2/CMakeLists.txt
+++ b/Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmopenjpeg/src/lib/openjp2/CMakeLists.txt
@@ -3,7 +3,7 @@ include_regular_expression("^.*$")
# 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})
+set(MANGLE_PREFIX)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in
${CMAKE_CURRENT_BINARY_DIR}/openjpeg_mangle.h
@ONLY)
diff --git a/Modules/ThirdParty/OpenJPEG/CMakeLists.txt b/Modules/ThirdParty/OpenJPEG/CMakeLists.txt
index 3811e52f4..a41e9264e 100644
--- a/Modules/ThirdParty/OpenJPEG/CMakeLists.txt
+++ b/Modules/ThirdParty/OpenJPEG/CMakeLists.txt
@@ -8,10 +8,10 @@ if(ITK_USE_SYSTEM_OpenJPEG)
else()
message(FATAL_ERROR "OpenJPEG target openjp2 missing!")
endif()
- set(ITKOpenJPEG_INCLUDE_DIRS
- ${ITKOpenJPEG_BINARY_DIR}/src/openjpeg
- ${ITKOpenJPEG_SOURCE_DIR}/src/openjpeg
- )
+ # set(ITKOpenJPEG_INCLUDE_DIRS
+ # ${ITKOpenJPEG_BINARY_DIR}/src/openjpeg
+ # ${ITKOpenJPEG_SOURCE_DIR}/src/openjpeg
+ # )
else()
set(ITKOpenJPEG_INCLUDE_DIRS
${ITKOpenJPEG_BINARY_DIR}/src/openjpeg
diff --git a/Modules/ThirdParty/OpenJPEG/src/openjpeg/CMakeLists.txt b/Modules/ThirdParty/OpenJPEG/src/openjpeg/CMakeLists.txt
index e62e43eda..35dc89976 100644
--- a/Modules/ThirdParty/OpenJPEG/src/openjpeg/CMakeLists.txt
+++ b/Modules/ThirdParty/OpenJPEG/src/openjpeg/CMakeLists.txt
@@ -68,7 +68,7 @@ CONFIGURE_FILE(${ITK3P_OpenJPEG_SOURCE_DIR}/opj_configure.h.in
# configure name mangling to allow multiple libraries to coexist
# peacefully
if(EXISTS ${ITK3P_OpenJPEG_SOURCE_DIR}/openjpeg_mangle.h.in)
-set(MANGLE_PREFIX itk)
+#set(MANGLE_PREFIX itk)
configure_file(${ITK3P_OpenJPEG_SOURCE_DIR}/openjpeg_mangle.h.in
${ITK3P_OpenJPEG_BINARY_DIR}/openjpeg_mangle.h
@ONLY)

206
externals/vcpkg/ports/itk/portfile.cmake vendored Executable file
View File

@@ -0,0 +1,206 @@
vcpkg_buildpath_length_warning(37)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO InsightSoftwareConsortium/ITK
REF 95800fd4d4b08678a6c0ebb63eb242893025b660 #5.2.1
SHA512 fe703bc6ed681cb9983d7d6e21c8ffa7650337e470c09a7241de58a463c23e315516b1a81a18c14f682706056a0ec66932b63d2e24945bdcea03169bc1122bb2
HEAD_REF master
PATCHES
double-conversion.patch
openjpeg.patch
openjpeg2.patch
var_libraries.patch
wrapping.patch
opencl.patch
use-the-lrintf-intrinsic.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
"vtk" Module_ITKVtkGlue
"cuda" Module_ITKCudaCommon # Requires RTK?
#"cuda" CUDA_HAVE_GPU # Automatically set by FindCUDA?
"cufftw" ITK_USE_CUFFTW
"opencl" ITK_USE_GPU
"tbb" Module_ITKTBB
"rtk" Module_RTK
"tools" RTK_BUILD_APPLICATIONS
"opencv" Module_ITKVideoBridgeOpenCV
# There are a lot of more (remote) modules and options in ITK
# feel free to add those as a feature
)
if("cufftw" IN_LIST FEATURES)
# Alternativly set CUFFT_LIB and CUFFTW_LIB
if(WIN32)
file(TO_CMAKE_PATH "$ENV{CUDA_PATH}" CUDA_PATH)
set(CUDA_LIB_PATH "${CUDA_PATH}")
if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
string(APPEND CUDA_LIB_PATH "/lib/x64")
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
string(APPEND CUDA_LIB_PATH "/lib/Win32")
message(FATAL_ERROR "CUFFTW is not supported on architecture ${VCPKG_TARGET_ARCHITECTURE}")
else()
message(FATAL_ERROR "Architecture ${VCPKG_TARGET_ARCHITECTURE} not supported !")
endif()
list(APPEND ADDITIONAL_OPTIONS
"-DFFTW_LIB_SEARCHPATH=${CUDA_LIB_PATH}"
"-DFFTW_INCLUDE_PATH=${CUDA_PATH}/include"
"-DCUFFTW_INCLUDE_PATH=${CUDA_PATH}/include"
)
endif()
endif()
if("rtk" IN_LIST FEATURES)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
message(FATAL_ERROR "RTK is not supported on architecture ${VCPKG_TARGET_ARCHITECTURE}")
endif()
SET(BUILD_RTK ON)
list(APPEND ADDITIONAL_OPTIONS
"-DModule_RTK_GIT_TAG=8099212f715231d093f7d6a1114daecf45d871ed" # RTK latest versions (11.05.2020)
)
if("cuda" IN_LIST FEATURES)
list(APPEND ADDITIONAL_OPTIONS "-DRTK_USE_CUDA=ON")
#RTK + CUDA + PYTHON + dynamic library linkage will fail and needs upstream fixes.
endif()
endif()
file(REMOVE_RECURSE "${SOURCE_PATH}/Modules/Remote/RTK")
if("opencl" IN_LIST FEATURES)
list(APPEND ADDITIONAL_OPTIONS # Wrapping options required by OpenCL if build with Python Wrappers
-DITK_WRAP_unsigned_long_long=ON
-DITK_WRAP_signed_long_long=ON
)
endif()
if("tools" IN_LIST FEATURES)
if("rtk" IN_LIST FEATURES)
list(APPEND TOOL_NAMES rtkadmmtotalvariation rtkadmmwavelets rtkamsterdamshroud rtkbackprojections rtkbioscangeometry rtkcheckimagequality rtkconjugategradient
rtkdigisensgeometry rtkdrawgeometricphantom rtkdrawshepploganphantom rtkdualenergysimplexdecomposition rtkelektasynergygeometry rtkextractphasesignal
rtkextractshroudsignal rtkfdk rtkfdktwodweights rtkfieldofview rtkforwardprojections rtkfourdconjugategradient rtkfourdfdk rtkfourdrooster rtkfourdsart
rtkgaincorrection rtki0estimation rtkimagxgeometry rtkiterativefdk rtklagcorrection rtklastdimensionl0gradientdenoising rtklut rtkmaskcollimation rtkmcrooster
rtkmotioncompensatedfourdconjugategradient rtkorageometry rtkosem rtkoverlayphaseandshroud rtkparkershortscanweighting rtkprojectgeometricphantom
rtkprojectionmatrix rtkprojections rtkprojectshepploganphantom rtkramp rtkrayboxintersection rtkrayquadricintersection rtkregularizedconjugategradient
rtksart rtkscatterglarecorrection rtksimulatedgeometry rtkspectraldenoiseprojections rtkspectralforwardmodel rtkspectralonestep rtkspectralrooster rtkspectralsimplexdecomposition
rtksubselect rtktotalnuclearvariationdenoising rtktotalvariationdenoising rtktutorialapplication rtkvarianobigeometry rtkvarianprobeamgeometry rtkvectorconjugategradient
rtkwangdisplaceddetectorweighting rtkwarpedbackprojectsequence rtkwarpedforwardprojectsequence rtkwaveletsdenoising rtkxradgeometry)
endif()
endif()
if("vtk" IN_LIST FEATURES)
vcpkg_find_acquire_program(PYTHON3)
list(APPEND ADDITIONAL_OPTIONS
"-DPython3_EXECUTABLE:PATH=${PYTHON3}" # Required by mvtk if vtk[python] was build
)
endif()
if("python" IN_LIST FEATURES)
message(STATUS "${PORT} builds a long time (>1h) with python wrappers enabled!")
vcpkg_find_acquire_program(PYTHON3)
vcpkg_find_acquire_program(SWIG) # Swig is only required for wrapping!
get_filename_component(SWIG_DIR "${SWIG}" DIRECTORY)
list(APPEND ADDITIONAL_OPTIONS
-DITK_WRAP_PYTHON=ON
-DPython3_FIND_REGISTRY=NEVER
"-DPython3_EXECUTABLE:PATH=${PYTHON3}" # Required by more than one feature
"-DSWIG_EXECUTABLE=${SWIG}"
"-DSWIG_DIR=${SWIG_DIR}"
)
#ITK_PYTHON_SITE_PACKAGES_SUFFIX should be set to the install dir of the site-packages within vcpkg
endif()
if("opencv" IN_LIST FEATURES)
message(STATUS "${PORT} includes the ITKVideoBridgeOpenCV")
list(APPEND ADDITIONAL_OPTIONS
-DModule_ITKVideoBridgeOpenCV:BOOL=ON
)
endif()
set(USE_64BITS_IDS OFF)
if (VCPKG_TARGET_ARCHITECTURE STREQUAL x64 OR VCPKG_TARGET_ARCHITECTURE STREQUAL arm64)
set(USE_64BITS_IDS ON)
endif()
file(REMOVE_RECURSE "${SOURCE_PATH}/CMake/FindOpenCL.cmake")
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
DISABLE_PARALLEL_CONFIGURE
OPTIONS
-DBUILD_TESTING=OFF
-DBUILD_EXAMPLES=OFF
-DBUILD_PKGCONFIG_FILES=OFF
-DITK_DOXYGEN_HTML=OFF
-DDO_NOT_INSTALL_ITK_TEST_DRIVER=ON
-DITK_SKIP_PATH_LENGTH_CHECKS=ON
-DITK_INSTALL_DATA_DIR=share/itk/data
-DITK_INSTALL_DOC_DIR=share/itk/doc
-DITK_INSTALL_PACKAGE_DIR=share/itk
-DITK_USE_64BITS_IDS=${USE_64BITS_IDS}
-DITK_USE_CONCEPT_CHECKING=ON
#-DITK_USE_SYSTEM_LIBRARIES=ON # enables USE_SYSTEM for all third party libraries, some of which do not have vcpkg ports such as CastXML, SWIG, MINC etc
-DITK_USE_SYSTEM_DOUBLECONVERSION=ON
-DITK_USE_SYSTEM_EXPAT=ON
-DITK_USE_SYSTEM_JPEG=ON
-DITK_USE_SYSTEM_PNG=ON
-DITK_USE_SYSTEM_TIFF=ON
-DITK_USE_SYSTEM_ZLIB=ON
-DITK_USE_SYSTEM_EIGEN=ON
-DITK_USE_SYSTEM_FFTW=ON
-DITK_USE_SYSTEM_HDF5=ON # HDF5 was problematic in the past and still is. ITK still has not figured out how to do it correctly!
-DITK_USE_SYSTEM_GDCM=ON
-DITK_USE_SYSTEM_OpenJPEG=ON # Added by VCPKG
-DITK_USE_SYSTEM_DCMTK=ON
-DDCMTK_USE_ICU=ON
-DITK_USE_SYSTEM_ICU=ON
#-DITK_USE_SYSTEM_VXL=ON
#-DITK_USE_SYSTEM_CASTXML=ON # needs to be added to vcpkg_find_acquire_program https://data.kitware.com/api/v1/file/hashsum/sha512/b8b6f0aff11fe89ab2fcd1949cc75f2c2378a7bc408827a004396deb5ff5a9976bffe8a597f8db1b74c886ea39eb905e610dce8f5bd7586a4d6c196d7349da8d/download
-DITK_USE_SYSTEM_MINC=ON
-DITK_USE_SYSTEM_SWIG=ON
-DITK_FORBID_DOWNLOADS=OFF # This should be turned on some day, however for now ITK does download specific versions so it shouldn't spontaneously break. Remote Modules would probably break with this!
-DINSTALL_GTEST=OFF
-DITK_USE_SYSTEM_GOOGLETEST=ON
-DEXECUTABLE_OUTPUT_PATH=tools/${PORT}
# TODO
#-DVXL_USE_GEOTIFF=ON
-DVXL_USE_LFS=ON
-DITK_MINIMUM_COMPLIANCE_LEVEL:STRING=1 # To Display all remote modules within cmake-gui
#-DModule_IOSTL=ON # example how to turn on a non-default module
#-DModule_MorphologicalContourInterpolation=ON # example how to turn on a remote module
#-DModule_RLEImage=ON # example how to turn on a remote module
# Some additional wraping options
#-DITK_WRAP_double=ON
#-DITK_WRAP_complex_double=ON
#-DITK_WRAP_covariant_vector_double=ON
#-DITK_WRAP_vector_double=ON
${FEATURE_OPTIONS}
${ADDITIONAL_OPTIONS}
OPTIONS_DEBUG ${OPTIONS_DEBUG}
OPTIONS_RELEASE ${OPTIONS_RELEASE}
)
if(BUILD_RTK) # Remote Modules are only downloaded on configure.
# TODO: In the future try to download via vcpkg_from_github and move the files. That way patching does not need this workaround
vcpkg_apply_patches(SOURCE_PATH "${SOURCE_PATH}/Modules/Remote/RTK" QUIET PATCHES rtk/already_defined.patch rtk/unresolved.patch)
endif()
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup()
if(TOOL_NAMES)
vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN)
endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE "${CURRENT_PACKAGES_DIR}/include/ITK-5.3/vcl_where_root_dir.h")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ITK-5.3/itk_eigen.h" "include(${SOURCE_PATH}/CMake/UseITK.cmake)" "include(UseITK)")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ITK-5.3/itk_eigen.h" "message(STATUS \"From ITK: Eigen3_DIR: ${CURRENT_INSTALLED_DIR}/share/eigen3\")" "")
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

View File

@@ -0,0 +1,100 @@
diff --git a/include/rtkProjectionGeometry.h b/include/rtkProjectionGeometry.h
index e5831611f..73ed2b74f 100644
--- a/include/rtkProjectionGeometry.h
+++ b/include/rtkProjectionGeometry.h
@@ -23,6 +23,7 @@
#include <vector>
+#include "RTKExport.h"
#include "rtkMacro.h"
namespace rtk
@@ -67,25 +68,18 @@ public:
* with the i-th matrix provides the physical coordinate on
* the i-th projection.
*/
- const std::vector<MatrixType> &
- GetMatrices() const
- {
- return this->m_Matrices;
- }
+ itkGetConstReferenceMacro(Matrices,std::vector<MatrixType>)
/** Get the i-th projection matrix. */
MatrixType
- GetMatrix(const unsigned int i) const
- {
- return this->m_Matrices[i];
- }
+ GetMatrix(const unsigned int i) const;
/** Empty the geometry object. */
virtual void
Clear();
protected:
- ProjectionGeometry() = default;
+ ProjectionGeometry();
~ProjectionGeometry() override = default;
void
@@ -93,11 +87,7 @@ protected:
/** Add projection matrix */
virtual void
- AddMatrix(const MatrixType & m)
- {
- this->m_Matrices.push_back(m);
- this->Modified();
- }
+ AddMatrix(const MatrixType & m);
private:
/** Projection matrices */
@@ -105,6 +95,9 @@ private:
};
} // namespace rtk
-#include "rtkProjectionGeometry.hxx"
+#ifndef ITK_MANUAL_INSTANTIATION
+# include "rtkProjectionGeometry.hxx"
+#endif
+
#endif // rtkProjectionGeometry_h
diff --git a/include/rtkProjectionGeometry.hxx b/include/rtkProjectionGeometry.hxx
index 192265812..97dfe8c3a 100644
--- a/include/rtkProjectionGeometry.hxx
+++ b/include/rtkProjectionGeometry.hxx
@@ -23,6 +23,8 @@
namespace rtk
{
+template <unsigned int TDimension>
+ProjectionGeometry<TDimension>::ProjectionGeometry() = default;
template <unsigned int TDimension>
void
@@ -43,6 +45,21 @@ ProjectionGeometry<TDimension>::Clear()
this->Modified();
}
+template <unsigned int TDimension>
+typename ProjectionGeometry<TDimension>::MatrixType
+ProjectionGeometry<TDimension>::GetMatrix(const unsigned int i) const
+{
+ return this->m_Matrices[i];
+}
+
+template <unsigned int TDimension>
+void
+ProjectionGeometry<TDimension>::AddMatrix(const typename ProjectionGeometry<TDimension>::MatrixType & m)
+{
+ this->m_Matrices.push_back(m);
+ this->Modified();
+}
+
} // namespace rtk
#endif // rtkProjectionGeometry_hxx

213
externals/vcpkg/ports/itk/rtk/unresolved.patch vendored Executable file
View File

@@ -0,0 +1,213 @@
diff --git a/include/rtkDCMImagXImageIO.h b/include/rtkDCMImagXImageIO.h
index 2a70ae046..69abb409e 100644
--- a/include/rtkDCMImagXImageIO.h
+++ b/include/rtkDCMImagXImageIO.h
@@ -18,7 +18,7 @@
#ifndef rtkDCMImagXImageIO_h
#define rtkDCMImagXImageIO_h
-
+#include "RTKExport.h"
#include <itkGDCMImageIO.h>
#include "rtkMacro.h"
@@ -32,7 +32,7 @@ namespace rtk
*
* \ingroup RTK
*/
-class DCMImagXImageIO : public itk::GDCMImageIO
+class RTK_EXPORT DCMImagXImageIO : public itk::GDCMImageIO
{
public:
ITK_DISALLOW_COPY_AND_ASSIGN(DCMImagXImageIO);
diff --git a/include/rtkEdfImageIO.h b/include/rtkEdfImageIO.h
index 66499c56b..7b16fbc5a 100644
--- a/include/rtkEdfImageIO.h
+++ b/include/rtkEdfImageIO.h
@@ -18,7 +18,7 @@
#ifndef rtkEdfImageIO_h
#define rtkEdfImageIO_h
-
+#include "RTKExport.h"
#include <itkImageIOBase.h>
#include <fstream>
#include <cstring>
@@ -36,7 +36,7 @@ namespace rtk
*
* \ingroup RTK IOFilters
*/
-class EdfImageIO : public itk::ImageIOBase
+class RTK_EXPORT EdfImageIO : public itk::ImageIOBase
{
public:
ITK_DISALLOW_COPY_AND_ASSIGN(EdfImageIO);
diff --git a/include/rtkHisImageIO.h b/include/rtkHisImageIO.h
index 2ef2005dd..95449b8a6 100644
--- a/include/rtkHisImageIO.h
+++ b/include/rtkHisImageIO.h
@@ -19,6 +19,8 @@
#ifndef rtkHisImageIO_h
#define rtkHisImageIO_h
+#include "RTKExport.h"
+
// itk include
#include <itkImageIOBase.h>
#include "rtkMacro.h"
@@ -35,7 +37,7 @@ namespace rtk
*
* \ingroup RTK IOFilters
*/
-class HisImageIO : public itk::ImageIOBase
+class RTK_EXPORT HisImageIO : public itk::ImageIOBase
{
public:
/** Standard class type alias. */
diff --git a/include/rtkHncImageIO.h b/include/rtkHncImageIO.h
index 7b9539bde..dc9dca759 100644
--- a/include/rtkHncImageIO.h
+++ b/include/rtkHncImageIO.h
@@ -19,9 +19,11 @@
#ifndef rtkHncImageIO_h
#define rtkHncImageIO_h
+#include "RTKExport.h"
+
// itk include
#include <itkImageIOBase.h>
-#include "itksys/SystemTools.hxx"
+//#include "itksys/SystemTools.hxx"
#if defined(_MSC_VER) && (_MSC_VER < 1600)
// SR: taken from
@@ -43,7 +45,7 @@ namespace rtk
*
* \ingroup RTK IOFilters
*/
-class HncImageIO : public itk::ImageIOBase
+class RTK_EXPORT HncImageIO : public itk::ImageIOBase
{
public:
/** Standard class type alias. */
diff --git a/include/rtkHncImageIOFactory.h b/include/rtkHncImageIOFactory.h
index 2bca8f77e..1d5a97938 100644
--- a/include/rtkHncImageIOFactory.h
+++ b/include/rtkHncImageIOFactory.h
@@ -38,7 +38,7 @@ namespace rtk
*
* \ingroup RTK IOFilters
*/
-class HncImageIOFactory : public itk::ObjectFactoryBase
+class RTK_EXPORT HncImageIOFactory : public itk::ObjectFactoryBase
{
public:
/** Standard class type alias. */
diff --git a/include/rtkHndImageIO.h b/include/rtkHndImageIO.h
index 5a07897cc..5f843362a 100644
--- a/include/rtkHndImageIO.h
+++ b/include/rtkHndImageIO.h
@@ -19,6 +19,8 @@
#ifndef rtkHndImageIO_h
#define rtkHndImageIO_h
+#include "RTKExport.h"
+
// itk include
#include <itkImageIOBase.h>
@@ -43,7 +45,7 @@ namespace rtk
*
* \ingroup RTK IOFilters
*/
-class HndImageIO : public itk::ImageIOBase
+class RTK_EXPORT HndImageIO : public itk::ImageIOBase
{
public:
/** Standard class type alias. */
diff --git a/include/rtkImagXImageIO.h b/include/rtkImagXImageIO.h
index d69e9a790..d6cc8388e 100644
--- a/include/rtkImagXImageIO.h
+++ b/include/rtkImagXImageIO.h
@@ -18,7 +18,7 @@
#ifndef rtkImagXImageIO_h
#define rtkImagXImageIO_h
-
+#include "RTKExport.h"
#include <itkImageIOBase.h>
#include <fstream>
#include <cstring>
@@ -34,7 +34,7 @@ namespace rtk
*
* \ingroup RTK
*/
-class ImagXImageIO : public itk::ImageIOBase
+class RTK_EXPORT ImagXImageIO : public itk::ImageIOBase
{
public:
/** Standard class type alias. */
diff --git a/include/rtkOraImageIO.h b/include/rtkOraImageIO.h
index ece525a42..2d5332872 100644
--- a/include/rtkOraImageIO.h
+++ b/include/rtkOraImageIO.h
@@ -19,6 +19,8 @@
#ifndef rtkOraImageIO_h
#define rtkOraImageIO_h
+#include "RTKExport.h"
+
// This is done to avoid any interference with zlib
#ifdef OF
# undef OF
@@ -41,7 +43,7 @@ namespace rtk
*
* \ingroup RTK IOFilters
*/
-class OraImageIO : public itk::MetaImageIO
+class RTK_EXPORT OraImageIO : public itk::MetaImageIO
{
public:
/** Standard class type alias. */
diff --git a/include/rtkXRadImageIO.h b/include/rtkXRadImageIO.h
index a72c934e4..0a92afa22 100644
--- a/include/rtkXRadImageIO.h
+++ b/include/rtkXRadImageIO.h
@@ -19,6 +19,7 @@
#ifndef rtkXRadImageIO_h
#define rtkXRadImageIO_h
+#include "RTKExport.h"
#include <itkImageIOBase.h>
#include <fstream>
#include <cstring>
@@ -37,7 +38,7 @@ namespace rtk
*
* \ingroup RTK IOFilters
*/
-class XRadImageIO : public itk::ImageIOBase
+class RTK_EXPORT XRadImageIO : public itk::ImageIOBase
{
public:
/** Standard class type alias. */
diff --git a/include/rtkXimImageIO.h b/include/rtkXimImageIO.h
index ae789dbf9..741f05183 100644
--- a/include/rtkXimImageIO.h
+++ b/include/rtkXimImageIO.h
@@ -19,6 +19,7 @@
#ifndef rtkXimImageIO_h
#define rtkXimImageIO_h
+#include "RTKExport.h"
#include "rtkMacro.h"
// itk include
@@ -43,7 +44,7 @@ namespace rtk
*
* \ingroup RTK IOFilters
*/
-class XimImageIO : public itk::ImageIOBase
+class RTK_EXPORT XimImageIO : public itk::ImageIOBase
{
public:
/** Standard class type alias. */

View File

@@ -0,0 +1,15 @@
diff --git a/Modules/ThirdParty/OpenJPEG/src/openjpeg/opj_includes.h b/Modules/ThirdParty/OpenJPEG/src/openjpeg/opj_includes.h
index e75a220d4d..4b13e1726a 100644
--- a/Modules/ThirdParty/OpenJPEG/src/openjpeg/opj_includes.h
+++ b/Modules/ThirdParty/OpenJPEG/src/openjpeg/opj_includes.h
@@ -87,8 +87,8 @@ Most compilers implement their own version of this keyword ...
#endif
#endif
-/* MSVC and Borland C do not have lrintf */
-#if defined(_MSC_VER) || defined(__BORLANDC__)
+/* MSVC pre 16.8 and Borland C do not have lrintf */
+#if (defined(_MSC_VER) && _MSC_VER < 1928) || defined(__BORLANDC__)
/* MSVC 64bits doesn't support _asm */
#if !defined(_WIN64)

27
externals/vcpkg/ports/itk/var_libraries.patch vendored Executable file
View File

@@ -0,0 +1,27 @@
diff --git a/CMake/ITKModuleMacros.cmake b/CMake/ITKModuleMacros.cmake
index da9f3a902..60420bb0a 100644
--- a/CMake/ITKModuleMacros.cmake
+++ b/CMake/ITKModuleMacros.cmake
@@ -162,9 +162,6 @@ macro(itk_module_impl)
foreach(dep IN LISTS ITK_MODULE_${itk-module}_DEPENDS)
list(APPEND ${itk-module}_LIBRARIES "${${dep}_LIBRARIES}")
endforeach()
- if(${itk-module}_LIBRARIES)
- list(REMOVE_DUPLICATES ${itk-module}_LIBRARIES)
- endif()
endif()
if(EXISTS ${${itk-module}_SOURCE_DIR}/include)
diff --git a/CMake/ITKModuleAPI.cmake b/CMake/ITKModuleAPI.cmake
index af64d96dc..809335e6d 100644
--- a/CMake/ITKModuleAPI.cmake
+++ b/CMake/ITKModuleAPI.cmake
@@ -133,7 +133,7 @@ macro(itk_module_config ns)
endforeach()
unset(_${ns}_USED_MODULES)
- foreach(v ${ns}_LIBRARIES ${ns}_INCLUDE_DIRS ${ns}_LIBRARY_DIRS
+ foreach(v ${ns}_INCLUDE_DIRS ${ns}_LIBRARY_DIRS
${ns}_RUNTIME_LIBRARY_DIRS ${ns}_FACTORY_NAMES ${ns}_FACTORY_LIST)
if(${v})
list(REMOVE_DUPLICATES ${v})

119
externals/vcpkg/ports/itk/vcpkg.json vendored Executable file
View File

@@ -0,0 +1,119 @@
{
"name": "itk",
"version": "5.2.1",
"port-version": 1,
"description": "Insight Segmentation and Registration Toolkit (ITK) is used for image processing and analysis.",
"homepage": "https://github.com/InsightSoftwareConsortium/ITK",
"license": "Apache-2.0",
"dependencies": [
"double-conversion",
"eigen3",
"expat",
{
"name": "fftw3",
"default-features": false
},
"gdcm",
"gtest",
{
"name": "hdf5",
"default-features": false,
"features": [
"cpp"
]
},
"icu",
"libjpeg-turbo",
"libpng",
"minc",
{
"name": "openjpeg",
"default-features": false
},
"tiff",
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
},
"zlib"
],
"features": {
"cuda": {
"description": "Build CUDA module",
"dependencies": [
"cuda",
{
"name": "itk",
"default-features": false,
"features": [
"opencl"
]
}
]
},
"cufftw": {
"description": "Use CUDA FFTW",
"dependencies": [
"cuda"
]
},
"opencl": {
"description": "Use OpenCL",
"dependencies": [
"opencl"
]
},
"opencv": {
"description": "Build ITKVideoBridgeOpenCV module.",
"dependencies": [
{
"name": "opencv",
"default-features": false,
"features": [
"default-features"
]
}
]
},
"python": {
"description": "Python functionality for ITK",
"dependencies": [
"python3"
]
},
"rtk": {
"description": "Build RTK Module"
},
"tbb": {
"description": "Build TBB Module",
"dependencies": [
"tbb"
]
},
"tools": {
"description": "Build RTK with tools",
"dependencies": [
{
"name": "itk",
"default-features": false,
"features": [
"rtk"
]
}
]
},
"vtk": {
"description": "Build ITKVtkGlue module.",
"dependencies": [
{
"name": "vtk",
"default-features": false
}
]
}
}
}

19
externals/vcpkg/ports/itk/wrapping.patch vendored Executable file
View File

@@ -0,0 +1,19 @@
diff --git a/Wrapping/TypedefMacros.cmake b/Wrapping/TypedefMacros.cmake
index e6f8d0bf3..6c000dba8 100644
--- a/Wrapping/TypedefMacros.cmake
+++ b/Wrapping/TypedefMacros.cmake
@@ -57,13 +57,12 @@ macro(itk_wrap_module library_name)
# WRAPPER_LIBRARY_DEPENDS. List of names of other wrapper libraries that
# define symbols used by this wrapper library.
INTERSECTION(WRAPPER_LIBRARY_DEPENDS "${ITK_MODULE_${library_name}_DEPENDS}" "${WRAP_ITK_MODULES}")
# set(WRAPPER_LIBRARY_DEPENDS ${ITK_MODULE_${library_name}_DEPENDS})
# WRAPPER_LIBRARY_LINK_LIBRARIES. List of other libraries that should
# be linked to the wrapper library.
- set(WRAPPER_LIBRARY_LINK_LIBRARIES ${ITK_LIBRARIES} ${${itk-module}_LIBRARIES})
-
+ set(WRAPPER_LIBRARY_LINK_LIBRARIES ${ITK_LIBRARIES} ${${library_name}_LIBRARIES})
# WRAPPER_SUBMODULE_ORDER. List of *.wrap submodules in the source dir
# that should be included/wrapped before the rest in the given order.
# Just the submodule group name is needed, not the full path or file name.