Skip to content

Commit

Permalink
COMP: Bump CastXML to 0.6.5, LLVM to 18.1.3
Browse files Browse the repository at this point in the history
Better compiler and C++ standard compatibilty.
  • Loading branch information
thewtex committed Apr 15, 2024
1 parent a895d7f commit 44a6bee
Showing 1 changed file with 72 additions and 46 deletions.
118 changes: 72 additions & 46 deletions Wrapping/Generators/CastXML/CMakeLists.txt
Expand Up @@ -21,46 +21,36 @@ else()
set(_download_castxml_binaries 0)
set(_castxml_url)
set(_castxml_hash)
set(_castxml_version 0.4.8)
set(_castxml_version 0.6.5)

# If 64 bit Linux build host, use the CastXML binary
if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")

set(_castxml_hash
c8d57ee92078dd8e98cb6f1ec43618c5ed137cb3c3790352f99ca78ee3caa3918387293e20dc3f84661f0937d78989844c58ca985e840a772d9256c6626607f4
592fcb6c7f85b6a1670cef7e0692ec6d1c9ba2e250825032ed6dcf9581aa169540eded608510aa1208ea1174df48c16390ee7daf7a17c7114d93a83a8a8e109b
)
set(_castxml_url
"https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version}/castxml-linux.tar.gz")
set(_download_castxml_binaries 1)
elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64")

set(_castxml_hash
953bbaac7b3eabe31fa14ec18119d91989672a210e3844bb612bca7e83008305d9c46fe2c9fbef5c8fd1bc8282bc638960c5083e502e16209eb4973bca3cda8c
229d5339e217660f09dd87e2e639d666921a8c4e6c328a754dcae4290bba6bcac9d3b8e953814314ecdbf908d5d8e0d7dacbf1fdf6040a2e20d7acb98fb32f7d
)
set(_castxml_url
"https://data.kitware.com/api/v1/file/6617cf3c2357cf6b55ca8dd3/download"
)
"https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version}/castxml-linux-aarch64.tar.gz")
set(_download_castxml_binaries 1)

# If 64 bit Windows build host, use the CastXML binary
elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64")

if(CMAKE_HOST_SYSTEM_VERSION VERSION_GREATER_EQUAL 10.0.19044)
set(_castxml_hash
4f6e352a0c7dd2c52386de6af7fee04660ba2cc05fd73f94a2843858f761729a7bea96debf16e51ae52b95b87142f311a08857b852162bf0d204bde9bdc99555
)
set(_castxml_url
"https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version}/castxml-windows-win11.zip"
)
set(_download_castxml_binaries 1)
else()
set(_castxml_hash
5ad9e16bd2aadefff408e53d8b733597757788256640f9614393205713890dca881b490674c28866f79ca49aba7a42482f1e0fd30f90fead8abe852ef9d10f4f
)
set(_castxml_url
"https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version}/castxml-windows.zip")
set(_download_castxml_binaries 1)
endif()
set(_castxml_hash
7c1970ad6f2e5f06a8704606db92df3400c4cd9716f88cac604924430c7e6865f8256a67282d28005714f0ed0a42f7f6e386f24ce80fb075371902d35674c6cc
)
set(_castxml_url
"https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version}/castxml-windows.zip"
)
set(_download_castxml_binaries 1)

# If 64 bit Mac OS X build host ( >= 10.9, Mavericks), use the CastXML binary
elseif(
Expand All @@ -69,19 +59,19 @@ else()
AND (NOT
CMAKE_HOST_SYSTEM_VERSION
VERSION_LESS
"13.0.0"
"11.0.0"
))

set(_castxml_hash
0ff979f0659581534c7e53aa0a99ec9f0b541b160a8d664ce2f289d590517f2d8180376ccb98dfc75a3e718eb62831385dd32d48b83299e3b16414d1794b7c53
c6986a796ab9a4f4deaf569534d628cc584088aa8b0e56026ea5ba19550b8ceeb41c34f46a85566a21205d6bb529717ee8944cfa9a9c7c27edb0504eece5544a
)
set(_castxml_url
"https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version}/castxml-macosx.tar.gz")
set(_download_castxml_binaries 1)
elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64")

