Skip to content

Commit 092eed3

Browse files
authored
Merge pull request #55 from thewtex/version-bumps
Version bumps
2 parents 7846d56 + 7cbabcd commit 092eed3

File tree

7 files changed

+172
-171
lines changed

7 files changed

+172
-171
lines changed

.github/workflows/ci.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: CI
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build:
7+
strategy:
8+
matrix:
9+
os: [ubuntu-22.04, macos-12, macos-14, windows-2022]
10+
11+
runs-on: ${{ matrix.os }}
12+
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- name: Install ninja
17+
shell: bash
18+
run: |
19+
if [[ "${{ runner.os }}" == "macOS" ]]; then
20+
brew install ninja
21+
elif [[ "${{ runner.os }}" == "Linux" ]]; then
22+
sudo apt-get -y update
23+
sudo apt-get -y install ninja-build
24+
fi
25+
26+
- name: Build
27+
if: matrix.os != 'windows-2022'
28+
run: |
29+
cmake -Bbuild -S. -GNinja
30+
ninja -Cbuild
31+
32+
- name: Build
33+
if: matrix.os == 'windows-2022'
34+
shell: cmd
35+
run: |
36+
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
37+
cmake -Bbuild -S. -GNinja
38+
ninja -Cbuild
39+
40+
- name: Test
41+
run: |
42+
cd build/castxml-prefix/src/castxml-build
43+
ctest --output-on-failure
44+
45+
- name: Archive
46+
shell: cmd
47+
run: |
48+
cd build
49+
if [[ "${{ runner.os }}" == "Windows" ]]; then
50+
7z a castxml-windows.zip castxml
51+
mv castxml-windows.zip ..
52+
else
53+
tar cvf castxml-${{ matrix.os }}.tar castxml
54+
gzip -9 castxml-${{ matrix.os }}.tar
55+
mv castxml-${{ matrix.os }}.tar.gz ..
56+
fi
57+
58+
- name: Upload artifact
59+
uses: actions/upload-artifact@v4
60+
with:
61+
name: ${{ matrix.os }}-archive
62+
path: ./castxml-${{ matrix.os }}.*

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
dockcross-x64
2+
castxml-linux.tar.gz
3+
castxml-linux-aarch64.tar.gz

CMakeLists.txt

Lines changed: 47 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.10)
1+
cmake_minimum_required(VERSION 3.20)
22

33
project(CastXMLSuperbuild NONE)
44
# Set a default build type if none was specified
@@ -12,32 +12,24 @@ enable_language(C)
1212
enable_language(CXX)
1313

1414

15-
# Use a static runtime with MSVC
16-
if(MSVC)
17-
foreach(flag
18-
CMAKE_CXX_FLAGS
19-
CMAKE_CXX_FLAGS_RELEASE
20-
CMAKE_C_FLAGS
21-
CMAKE_C_FLAGS_RELEASE
22-
)
23-
if(${flag} MATCHES "/MD")
24-
string(REGEX REPLACE "/MD" "/MT" ${flag} "${${flag}}")
25-
endif()
26-
endforeach()
27-
else()
28-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
29-
endif()
15+
set(CMAKE_CXX_STANDARD "17")
3016

3117

3218
if(APPLE)
3319
set(osx_args
34-
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9
20+
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.11
3521
)
3622
endif()
3723

3824

3925
include(ExternalProject)
4026

27+
if(${CMAKE_VERSION} VERSION_LESS 3.24)
28+
set(download_extract_timestamp_flag)
29+
else()
30+
set(download_extract_timestamp_flag DOWNLOAD_EXTRACT_TIMESTAMP TRUE)
31+
endif()
32+
4133
find_program(NINJA_EXECUTABLE ninja)
4234
if(NINJA_EXECUTABLE)
4335
set(CMAKE_GENERATOR "Ninja")
@@ -51,74 +43,87 @@ if(USE_SYSTEM_LLVM)
5143
set(castxml_deps)
5244
else()
5345

