77 strategy :
88 fail-fast : false
99 matrix :
10- arch : [ x86_64 ]
10+ arch : [ x86_64, aarch64 ]
1111 os : [ windows, macos, linux ]
12- version : [ 12 ]
12+ version : [ 12.0.1 ]
1313
1414 include :
15- - version : 12
15+ - version : 12.0.1
1616 branch : release/12.x
1717
1818 - os : windows
2525 - arch : x86_64
2626 os : windows
2727 msvc : amd64
28+ - arch : aarch64
29+ os : windows
30+ msvc : amd64_arm64
31+
32+ - arch : x86_64
33+ os : macos
34+ osx_arch : x86_64
35+ - arch : aarch64
36+ os : macos
37+ osx_arch : arm64
38+
39+ - arch : aarch64
40+ os : linux
2841 steps :
2942 - name : Configure Windows runner
3043 if : runner.os == 'Windows'
@@ -33,22 +46,27 @@ jobs:
3346
3447 - name : Configure macOS runner
3548 if : runner.os == 'macOS'
36- env :
37- CMAKE_OSX_DEPLOYMENT_TARGET : " 10.12"
3849 run : |
3950 brew install ninja
51+ echo "MACOSX_DEPLOYMENT_TARGET=10.12" >> $GITHUB_ENV
4052
4153 - name : Configure Ubuntu runner
4254 if : runner.os == 'Linux'
4355 run : |
4456 sudo apt update
4557 sudo apt install xz-utils libxml2-dev
46- sudo apt install ninja-build ${{matrix.multilib}}
58+ sudo apt install ninja-build
59+ sudo apt install g++-aarch64-linux-gnu
60+ mkdir libxml2-dev-arm64 && cd libxml2-dev-arm64
61+ wget http://ports.ubuntu.com/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-6.1ubuntu1.4_arm64.deb
62+ ar -x libxml2-dev_2.9.4+dfsg1-6.1ubuntu1.4_arm64.deb
63+ tar -xf data.tar.xz
64+ sudo cp -R ./usr/lib/aarch64-linux-gnu/ /usr/lib/aarch64-linux-gnu
4765
4866 - name : Clone project
4967 uses : actions/checkout@v2
5068 with :
51- path : llvm-nightlies
69+ path : llvm-prebuilt
5270
5371 - name : Clone LLVM ${{matrix.version}}
5472 uses : actions/checkout@v2
@@ -57,19 +75,53 @@ jobs:
5775 ref : ${{matrix.branch}}
5876 path : llvm-project
5977
60- - name : Enable Developer Command Prompt
78+ - name : Enable Windows host environment
79+ if : runner.os == 'Windows'
80+ uses : ilammy/msvc-dev-cmd@v1
81+ with :
82+ arch : amd64
83+
84+ - name : Configure LLVM host tools
85+ run : " cmake -G Ninja -S llvm-project/llvm -B llvm-host
86+ -DCMAKE_BUILD_TYPE=Release
87+ -DLLVM_ENABLE_PROJECTS=clang
88+ -DLLVM_INCLUDE_EXAMPLES=OFF
89+ -DLLVM_INCLUDE_TESTS=OFF
90+ -DLLVM_INCLUDE_DOCS=OFF
91+ -DLLVM_ENABLE_LIBXML2=OFF
92+ -DLLVM_ENABLE_TERMINFO=OFF
93+ -Wno-dev"
94+
95+ - name : Build LLVM host tools
96+ shell : pwsh
97+ run : |
98+ cmake --build llvm-host --target llvm-tblgen clang-tblgen llvm-config
99+ $HostBinPath = "$Env:GITHUB_WORKSPACE/llvm-host/bin"
100+ $ExeExt = if ($IsWindows) { ".exe" } else { "" }
101+ echo "LLVM_TABLEGEN=$HostBinPath/llvm-tblgen$ExeExt" >> $Env:GITHUB_ENV
102+ echo "CLANG_TABLEGEN=$HostBinPath/clang-tblgen$ExeExt" >> $Env:GITHUB_ENV
103+ echo "LLVM_CONFIG_PATH=$HostBinPath/llvm-config$ExeExt" >> $Env:GITHUB_ENV
104+
105+ - name : Set CMake toolchain file
106+ shell : pwsh
107+ run : |
108+ $ToolchainPath = "$Env:GITHUB_WORKSPACE/llvm-prebuilt/toolchains"
109+ $ToolchainName = "${{matrix.arch}}-${{matrix.os}}"
110+ echo "CMAKE_TOOLCHAIN_FILE=$ToolchainPath/$ToolchainName.cmake" >> $Env:GITHUB_ENV
111+
112+ - name : Enable Windows target environment
61113 if : runner.os == 'Windows'
62114 uses : ilammy/msvc-dev-cmd@v1
63115 with :
64116 arch : ${{matrix.msvc}}
65117
66118 - name : Configure LLVM
67- run : " cmake -G Ninja
119+ run : " cmake -G Ninja -S llvm-project/llvm -B llvm-build
68120 -DCMAKE_BUILD_TYPE=Release
69- \" -DCMAKE_TOOLCHAIN_FILE=${{matrix.CMAKE_TOOLCHAIN_FILE}}\"
70121 \" -DLLVM_TARGETS_TO_BUILD=X86;ARM;NVPTX;AArch64;Mips;Hexagon;PowerPC;WebAssembly\"
71122 \" -DLLVM_ENABLE_PROJECTS=clang;lld\"
72123 -DLLVM_BUILD_32_BITS=OFF
124+ -DLLVM_BUILD_LLVM_C_DYLIB=OFF
73125 -DLLVM_INCLUDE_EXAMPLES=OFF
74126 -DLLVM_INCLUDE_TESTS=OFF
75127 -DLLVM_INCLUDE_DOCS=OFF
78130 -DLLVM_ENABLE_EH=ON
79131 -DLLVM_ENABLE_LIBXML2=ON
80132 -DLLVM_ENABLE_TERMINFO=OFF
81- -S llvm-project/llvm -B llvm-build"
133+ -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
134+ -Wno-dev"
82135
83136 - name : Build LLVM
84137 run : cmake --build llvm-build
0 commit comments