2019-09-27 05:31:55 +08:00
vcpkg_buildpath_length_warning ( 37 )
2019-05-10 02:52:25 +08:00
2017-10-12 03:48:41 +08:00
vcpkg_from_github (
O U T _ S O U R C E _ P A T H S O U R C E _ P A T H
R E P O I n s i g h t S o f t w a r e C o n s o r t i u m / I T K
2023-10-10 06:08:15 +08:00
R E F v 5 . 3 - r c 0 2
2022-02-23 04:44:13 +08:00
S H A 5 1 2 f e 7 0 3 b c 6 e d 6 8 1 c b 9 9 8 3 d 7 d 6 e 2 1 c 8 f f a 7 6 5 0 3 3 7 e 4 7 0 c 0 9 a 7 2 4 1 d e 5 8 a 4 6 3 c 2 3 e 3 1 5 5 1 6 b 1 a 8 1 a 1 8 c 1 4 f 6 8 2 7 0 6 0 5 6 a 0 e c 6 6 9 3 2 b 6 3 d 2 e 2 4 9 4 5 b d c e a 0 3 1 6 9 b c 1 1 2 2 b b 2
2017-10-12 03:48:41 +08:00
H E A D _ R E F m a s t e r
[many ports] improvements for linux/wsl (#6730)
* [many ports] improve compatibility with WSL and mixed case filesystems
* [treehopper] express dependency on libusb, which was not working on non-win32 platforms and is still broken there
* [libharu] add compatibility with non-win32 platforms
* [geogram] fix openblas on linux
[clapack] better integration with linux environment
[visit-struct] put cmake config file in the expected folder
[geogram] remove trailing underscore to enable compatibility with OpenBLAS
* [openblas] playing with underscore, without success
* [openblas/lapack] fix library integration
* [clapack] improve target handling in cmake module
* [openblas] promote self-generated config to default cmake module, otherwise internal ones thinks wrongly that openblas can also solve lapack libs
* [clapack,openblas] improve libraries integration
* [many ports] fix cmake unnecessary target paths, wrong config paths, empty default dependencies, unnecessary [core] tags
* [suitesparse] improve integration with new lapack/openblas mechanism
* [suitesparse] add no underscore postfix also for linux
* [ceres] fix integration with newer openblas/lapack configs
* [aws-c-event-stream] fix regression
* [systemc] fix regression
* [libwebp,geogram] trigger rebuild
* [libwebp,pthread4w] fix regressions
* [glbinding] fix cmake module installation
* [globjects] disentangle unnecessary dependency from qt5
* [jasper] remove broken and unnecessary patches
* [libwebp] fix regression
* [many ports] avoid using BUILD_SHARED_LIBS which is uninitialized in port files
* [clapack] correctly find dlls
* [clapack] use a generic blas as dependency
* [fizz,g2o] restore expected version
* fix mistake
* [many ports] remove WIN32, APPLE and UNIX (again, they keep creeping in) from ports since they are broken and usually break non-win32 ports
* [libressl,openssl] do not try to build one if the other is already installed
* [itk] update ref and patch to avoid regression
* [libressl,openssl] implement full strategy to fix CI
* [libwebp] disable components that are broken on macOS
* [ogre] enable macOS build
* [freeimage,jxrlib,ogre,openexr,protobuf] port patches from #5169
* [ogre] add missing install command
* [ffmpeg] enable wrapper for cmake module
* [ffmpeg] add avresample module finder
* [ffmpeg] improve module detection and exported symbols
* [ffmpeg] add variables to cache
* [thrift] remove unnecessary build option
* [allegro5] fix shared/static inversion
* [protobuf] cleanup
* [libressl] cleanup
* [moos-core] cleanup
* commented features must not be separated from other features, otherwise vcpkg complains
* [itk] fix regression
* [shogun,itk] fix regressions
* [ogre] fix regression
* [opusfile] add compatibility with non-win32
* [itk] fix regression
* [sndfile,libsndfile] remove duplicate, redirect sndfile to libsndfile
* add missing dependencies
* [ismrmrd] fix regression
* [ffmpeg] trigger rebuild
* [clapack,openblas,libogg] fix regressions on macOS
* [libtins] fix regression
* force rebuild windows regressions, unable to reproduce locally
* [mosquitto] enable non-win32 builds
* [json-dto] force rebuild, unable to reproduce regression locally
* [many ports] uniform naming and path length requests
* fix regression
* fix regression
* [ffmpeg] fixes for downstream projects
* clean up - thanks to reviewers
* trigger rebuild of regressions on macOS
* trigger rebuild of regressions on macOS - part2
* Add core back
* Use VCPKG_CONCURRENCY
* Add core back to suitesparse
* Add core back to curl
* Add core back to magnum
* Add core back to magnum
* Add core back to magnum
* Add core back to cgal
2019-06-21 10:11:54 +08:00
P A T C H E S
2020-10-20 10:53:20 +08:00
d o u b l e - c o n v e r s i o n . p a t c h
2020-08-03 06:49:20 +08:00
o p e n j p e g . p a t c h
o p e n j p e g 2 . p a t c h
v a r _ l i b r a r i e s . p a t c h
w r a p p i n g . p a t c h
o p e n c l . p a t c h
2020-10-20 10:53:20 +08:00
u s e - t h e - l r i n t f - i n t r i n s i c . p a t c h
2022-10-15 07:28:29 +08:00
d o n t - b u i l d - g t e s t . p a t c h
2023-10-10 06:08:15 +08:00
c x x 1 7 . p a t c h # See https://github.com/InsightSoftwareConsortium/ITK/issues/4213#issuecomment-1722547712
2020-08-03 06:49:20 +08:00
)
vcpkg_check_features ( OUT_FEATURE_OPTIONS FEATURE_OPTIONS
2021-11-16 01:10:29 +08:00
F E A T U R E S
" v t k " M o d u l e _ I T K V t k G l u e
" c u d a " M o d u l e _ I T K C u d a C o m m o n # Requires RTK?
#"cuda" CUDA_HAVE_GPU # Automatically set by FindCUDA?
" c u f f t w " I T K _ U S E _ C U F F T W
" o p e n c l " I T K _ U S E _ G P U
" t b b " M o d u l e _ I T K T B B
" r t k " M o d u l e _ R T K
" t o o l s " R T K _ B U I L D _ A P P L I C A T I O N S
2022-03-22 10:27:37 +08:00
" o p e n c v " M o d u l e _ I T K V i d e o B r i d g e O p e n C V
2021-11-16 01:10:29 +08:00
# There are a lot of more (remote) modules and options in ITK
# feel free to add those as a feature
2017-03-03 06:44:43 +08:00
)
2020-08-03 06:49:20 +08:00
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 ( )
2020-10-20 10:53:20 +08:00
2020-08-03 06:49:20 +08:00
list ( APPEND ADDITIONAL_OPTIONS
" - D F F T W _ L I B _ S E A R C H P A T H = $ { C U D A _ L I B _ P A T H } "
" - D F F T W _ I N C L U D E _ P A T H = $ { C U D A _ P A T H } / i n c l u d e "
" - D C U F F T W _ I N C L U D E _ P A T H = $ { C U D A _ P A T H } / i n c l u d e "
)
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
" - D M o d u l e _ R T K _ G I T _ T A G = 8 0 9 9 2 1 2 f 7 1 5 2 3 1 d 0 9 3 f 7 d 6 a 1 1 1 4 d a e c f 4 5 d 8 7 1 e d " # RTK latest versions (11.05.2020)
)
if ( "cuda" IN_LIST FEATURES )
list ( APPEND ADDITIONAL_OPTIONS "-DRTK_USE_CUDA=ON" )
2020-10-20 10:53:20 +08:00
#RTK + CUDA + PYTHON + dynamic library linkage will fail and needs upstream fixes.
2020-08-03 06:49:20 +08:00
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
- D I T K _ W R A P _ u n s i g n e d _ l o n g _ l o n g = O N
- D I T K _ W R A P _ s i g n e d _ l o n g _ l o n g = O N
)
endif ( )
if ( "tools" IN_LIST FEATURES )
2020-10-20 10:53:20 +08:00
2020-08-03 06:49:20 +08:00
if ( "rtk" IN_LIST FEATURES )
2020-10-20 10:53:20 +08:00
list ( APPEND TOOL_NAMES rtkadmmtotalvariation rtkadmmwavelets rtkamsterdamshroud rtkbackprojections rtkbioscangeometry rtkcheckimagequality rtkconjugategradient
r t k d i g i s e n s g e o m e t r y r t k d r a w g e o m e t r i c p h a n t o m r t k d r a w s h e p p l o g a n p h a n t o m r t k d u a l e n e r g y s i m p l e x d e c o m p o s i t i o n r t k e l e k t a s y n e r g y g e o m e t r y r t k e x t r a c t p h a s e s i g n a l
r t k e x t r a c t s h r o u d s i g n a l r t k f d k r t k f d k t w o d w e i g h t s r t k f i e l d o f v i e w r t k f o r w a r d p r o j e c t i o n s r t k f o u r d c o n j u g a t e g r a d i e n t r t k f o u r d f d k r t k f o u r d r o o s t e r r t k f o u r d s a r t
r t k g a i n c o r r e c t i o n r t k i 0 e s t i m a t i o n r t k i m a g x g e o m e t r y r t k i t e r a t i v e f d k r t k l a g c o r r e c t i o n r t k l a s t d i m e n s i o n l 0 g r a d i e n t d e n o i s i n g r t k l u t r t k m a s k c o l l i m a t i o n r t k m c r o o s t e r
r t k m o t i o n c o m p e n s a t e d f o u r d c o n j u g a t e g r a d i e n t r t k o r a g e o m e t r y r t k o s e m r t k o v e r l a y p h a s e a n d s h r o u d r t k p a r k e r s h o r t s c a n w e i g h t i n g r t k p r o j e c t g e o m e t r i c p h a n t o m
r t k p r o j e c t i o n m a t r i x r t k p r o j e c t i o n s r t k p r o j e c t s h e p p l o g a n p h a n t o m r t k r a m p r t k r a y b o x i n t e r s e c t i o n r t k r a y q u a d r i c i n t e r s e c t i o n r t k r e g u l a r i z e d c o n j u g a t e g r a d i e n t
r t k s a r t r t k s c a t t e r g l a r e c o r r e c t i o n r t k s i m u l a t e d g e o m e t r y r t k s p e c t r a l d e n o i s e p r o j e c t i o n s r t k s p e c t r a l f o r w a r d m o d e l r t k s p e c t r a l o n e s t e p r t k s p e c t r a l r o o s t e r r t k s p e c t r a l s i m p l e x d e c o m p o s i t i o n
r t k s u b s e l e c t r t k t o t a l n u c l e a r v a r i a t i o n d e n o i s i n g r t k t o t a l v a r i a t i o n d e n o i s i n g r t k t u t o r i a l a p p l i c a t i o n r t k v a r i a n o b i g e o m e t r y r t k v a r i a n p r o b e a m g e o m e t r y r t k v e c t o r c o n j u g a t e g r a d i e n t
2020-08-03 06:49:20 +08:00
r t k w a n g d i s p l a c e d d e t e c t o r w e i g h t i n g r t k w a r p e d b a c k p r o j e c t s e q u e n c e r t k w a r p e d f o r w a r d p r o j e c t s e q u e n c e r t k w a v e l e t s d e n o i s i n g r t k x r a d g e o m e t r y )
endif ( )
endif ( )
if ( "vtk" IN_LIST FEATURES )
vcpkg_find_acquire_program ( PYTHON3 )
list ( APPEND ADDITIONAL_OPTIONS
" - D P y t h o n 3 _ E X E C U T A B L E : P A T H = $ { P Y T H O N 3 } " # 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
- D I T K _ W R A P _ P Y T H O N = O N
- D P y t h o n 3 _ F I N D _ R E G I S T R Y = N E V E R
" - D P y t h o n 3 _ E X E C U T A B L E : P A T H = $ { P Y T H O N 3 } " # Required by more than one feature
" - D S W I G _ E X E C U T A B L E = $ { S W I G } "
" - D S W I G _ D I R = $ { S W I G _ D I R } "
)
2020-10-20 10:53:20 +08:00
#ITK_PYTHON_SITE_PACKAGES_SUFFIX should be set to the install dir of the site-packages within vcpkg
2018-05-01 02:25:11 +08:00
endif ( )
2022-03-22 10:27:37 +08:00
if ( "opencv" IN_LIST FEATURES )
message ( STATUS "${PORT} includes the ITKVideoBridgeOpenCV" )
list ( APPEND ADDITIONAL_OPTIONS
- D M o d u l e _ I T K V i d e o B r i d g e O p e n C V : B O O L = O N
)
endif ( )
2018-05-01 02:25:11 +08:00
2019-10-08 17:15:30 +08:00
set ( USE_64BITS_IDS OFF )
if ( VCPKG_TARGET_ARCHITECTURE STREQUAL x64 OR VCPKG_TARGET_ARCHITECTURE STREQUAL arm64 )
set ( USE_64BITS_IDS ON )
endif ( )
2020-08-03 06:49:20 +08:00
file ( REMOVE_RECURSE "${SOURCE_PATH}/CMake/FindOpenCL.cmake" )
2021-11-16 01:10:29 +08:00
vcpkg_cmake_configure (
S O U R C E _ P A T H " $ { S O U R C E _ P A T H } "
2018-07-13 21:40:16 +08:00
D I S A B L E _ P A R A L L E L _ C O N F I G U R E
2017-03-03 06:44:43 +08:00
O P T I O N S
- D B U I L D _ T E S T I N G = O F F
- D B U I L D _ E X A M P L E S = O F F
2020-10-20 10:53:20 +08:00
- D B U I L D _ P K G C O N F I G _ F I L E S = O F F
2020-08-03 06:49:20 +08:00
- D I T K _ D O X Y G E N _ H T M L = O F F
2017-03-03 06:44:43 +08:00
- D D O _ N O T _ I N S T A L L _ I T K _ T E S T _ D R I V E R = O N
2020-08-03 06:49:20 +08:00
- D I T K _ S K I P _ P A T H _ L E N G T H _ C H E C K S = O N
2017-03-03 06:44:43 +08:00
- D I T K _ I N S T A L L _ D A T A _ D I R = s h a r e / i t k / d a t a
- D I T K _ I N S T A L L _ D O C _ D I R = s h a r e / i t k / d o c
- D I T K _ I N S T A L L _ P A C K A G E _ D I R = s h a r e / i t k
2019-10-08 17:15:30 +08:00
- D I T K _ U S E _ 6 4 B I T S _ I D S = $ { U S E _ 6 4 B I T S _ I D S }
2017-03-03 06:44:43 +08:00
- D I T K _ U S E _ C O N C E P T _ C H E C K I N G = O N
2017-12-12 06:36:49 +08:00
#-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
- D I T K _ U S E _ S Y S T E M _ D O U B L E C O N V E R S I O N = O N
2017-03-03 06:44:43 +08:00
- D I T K _ U S E _ S Y S T E M _ E X P A T = O N
- D I T K _ U S E _ S Y S T E M _ J P E G = O N
- D I T K _ U S E _ S Y S T E M _ P N G = O N
- D I T K _ U S E _ S Y S T E M _ T I F F = O N
- D I T K _ U S E _ S Y S T E M _ Z L I B = O N
2019-04-03 11:35:44 +08:00
- D I T K _ U S E _ S Y S T E M _ E I G E N = O N
2020-08-03 06:49:20 +08:00
- D I T K _ U S E _ S Y S T E M _ F F T W = O N
- D I T K _ U S E _ S Y S T E M _ H D F 5 = O N # HDF5 was problematic in the past and still is. ITK still has not figured out how to do it correctly!
- D I T K _ U S E _ S Y S T E M _ G D C M = O N
- D I T K _ U S E _ S Y S T E M _ O p e n J P E G = O N # Added by VCPKG
2020-10-20 10:53:20 +08:00
- D I T K _ U S E _ S Y S T E M _ D C M T K = O N
2020-08-03 06:49:20 +08:00
- D D C M T K _ U S E _ I C U = O N
- D I T K _ U S E _ S Y S T E M _ I C U = O N
#-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
- D I T K _ U S E _ S Y S T E M _ M I N C = O N
- D I T K _ U S E _ S Y S T E M _ S W I G = O N
- D I T K _ F O R B I D _ D O W N L O A D S = O F F # 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!
- D I N S T A L L _ G T E S T = O F F
- D I T K _ U S E _ S Y S T E M _ G O O G L E T E S T = O N
- D E X E C U T A B L E _ O U T P U T _ P A T H = t o o l s / $ { P O R T }
2020-10-20 10:53:20 +08:00
2020-08-03 06:49:20 +08:00
# TODO
#-DVXL_USE_GEOTIFF=ON
- D V X L _ U S E _ L F S = O N
2020-10-20 10:53:20 +08:00
2020-08-03 06:49:20 +08:00
- D I T K _ M I N I M U M _ C O M P L I A N C E _ L E V E L : S T R I N G = 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
2020-10-20 10:53:20 +08:00
2020-08-03 06:49:20 +08:00
# Some additional wraping options
#-DITK_WRAP_double=ON
#-DITK_WRAP_complex_double=ON
#-DITK_WRAP_covariant_vector_double=ON
#-DITK_WRAP_vector_double=ON
2017-12-12 06:36:49 +08:00
2020-08-03 06:49:20 +08:00
$ { F E A T U R E _ O P T I O N S }
2017-03-03 06:44:43 +08:00
$ { A D D I T I O N A L _ O P T I O N S }
2020-10-20 10:53:20 +08:00
2020-08-03 06:49:20 +08:00
O P T I O N S _ D E B U G $ { O P T I O N S _ D E B U G }
O P T I O N S _ R E L E A S E $ { O P T I O N S _ R E L E A S E }
2017-03-03 06:44:43 +08:00
)
2020-10-20 10:53:20 +08:00
if ( BUILD_RTK ) # Remote Modules are only downloaded on configure.
2020-08-03 06:49:20 +08:00
# TODO: In the future try to download via vcpkg_from_github and move the files. That way patching does not need this workaround
2023-02-03 08:28:09 +08:00
vcpkg_apply_patches ( SOURCE_PATH "${SOURCE_PATH}/Modules/Remote/RTK" QUIET PATCHES rtk/already_defined.patch rtk/unresolved.patch rtk/Add-missing-include-for-Cuda.patch )
2020-08-03 06:49:20 +08:00
endif ( )
2021-11-16 01:10:29 +08:00
vcpkg_cmake_install ( )
2017-03-03 06:44:43 +08:00
vcpkg_copy_pdbs ( )
2021-11-16 01:10:29 +08:00
vcpkg_cmake_config_fixup ( )
2017-03-03 06:44:43 +08:00
2020-08-03 06:49:20 +08:00
if ( TOOL_NAMES )
vcpkg_copy_tools ( TOOL_NAMES ${ TOOL_NAMES } AUTO_CLEAN )
endif ( )
2019-04-03 11:35:44 +08:00
2020-08-03 06:49:20 +08:00
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" )
2022-02-23 04:44:13 +08:00
file ( REMOVE "${CURRENT_PACKAGES_DIR}/include/ITK-5.3/vcl_where_root_dir.h" )
2017-03-03 06:44:43 +08:00
2022-02-23 04:44:13 +08:00
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\ ")" "" )
2021-11-16 01:10:29 +08:00
2023-01-09 13:34:52 +08:00
if ( "rtk" IN_LIST FEATURES )
vcpkg_replace_string ( "${CURRENT_PACKAGES_DIR}/include/ITK-5.3/rtkConfiguration.h" "#define RTK_BINARY_DIR \" ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } -rel/Modules/Remote/RTK\ "" "" )
vcpkg_replace_string ( "${CURRENT_PACKAGES_DIR}/include/ITK-5.3/rtkConfiguration.h" "#define RTK_DATA_ROOT \" ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } -rel/ExternalData/Modules/Remote/RTK/test\ "" "" )
vcpkg_replace_string ( "${CURRENT_PACKAGES_DIR}/share/itk/Modules/RTK.cmake" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" "\${ITK_INSTALL_PREFIX}" )
vcpkg_replace_string ( "${CURRENT_PACKAGES_DIR}/share/itk/Modules/RTK.cmake" "${SOURCE_PATH}/Modules/Remote/RTK/utilities/lp_solve" "\${ITK_INSTALL_PREFIX}/include/RTK/lpsolve" )
endif ( )
2023-02-03 08:28:09 +08:00
vcpkg_install_copyright ( FILE_LIST "${SOURCE_PATH}/LICENSE" )