54-
set(llvm_version 13.0.0)
55-
set(llvm_folder 13.0.0)
56-
set(llvm_md5 8c24626dce3ee9d87d1079ebf0897db5)
46+
set(llvm_version 18.1.3)
47+
set(llvm_folder 18.1.3)
48+
set(LLVM_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm/lib/cmake/llvm/)
49+
50+
set(llvm_cmake_sha256 acfecb615d41c5b1a0a31e15324994ca06f7a3f37d8958d719b20de0d217b71b)
51+
ExternalProject_Add(llvm-cmake
52+
URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder}/cmake-${llvm_version}.src.tar.xz"
53+
URL_HASH SHA256=${llvm_cmake_sha256}
54+
CONFIGURE_COMMAND ""
55+
BUILD_COMMAND ""
56+
INSTALL_COMMAND ""
57+
${download_extract_timestamp_flag}
58+
LOG_BUILD 0
59+
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm-prefix/src/cmake
60+
)
61+
62+
set(llvm_sha256 fa6db8951f5ef576ac6bad43d5e1ed83962754538c998fbfa0397cd4521abc00)
5763
ExternalProject_Add(llvm
58-
URL https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder}/llvm-${llvm_version}.src.tar.xz
59-
URL_MD5 ${llvm_md5}
64+
URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder}/llvm-${llvm_version}.src.tar.xz"
65+
URL_HASH SHA256=${llvm_sha256}
66+
DEPENDS llvm-cmake
6067
CMAKE_ARGS -Wno-dev
6168
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
6269
CMAKE_CACHE_ARGS
6370
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
64-
"-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} -w"
65-
"-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}"
71+
-DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
6672
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
67-
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} -w"
68-
"-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}"
73+
-DLLVM_STATIC_LINK_CXX_STDLIB:BOOL=ON
6974
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
70-
-DLLVM_USE_CRT_RELEASE:STRING=MT
7175
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
76+
-DLLVM_INSTALL_PREFIX:PATH=<INSTALL_DIR>
7277
-DLLVM_ENABLE_TERMINFO:BOOL=OFF
7378
-DLLVM_INCLUDE_TESTS:BOOL=OFF
74-
-DLLVM_INCLUDE_EXAMPLES:BOOL=OFF
79+
-DLLVM_INCLUDE_BENCHMARKS:BOOL=OFF
7580
-DLLVM_INCLUDE_DOCS:BOOL=OFF
7681
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN:BOOL=ON
7782
${osx_args}
7883
${verbose_command}
84+
${download_extract_timestamp_flag}
7985
LOG_BUILD 0
8086
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm
8187
)
8288

8389

84-
set(clang_md5 020cbac6e5786094fe4f96f72e290763)
90+
set(clang_sha256 e43e1729713ac0241aa026fa2f98bb54e74a196a6fed60ab4819134a428eb6d8)
8591
ExternalProject_Add(clang
86-
URL https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder}/clang-${llvm_version}.src.tar.xz
87-
URL_MD5 ${clang_md5}
92+
URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${llvm_folder}/clang-${llvm_version}.src.tar.xz"
93+
URL_HASH SHA256=${clang_sha256}
8894
DEPENDS llvm
89-
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/cfe-${llvm_version}
95+
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm-prefix/src/cfe-${llvm_version}
9096
CMAKE_ARGS -Wno-dev
9197
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
9298
CMAKE_CACHE_ARGS
9399
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
94-
"-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} -w"
95-
"-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}"
100+
-DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
96101
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
97-
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} -w"
98-
"-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}"
99102
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
100103
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
101104
-DCLANG_INCLUDE_DOCS:BOOL=OFF
102105
-DCLANG_INCLUDE_TESTS:BOOL=OFF
106+
-DLLVM_INCLUDE_TESTS:BOOL=OFF
103107
-DLLVM_CONFIG:PATH=${CMAKE_CURRENT_BINARY_DIR}/llvm/bin/llvm-config
108+
-DLLVM_DIR:PATH=${LLVM_DIR}
104109
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN:BOOL=ON
105110
${osx_args}
106111
${verbose_command}
112+
${download_extract_timestamp_flag}
107113
LOG_BUILD 0
108114
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm
109115
)
110116

111117
set(castxml_deps llvm clang)
112-
set(LLVM_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm/lib/cmake/llvm/)
113118
endif()
114119

115120

116121
# Use a static C++ library on GCC/Linux
117122
if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_NAME MATCHES "Linux")
118-
set(extra_flags "-static-libstdc++")
123+
set(linux_args "-DCMAKE_CXX_FLAGS:STRING=-static-libstdc++")
119124
endif()
120-
# 2022-12-06 master
121-
set(CastXML_GIT_TAG v0.5.0 CACHE STRING "CastXML Git revision.")
125+
# 2024-04-12 master
126+
set(CastXML_GIT_TAG v0.6.5 CACHE STRING "CastXML Git revision.")
122127
ExternalProject_Add(castxml
123128
GIT_REPOSITORY https://github.com/CastXML/CastXML.git
124129
GIT_TAG ${CastXML_GIT_TAG}
@@ -127,15 +132,13 @@ ExternalProject_Add(castxml
127132
CMAKE_GENERATOR "${CMAKE_GENERATOR}"
128133
CMAKE_CACHE_ARGS
129134
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
130-
"-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} -w ${extra_flags}"
131-
"-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}"
135+
-DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
132136
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
133-
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} -w"
134-
"-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}"
135137
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
136138
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
137139
-DLLVM_DIR:PATH=${LLVM_DIR}
138140
${osx_args}
141+
${linux_args}
139142
${verbose_command}
140143
LOG_BUILD 0
141144
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/castxml

azure-pipelines.yml

Lines changed: 0 additions & 102 deletions
This file was deleted.

centos-build.sh

Lines changed: 0 additions & 25 deletions
This file was deleted.

0 commit comments

Comments
 (0)