88 build :
99 strategy :
1010 matrix :
11- clang-version : [ 3.9, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]
12- os : [ linux, macosx, windows ]
11+ clang-version : [ 12 ]
12+ os : [ linux ]
1313 include :
14- - clang-version : 3.9
15- release : llvm-project-3.9.1
16- - clang-version : 4
17- release : llvm-project-4.0.1
18- - clang-version : 5
19- release : llvm-project-5.0.2
20- - clang-version : 6
21- release : llvm-project-6.0.1
22- - clang-version : 7
23- release : llvm-project-7.1.0
24- - clang-version : 8
25- release : llvm-project-8.0.1
26- extra-cmake-args : ' -DCLANG_ANALYZER_ENABLE_Z3_SOLVER=OFF'
27- - clang-version : 9
28- release : llvm-project-9.0.1
29- extra-cmake-args : ' -DLLVM_ENABLE_Z3_SOLVER=OFF'
30- - clang-version : 10
31- release : llvm-project-10.0.1
32- extra-cmake-args : ' -DLLVM_ENABLE_Z3_SOLVER=OFF'
33- - clang-version : 11
34- release : llvm-project-11.1.0.src
3514 - clang-version : 12
3615 release : llvm-project-12.0.0.src
3716 - os : linux
@@ -41,96 +20,22 @@ jobs:
4120 bindir : ' /build/bin'
4221 dotexe : ' '
4322 shacmd : ' sha512sum'
44- - os : macosx
45- runner : macos-latest
46- os-cmake-args : ' -DCMAKE_CXX_FLAGS="-static-libgcc -static-libstdc++ -flto" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 ${POSIX_CMAKE_ARGS}'
47- build-args : ' -j$(sysctl -n hw.ncpu)'
48- bindir : ' /build/bin'
49- dotexe : ' '
50- shacmd : ' shasum -a512'
51- - os : windows
52- runner : windows-latest
53- os-cmake-args : ' -Thost=x64 -DCMAKE_CXX_FLAGS="/MP /std:c++14" -DLLVM_USE_CRT_MINSIZEREL="MT"'
54- build-args : ' --config MinSizeRel'
55- bindir : ' /build/MinSizeRel/bin'
56- dotexe : ' .exe'
57- shacmd : ' sha512sum.exe'
58- extra-tar-args : ' --exclude=${RELEASE}/clang/test/Driver/Inputs/* --exclude=${RELEASE}/libcxx/test/std/input.output/filesystems/Inputs/static_test_env/* --exclude=${RELEASE}/libclc/amdgcn-mesa3d'
59- extra-tar-args-cfe : ' --exclude=cfe-${version}.src/test/Driver/Inputs/*'
6023 runs-on : ${{ matrix.runner }}
6124 env :
6225 COMMON_CMAKE_ARGS : ' -DBUILD_SHARED_LIBS=OFF -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra"'
6326 POSIX_CMAKE_ARGS : ' -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_CXX_COMPILER=g++-10 -DCMAKE_C_COMPILER=gcc-10'
6427 RELEASE : ' ${{ matrix.release }}'
6528 suffix : ' ${{ matrix.clang-version }}_${{ matrix.os }}-amd64'
6629 steps :
67- - name : download patches
68- # we download a tarball of this repo, as the presence of a .git directory leaks
69- # the commit hash of this repository into the clang binaries
70- shell : bash
71- run : curl -L https://github.com/${{ github.repository }}/archive/${{ github.ref }}.tar.gz | tar xvz --strip 1
72- - name : get llvm-project
73- if : ${{ matrix.clang-version < 7 }}
74- shell : bash
75- run : |
76- version=${RELEASE##llvm-project-}
77- curl -LO https://releases.llvm.org/${version}/llvm-${version}.src.tar.xz
78- curl -LO https://releases.llvm.org/${version}/cfe-${version}.src.tar.xz
79- curl -LO https://releases.llvm.org/${version}/clang-tools-extra-${version}.src.tar.xz
8030 - name : get llvm-project
81- if : ${{ matrix.clang-version == 7 || matrix.clang-version == 8 }}
82- shell : bash
83- run : |
84- version=${RELEASE##llvm-project-}
85- curl -LO https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-${version}.src.tar.xz
86- curl -LO https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/cfe-${version}.src.tar.xz
87- curl -LO https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/clang-tools-extra-${version}.src.tar.xz
88- - name : get llvm-project
89- if : ${{ matrix.clang-version >= 9 }}
9031 shell : bash
9132 run : |
9233 version=${RELEASE##llvm-project-}; version=${version%.src}
9334 curl -LO https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/${{ matrix.release }}.tar.xz
94-
9535 - name : unpack llvm-project
96- if : ${{ matrix.clang-version < 9 }}
97- shell : bash
98- run : |
99- version=${RELEASE##llvm-project-}
100- tar xf llvm-${version}.src.tar.xz
101- tar xf cfe-${version}.src.tar.xz ${{ matrix.extra-tar-args-cfe }}
102- tar xf clang-tools-extra-${version}.src.tar.xz
103- mkdir ${{ matrix.release }}
104- mv llvm-${version}.src ${{ matrix.release }}/llvm
105- mv cfe-${version}.src ${{ matrix.release }}/clang
106- mv clang-tools-extra-${version}.src ${{ matrix.release }}/clang-tools-extra
107- - name : move clang 3.9 sources
108- if : ${{ matrix.clang-version == 3.9 }}
109- run : |
110- mv ${{ matrix.release }}/clang ${{ matrix.release }}/llvm/tools/clang
111- mv ${{ matrix.release }}/clang-tools-extra ${{ matrix.release }}/llvm/tools/clang/tools/extra
112- - name : unpack llvm-project
113- if : ${{ matrix.clang-version >= 9 }}
11436 shell : bash
11537 run : |
11638 tar xf ${{ matrix.release }}.tar.xz ${{ matrix.extra-tar-args }}
117-
118- - name : patch clang-3.9 constify operator
119- if : ${{ matrix.clang-version == 3.9 && matrix.os == 'windows' }}
120- shell : bash
121- run : patch ${{ matrix.release }}/llvm/utils/TableGen/AsmWriterEmitter.cpp windows-clang-3.9_constify-operator.patch
122- - name : patch clang-8 includes
123- if : ${{ matrix.clang-version == 8 }}
124- shell : bash
125- run : patch ${{ matrix.release }}/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h include-cstdint-string-prior-to-using-uint8_t.patch
126- - name : patch trivially-copyable clang 9/10
127- if : ${{ ( matrix.clang-version == 9 || matrix.clang-version == 10 ) && matrix.os == 'windows' }}
128- shell : bash
129- run : patch ${{ matrix.release }}/llvm/cmake/config-ix.cmake windows-clang-9-10-trivially-copyable-mismatch.patch
130- - name : patch cmake implicit link libraries on macosx
131- if : ${{ matrix.os == 'macosx' }}
132- shell : bash
133- run : sed -i.backup 's/gcc_eh.\*|/gcc_eh.*|gcc_ext.*|/g' $(find /usr/local/Cellar -name CMakeParseImplicitLinkInfo.cmake)
13439 - name : cmake
13540 run : cmake -S ${{ matrix.release }}/llvm -B ${{ matrix.release }}/build ${{ env.COMMON_CMAKE_ARGS }} ${{ matrix.os-cmake-args }} ${{ matrix.extra-cmake-args }}
13641 - name : build
0 commit comments