@@ -21,46 +21,36 @@ else()
2121 set (_download_castxml_binaries 0)
2222 set (_castxml_url)
2323 set (_castxml_hash)
24- set (_castxml_version 0.4.8 )
24+ set (_castxml_version 0.6.5 )
2525
2626 # If 64 bit Linux build host, use the CastXML binary
2727 if (CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64" )
2828
2929 set (_castxml_hash
30- c8d57ee92078dd8e98cb6f1ec43618c5ed137cb3c3790352f99ca78ee3caa3918387293e20dc3f84661f0937d78989844c58ca985e840a772d9256c6626607f4
30+ 592fcb6c7f85b6a1670cef7e0692ec6d1c9ba2e250825032ed6dcf9581aa169540eded608510aa1208ea1174df48c16390ee7daf7a17c7114d93a83a8a8e109b
3131 )
3232 set (_castxml_url
3333 "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version} /castxml-linux.tar.gz" )
3434 set (_download_castxml_binaries 1)
3535 elseif (CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64" )
3636
3737 set (_castxml_hash
38- 953bbaac7b3eabe31fa14ec18119d91989672a210e3844bb612bca7e83008305d9c46fe2c9fbef5c8fd1bc8282bc638960c5083e502e16209eb4973bca3cda8c
38+ 229d5339e217660f09dd87e2e639d666921a8c4e6c328a754dcae4290bba6bcac9d3b8e953814314ecdbf908d5d8e0d7dacbf1fdf6040a2e20d7acb98fb32f7d
3939 )
4040 set (_castxml_url
41- "https://data.kitware.com/api/v1/file/6617cf3c2357cf6b55ca8dd3/download"
42- )
41+ "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version} /castxml-linux-aarch64.tar.gz" )
4342 set (_download_castxml_binaries 1)
4443
4544 # If 64 bit Windows build host, use the CastXML binary
4645 elseif (CMAKE_HOST_SYSTEM_NAME MATCHES "Windows" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64" )
4746
48- if (CMAKE_HOST_SYSTEM_VERSION VERSION_GREATER_EQUAL 10.0.19044)
49- set (_castxml_hash
50- 4f6e352a0c7dd2c52386de6af7fee04660ba2cc05fd73f94a2843858f761729a7bea96debf16e51ae52b95b87142f311a08857b852162bf0d204bde9bdc99555
51- )
52- set (_castxml_url
53- "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version} /castxml-windows-win11.zip"
54- )
55- set (_download_castxml_binaries 1)
56- else ()
57- set (_castxml_hash
58- 5ad9e16bd2aadefff408e53d8b733597757788256640f9614393205713890dca881b490674c28866f79ca49aba7a42482f1e0fd30f90fead8abe852ef9d10f4f
59- )
60- set (_castxml_url
61- "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version} /castxml-windows.zip" )
62- set (_download_castxml_binaries 1)
63- endif ()
47+ set (_castxml_hash
48+ 7c1970ad6f2e5f06a8704606db92df3400c4cd9716f88cac604924430c7e6865f8256a67282d28005714f0ed0a42f7f6e386f24ce80fb075371902d35674c6cc
49+ )
50+ set (_castxml_url
51+ "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version} /castxml-windows.zip"
52+ )
53+ set (_download_castxml_binaries 1)
6454
6555 # If 64 bit Mac OS X build host ( >= 10.9, Mavericks), use the CastXML binary
6656 elseif (
@@ -69,19 +59,19 @@ else()
6959 AND (NOT
7060 CMAKE_HOST_SYSTEM_VERSION
7161 VERSION_LESS
72- "13 .0.0"
62+ "11 .0.0"
7363 ))
7464
7565 set (_castxml_hash
76- 0ff979f0659581534c7e53aa0a99ec9f0b541b160a8d664ce2f289d590517f2d8180376ccb98dfc75a3e718eb62831385dd32d48b83299e3b16414d1794b7c53
66+ c6986a796ab9a4f4deaf569534d628cc584088aa8b0e56026ea5ba19550b8ceeb41c34f46a85566a21205d6bb529717ee8944cfa9a9c7c27edb0504eece5544a
7767 )
7868 set (_castxml_url
7969 "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version} /castxml-macosx.tar.gz" )
8070 set (_download_castxml_binaries 1)
8171 elseif (CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64" )
8272
8373 set (_castxml_hash
84- f9a1fd33c20327b9542c1c34b5e005b02c1515a038257fb6db8dc9add998d53c36035f85f419f78e74ca0d33b3a2a6cf45a9a6eb995377d7f64910a525d6e737
74+ 4c8c969f7e53cd758b516bada449b322d37ad19d6d46602660d83ece20ce07f3d55462493382a1c422048928962fd33f9704638e2e41637d1147473562a55f94
8575 )
8676 set (_castxml_url
8777 "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version} /castxml-macos-arm.tar.gz" )
@@ -123,10 +113,9 @@ else()
123113 set (compiler_information
124114 -DCMAKE_CXX_COMPILER:FILEPATH =${CMAKE_CXX_COMPILER}
125115 ${CMAKE_CXX_COMPILER_LAUNCHER_FLAG}
126- "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} -w"
127116 -DCMAKE_C_COMPILER:FILEPATH =${CMAKE_C_COMPILER}
128117 ${CMAKE_C_COMPILER_LAUNCHER_FLAG}
129- "-DCMAKE_C_FLAGS:STRING= ${CMAKE_C_FLAGS} -w" )
118+ )
130119 endif ()
131120 # might be set to on by default when llvm/clang 3.6 are released
132121 # option(ITK_USE_SYSTEM_LLVM "Use system llvm and clang. If OFF, llvm and clang are built as external projects." ON)
@@ -146,43 +135,79 @@ else()
146135 itk_download_attempt_check(LLVM)
147136 itk_download_attempt_check(Clang)
148137 endif ()
149- set (llvm_version 11.1.0)
150- set (llvm_folder ${llvm_version} )
151- set (llvm_md5 69bc06661ce8f1872e27b40ff96002b2)
152- ExternalProject_Add(
153- llvm
138+ set (llvm_version 18.1.3)
139+ set (llvm_folder 18.1.3)
140+ set (LLVM_DIR ${CMAKE_CURRENT_BINARY_DIR} /llvm/lib/cmake/llvm/)
141+
142+ if (${CMAKE_VERSION} VERSION_LESS 3.24)
143+ set (download_extract_timestamp_flag)
144+ else ()
145+ set (download_extract_timestamp_flag DOWNLOAD_EXTRACT_TIMESTAMP TRUE )
146+ endif ()
147+
148+ set (llvm_cmake_sha256 acfecb615d41c5b1a0a31e15324994ca06f7a3f37d8958d719b20de0d217b71b)
149+ ExternalProject_Add(llvm-cmake
150+ URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder} /cmake-${llvm_version} .src.tar.xz"
151+ URL_HASH SHA256=${llvm_cmake_sha256}
152+ CONFIGURE_COMMAND ""
153+ BUILD_COMMAND ""
154+ INSTALL_COMMAND ""
155+ ${download_extract_timestamp_flag}
156+ LOG_BUILD 0
157+ SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR} /llvm-prefix /src/cmake
158+ )
159+
160+ set (llvm_sha256 fa6db8951f5ef576ac6bad43d5e1ed83962754538c998fbfa0397cd4521abc00)
161+ ExternalProject_Add(llvm
154162 URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder} /llvm-${llvm_version} .src.tar.xz"
155- URL_MD5 ${llvm_md5 }
156- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR} / llvm-${llvm_version}
163+ URL_HASH SHA256= ${llvm_sha256 }
164+ DEPENDS llvm-cmake
157165 CMAKE_ARGS -Wno-dev
158166 CMAKE_GENERATOR "${CMAKE_GENERATOR} "
159167 CMAKE_CACHE_ARGS
160- ${compiler_information}
168+ -DCMAKE_CXX_COMPILER:FILEPATH =${CMAKE_CXX_COMPILER}
169+ -DCMAKE_CXX_STANDARD:STRING =${CMAKE_CXX_STANDARD}
170+ -DCMAKE_C_COMPILER:FILEPATH =${CMAKE_C_COMPILER}
171+ -DLLVM_STATIC_LINK_CXX_STDLIB:BOOL =ON
161172 -DCMAKE_BUILD_TYPE:STRING =${CMAKE_BUILD_TYPE}
162173 -DCMAKE_INSTALL_PREFIX:PATH =<INSTALL_DIR>
174+ -DLLVM_INSTALL_PREFIX:PATH =<INSTALL_DIR>
163175 -DLLVM_ENABLE_TERMINFO:BOOL =OFF
164176 -DLLVM_INCLUDE_TESTS:BOOL =OFF
165- -DLLVM_INCLUDE_EXAMPLES :BOOL =OFF
177+ -DLLVM_INCLUDE_BENCHMARKS :BOOL =OFF
166178 -DLLVM_INCLUDE_DOCS:BOOL =OFF
167- INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR} /llvm)
168- set (clang_md5 133c6719e22bfded74fcaf1d3092e979)
169- ExternalProject_Add(
170- clang
171- URL https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder} /clang-${llvm_version} .src.tar.xz
172- URL_MD5 ${clang_md5}
179+ -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN:BOOL =ON
180+ ${download_extract_timestamp_flag}
181+ LOG_BUILD 0
182+ INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR} /llvm
183+ )
184+
185+
186+ set (clang_sha256 e43e1729713ac0241aa026fa2f98bb54e74a196a6fed60ab4819134a428eb6d8)
187+ ExternalProject_Add(clang
188+ URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder} /clang-${llvm_version} .src.tar.xz"
189+ URL_HASH SHA256=${clang_sha256}
173190 DEPENDS llvm
174- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR} /cfe-${llvm_version}
191+ SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR} /llvm- prefix /src/ cfe-${llvm_version}
175192 CMAKE_ARGS -Wno-dev
176193 CMAKE_GENERATOR "${CMAKE_GENERATOR} "
177194 CMAKE_CACHE_ARGS
178- ${compiler_information}
195+ -DCMAKE_CXX_COMPILER:FILEPATH =${CMAKE_CXX_COMPILER}
196+ -DCMAKE_CXX_STANDARD:STRING =${CMAKE_CXX_STANDARD}
197+ -DCMAKE_C_COMPILER:FILEPATH =${CMAKE_C_COMPILER}
179198 -DCMAKE_BUILD_TYPE:STRING =${CMAKE_BUILD_TYPE}
180199 -DCMAKE_INSTALL_PREFIX:PATH =<INSTALL_DIR>
181200 -DCLANG_INCLUDE_DOCS:BOOL =OFF
182201 -DCLANG_INCLUDE_TESTS:BOOL =OFF
183- -DLLVM_CONFIG:PATH =${CMAKE_CURRENT_BINARY_DIR} /llvm/bin/llvm-config${exe}
184- INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR} /llvm)
185- set (LLVM_DIR ${CMAKE_CURRENT_BINARY_DIR} /llvm/lib/cmake/llvm/)
202+ -DLLVM_INCLUDE_TESTS:BOOL =OFF
203+ -DLLVM_CONFIG:PATH =${CMAKE_CURRENT_BINARY_DIR} /llvm/bin/llvm-config
204+ -DLLVM_DIR:PATH =${LLVM_DIR}
205+ -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN:BOOL =ON
206+ ${download_extract_timestamp_flag}
207+ LOG_BUILD 0
208+ INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR} /llvm
209+ )
210+
186211 set (castxml_deps llvm clang)
187212 endif ()
188213
@@ -200,6 +225,7 @@ else()
200225 CMAKE_GENERATOR "${CMAKE_GENERATOR} "
201226 CMAKE_CACHE_ARGS
202227 ${compiler_information}
228+ -DCMAKE_CXX_STANDARD:STRING =${CMAKE_CXX_STANDARD}
203229 -DCMAKE_BUILD_TYPE:STRING =${CMAKE_BUILD_TYPE}
204230 -DCMAKE_INSTALL_PREFIX:PATH =<INSTALL_DIR>
205231 -DLLVM_DIR:PATH =${LLVM_DIR}
0 commit comments