set(_castxml_hash
f9a1fd33c20327b9542c1c34b5e005b02c1515a038257fb6db8dc9add998d53c36035f85f419f78e74ca0d33b3a2a6cf45a9a6eb995377d7f64910a525d6e737
4c8c969f7e53cd758b516bada449b322d37ad19d6d46602660d83ece20ce07f3d55462493382a1c422048928962fd33f9704638e2e41637d1147473562a55f94
)
set(_castxml_url
"https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${_castxml_version}/castxml-macos-arm.tar.gz")
Expand Down Expand Up @@ -123,10 +113,9 @@ else()
set(compiler_information
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
${CMAKE_CXX_COMPILER_LAUNCHER_FLAG}
"-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} -w"
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
${CMAKE_C_COMPILER_LAUNCHER_FLAG}
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} -w")
)
endif()
# might be set to on by default when llvm/clang 3.6 are released
# option(ITK_USE_SYSTEM_LLVM "Use system llvm and clang. If OFF, llvm and clang are built as external projects." ON)
Expand All @@ -146,43 +135,79 @@ else()
itk_download_attempt_check(LLVM)
itk_download_attempt_check(Clang)
endif()
set(llvm_version 11.1.0)
set(llvm_folder ${llvm_version})
set(llvm_md5 69bc06661ce8f1872e27b40ff96002b2)
ExternalProject_Add(
llvm
set(llvm_version 18.1.3)
set(llvm_folder 18.1.3)
set(LLVM_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm/lib/cmake/llvm/)

if(${CMAKE_VERSION} VERSION_LESS 3.24)
set(download_extract_timestamp_flag)
else()
set(download_extract_timestamp_flag DOWNLOAD_EXTRACT_TIMESTAMP TRUE)
endif()

set(llvm_cmake_sha256 acfecb615d41c5b1a0a31e15324994ca06f7a3f37d8958d719b20de0d217b71b)
ExternalProject_Add(llvm-cmake
URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder}/cmake-${llvm_version}.src.tar.xz"
URL_HASH SHA256=${llvm_cmake_sha256}
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
${download_extract_timestamp_flag}
LOG_BUILD 0
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm-prefix/src/cmake
)

set(llvm_sha256 fa6db8951f5ef576ac6bad43d5e1ed83962754538c998fbfa0397cd4521abc00)
ExternalProject_Add(llvm
URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder}/llvm-${llvm_version}.src.tar.xz"
URL_MD5 ${llvm_md5}
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm-${llvm_version}
URL_HASH SHA256=${llvm_sha256}
DEPENDS llvm-cmake
CMAKE_ARGS -Wno-dev
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
CMAKE_CACHE_ARGS
${compiler_information}
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DLLVM_STATIC_LINK_CXX_STDLIB:BOOL=ON
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DLLVM_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DLLVM_ENABLE_TERMINFO:BOOL=OFF
-DLLVM_INCLUDE_TESTS:BOOL=OFF
-DLLVM_INCLUDE_EXAMPLES:BOOL=OFF
-DLLVM_INCLUDE_BENCHMARKS:BOOL=OFF
-DLLVM_INCLUDE_DOCS:BOOL=OFF
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm)
set(clang_md5 133c6719e22bfded74fcaf1d3092e979)
ExternalProject_Add(
clang
URL https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder}/clang-${llvm_version}.src.tar.xz
URL_MD5 ${clang_md5}
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN:BOOL=ON
${download_extract_timestamp_flag}
LOG_BUILD 0
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm
)


set(clang_sha256 e43e1729713ac0241aa026fa2f98bb54e74a196a6fed60ab4819134a428eb6d8)
ExternalProject_Add(clang
URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder}/clang-${llvm_version}.src.tar.xz"
URL_HASH SHA256=${clang_sha256}
DEPENDS llvm
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/cfe-${llvm_version}
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm-prefix/src/cfe-${llvm_version}
CMAKE_ARGS -Wno-dev
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
CMAKE_CACHE_ARGS
${compiler_information}
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DCLANG_INCLUDE_DOCS:BOOL=OFF
-DCLANG_INCLUDE_TESTS:BOOL=OFF
-DLLVM_CONFIG:PATH=${CMAKE_CURRENT_BINARY_DIR}/llvm/bin/llvm-config${exe}
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm)
set(LLVM_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm/lib/cmake/llvm/)
-DLLVM_INCLUDE_TESTS:BOOL=OFF
-DLLVM_CONFIG:PATH=${CMAKE_CURRENT_BINARY_DIR}/llvm/bin/llvm-config
-DLLVM_DIR:PATH=${LLVM_DIR}
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN:BOOL=ON
${download_extract_timestamp_flag}
LOG_BUILD 0
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm
)

set(castxml_deps llvm clang)
endif()

Expand All @@ -200,6 +225,7 @@ else()
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
CMAKE_CACHE_ARGS
${compiler_information}
-DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DLLVM_DIR:PATH=${LLVM_DIR}
Expand Down

0 comments on commit 44a6bee

Please sign in to comment.