Skip to content

Commit 8c75b36

Browse files
authored
Update MacOS x86 runners to macos-15 (#170)
1 parent 354e1fb commit 8c75b36

File tree

2 files changed

+40
-142
lines changed

2 files changed

+40
-142
lines changed

.github/workflows/MacOS.yml

Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,22 @@ jobs:
4444
cling-version: '1.2'
4545
llvm_enable_projects: "clang"
4646
llvm_targets_to_build: "host;NVPTX"
47-
- name: osx13-x86-clang-clang-repl-19
48-
os: macos-13
47+
- name: osx15-x86-clang-clang-repl-19
48+
os: macos-15-intel
4949
compiler: clang
5050
clang-runtime: '19'
5151
cling: Off
5252
llvm_enable_projects: "clang"
5353
llvm_targets_to_build: "host"
54-
- name: osx13-x86-clang-clang-repl-18
55-
os: macos-13
54+
- name: osx15-x86-clang-clang-repl-18
55+
os: macos-15-intel
5656
compiler: clang
5757
clang-runtime: '18'
5858
cling: Off
5959
llvm_enable_projects: "clang"
6060
llvm_targets_to_build: "host"
61-
- name: osx13-x86-clang-clang18-cling
62-
os: macos-13
61+
- name: osx15-x86-clang-clang18-cling
62+
os: macos-15-intel
6363
compiler: clang
6464
clang-runtime: '18'
6565
cling: On
@@ -268,20 +268,20 @@ jobs:
268268
cling: On
269269
cling-version: '1.2'
270270
cppyy: On
271-
- name: osx13-x86-clang-clang-repl-19-cppyy
272-
os: macos-13
271+
- name: osx15-x86-clang-clang-repl-19-cppyy
272+
os: macos-15-intel
273273
compiler: clang
274274
clang-runtime: '19'
275275
cling: Off
276276
cppyy: On
277-
- name: osx13-x86-clang-clang-repl-18-cppyy
278-
os: macos-13
277+
- name: osx15-x86-clang-clang-repl-18-cppyy
278+
os: macos-15-intel
279279
compiler: clang
280280
clang-runtime: '18'
281281
cling: Off
282282
cppyy: On
283-
- name: osx13-x86-clang-clang18-cling-cppyy
284-
os: macos-13
283+
- name: osx15-x86-clang-clang18-cling-cppyy
284+
os: macos-15-intel
285285
compiler: clang
286286
clang-runtime: '18'
287287
cling: On
@@ -350,31 +350,16 @@ jobs:
350350
echo "CC=gcc-${vers}" >> $GITHUB_ENV
351351
echo "CXX=g++-${vers}" >> $GITHUB_ENV
352352
else
353-
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
354-
export ARCHITECHURE=$(uname -m)
355-
if [[ "$ARCHITECHURE" == "arm64" ]]; then
356-
cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]')
357-
if [[ "${cling_on}" == "ON" ]]; then
358-
brew install llvm@15
359-
brew remove llvm@18
360-
brew cleanup
361-
#FIXME: Do not believe setting all these environment variables are necessary
362-
# They were set to avoid using Xcodes libc++ and to stop CppInterOp using llvm@18 in tests
363-
echo 'LDFLAGS="-L/opt/homebrew/opt/llvm@15/lib/ -L/opt/homebrew/opt/llvm@15/c++/"' >> $GITHUB_ENV
364-
echo 'CPPFLAGS="-I/opt/homebrew/opt/llvm@15/include"' >> $GITHUB_ENV
365-
echo 'CPATH="/opt/homebrew/include/"' >> $GITHUB_ENV
366-
echo 'LIBRARY_PATH="/opt/homebrew/lib/"' >> $GITHUB_ENV
367-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
368-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
369-
else
370-
echo "CC=$(brew --prefix llvm@18)/bin/clang" >> $GITHUB_ENV
371-
echo "CXX=$(brew --prefix llvm@18)/bin/clang++" >> $GITHUB_ENV
372-
fi
353+
brew install llvm@15
354+
if [[ "$(uname -m)" == "x86_64" ]]; then
355+
echo "CC=/usr/local/opt/llvm@15/bin/clang" >> $GITHUB_ENV
356+
echo "CXX=/usr/local/opt/llvm@15/bin/clang++" >> $GITHUB_ENV
373357
else
374-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
375-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
358+
echo "CC=/opt/homebrew/opt/llvm@15/bin/clang" >> $GITHUB_ENV
359+
echo "CXX=/opt/homebrew/opt/llvm@15/bin/clang++" >> $GITHUB_ENV
376360
fi
377361
fi
362+
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
378363
env:
379364
compiler: ${{ matrix.compiler }}
380365

.github/workflows/emscripten.yml

Lines changed: 21 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ jobs:
4545
llvm_enable_projects: "clang;lld"
4646
llvm_targets_to_build: "WebAssembly"
4747
emsdk_ver: "3.1.73"
48-
- name: osx13-x86-clang-clang-repl-19-emscripten
49-
os: macos-13
48+
- name: osx15-x86-clang-clang-repl-19-emscripten
49+
os: macos-15-intel
5050
compiler: clang
5151
clang-runtime: '19'
5252
cling: Off
@@ -131,18 +131,6 @@ jobs:
131131
git clone --depth=1 https://github.com/emscripten-core/emsdk.git
132132
./emsdk/emsdk install ${{ matrix.emsdk_ver }}
133133
134-
- name: Setup default Build Type on *nux
135-
if: ${{ runner.os != 'windows' && steps.cache.outputs.cache-hit != 'true' }}
136-
run: |
137-
echo "BUILD_TYPE=Release" >> $GITHUB_ENV
138-
echo "CODE_COVERAGE=0" >> $GITHUB_ENV
139-
os="${{ matrix.os }}"
140-
if [[ "${os}" == "macos"* ]]; then
141-
echo "ncpus=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV
142-
else
143-
echo "ncpus=$(nproc --all)" >> $GITHUB_ENV
144-
fi
145-
146134
- name: Setup default Build Type on Windows
147135
if: ${{ runner.os == 'windows' && steps.cache.outputs.cache-hit != 'true' }}
148136
run: |
@@ -151,97 +139,12 @@ jobs:
151139
$env:ncpus=$([Environment]::ProcessorCount)
152140
echo "ncpus=$env:ncpus" >> $env:GITHUB_ENV
153141
154-
- name: Setup compiler on Linux
155-
if: ${{ runner.os == 'Linux' && steps.cache.outputs.cache-hit != 'true' }}
156-
run: |
157-
# https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
158-
vers="${compiler#*-}"
159-
os_codename="`cat /etc/os-release | grep UBUNTU_CODENAME | cut -d = -f 2`"
160-
##sudo apt update
161-
if [[ "${{ matrix.compiler }}" == *"gcc"* ]]; then
162-
sudo apt install -y gcc-${vers} g++-${vers} lld
163-
echo "CC=gcc-${vers}" >> $GITHUB_ENV
164-
echo "CXX=g++-${vers}" >> $GITHUB_ENV
165-
else
166-
if ! sudo apt install -y clang-${vers}; then
167-
curl https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
168-
echo "deb https://apt.llvm.org/${os_codename}/ llvm-toolchain-${os_codename}-${vers} main" | sudo tee -a /etc/apt/sources.list
169-
sudo apt-get update
170-
sudo apt-get install -y clang-${vers}
171-
fi
172-
echo "CC=clang-${vers}" >> $GITHUB_ENV
173-
echo "CXX=clang++-${vers}" >> $GITHUB_ENV
174-
fi
175-
env:
176-
compiler: ${{ matrix.compiler }}
177-
178-
- name: Setup compiler on macOS
179-
if: ${{ runner.os == 'macOS' && steps.cache.outputs.cache-hit != 'true' }}
180-
run: |
181-
vers="${compiler#*-}"
182-
if [[ "${{ matrix.compiler }}" == *"gcc"* ]]; then
183-
brew install "gcc@$vers"
184-
echo "CC=gcc-${vers}" >> $GITHUB_ENV
185-
echo "CXX=g++-${vers}" >> $GITHUB_ENV
186-
else
187-
export ARCHITECHURE=$(uname -m)
188-
if [[ "$ARCHITECHURE" == "arm64" ]]; then
189-
cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]')
190-
if [[ "${cling_on}" == "ON" ]]; then
191-
brew install llvm@15
192-
brew remove llvm@18
193-
brew cleanup
194-
#FIXME: Do not believe setting all these environment variables are necessary
195-
# They were set to avoid using Xcodes libc++ and to stop CppInterOp using llvm@18 in tests
196-
echo 'LDFLAGS="-L/opt/homebrew/opt/llvm@15/lib/ -L/opt/homebrew/opt/llvm@15/c++/"' >> $GITHUB_ENV
197-
echo 'CPPFLAGS="-I/opt/homebrew/opt/llvm@15/include"' >> $GITHUB_ENV
198-
echo 'CPATH="/opt/homebrew/include/"' >> $GITHUB_ENV
199-
echo 'LIBRARY_PATH="/opt/homebrew/lib/"' >> $GITHUB_ENV
200-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
201-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
202-
else
203-
echo "CC=$(brew --prefix llvm@18)/bin/clang" >> $GITHUB_ENV
204-
echo "CXX=$(brew --prefix llvm@18)/bin/clang++" >> $GITHUB_ENV
205-
fi
206-
else
207-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
208-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
209-
fi
210-
fi
211-
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
212-
env:
213-
compiler: ${{ matrix.compiler }}
214-
215-
#Section slightly modified version of
216-
#https://github.com/vgvassilev/clad/blob/40d8bec11bde47b14a281078183a4f6147abeac5/.github/workflows/ci.yml#L510C1-L534C10
217-
- name: Setup compiler on Windows
218-
if: ${{ runner.os == 'windows' && steps.cache.outputs.cache-hit != 'true' }}
219-
run: |
220-
if ( "${{ matrix.compiler }}" -imatch "clang" )
221-
{
222-
$ver="${{ matrix.compiler }}".split("-")[1]
223-
choco install llvm --version=$ver --no-progress -my
224-
clang --version
225-
#
226-
$env:CC="clang"
227-
$env:CXX="clang++"
228-
echo "CC=clang" >> $env:GITHUB_ENV
229-
echo "CXX=clang++" >> $env:GITHUB_ENV
230-
}
231-
elseif ( "${{ matrix.compiler }}" -imatch "msvc" )
232-
{
233-
# MSVC is builtin in container image
234-
}
235-
else
236-
{
237-
echo "Unsupported compiler - fix YAML file"
238-
}
239-
240142
- name: Install deps on Windows
241143
if: ${{ runner.os == 'windows' && steps.cache.outputs.cache-hit != 'true' }}
242144
run: |
243-
choco install findutils
145+
choco install findutils ninja
244146
$env:PATH="C:\Program Files (x86)\GnuWin32\bin;$env:PATH"
147+
$env:PATH="C:\Program Files (x86)\Ninja\bin;$env:PATH"
245148
246149
- name: Install deps on MacOS
247150
if: ${{ runner.os == 'macOS' && steps.cache.outputs.cache-hit != 'true' }}
@@ -256,9 +159,7 @@ jobs:
256159
brew unlink "$pkg"
257160
brew link --overwrite "$pkg"
258161
done
259-
brew upgrade openssl >/dev/null 2>&1
260162
brew install ninja
261-
brew upgrade
262163
263164
- name: Install deps on Linux
264165
if: ${{ runner.os == 'Linux' && steps.cache.outputs.cache-hit != 'true' }}
@@ -286,6 +187,12 @@ jobs:
286187
fi
287188
cd llvm-project
288189
# Build
190+
mkdir native_build
191+
cd native_build
192+
cmake -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=host -DCMAKE_BUILD_TYPE=Release ../llvm/
193+
cmake --build . --target llvm-tblgen clang-tblgen --parallel $(nproc --all)
194+
export NATIVE_DIR=$PWD/bin/
195+
cd ..
289196
mkdir build
290197
if [[ "${cling_on}" == "ON" ]]; then
291198
cd build
@@ -313,14 +220,13 @@ jobs:
313220
else
314221
# Apply patches
315222
llvm_vers=$(echo "${{ matrix.clang-runtime }}" | tr '[:lower:]' '[:upper:]')
316-
if [[ "${llvm_vers}" == "19" ]]; then
223+
if [[ "${llvm_vers}" == "19" || "${llvm_vers}" == "20" ]]; then
317224
git apply -v ${{ github.workspace }}/CppInterOp/patches/llvm/emscripten-clang${{ matrix.clang-runtime }}-*.patch
318225
echo "Apply emscripten-clang${{ matrix.clang-runtime }}-*.patch patches:"
319226
fi
320227
cd build
321228
emcmake cmake -DCMAKE_BUILD_TYPE=Release \
322229
-DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \
323-
-DLLVM_ENABLE_ASSERTIONS=ON \
324230
-DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" \
325231
-DLLVM_ENABLE_LIBEDIT=OFF \
326232
-DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" \
@@ -334,9 +240,16 @@ jobs:
334240
-DLLVM_INCLUDE_EXAMPLES=OFF \
335241
-DLLVM_INCLUDE_TESTS=OFF \
336242
-DLLVM_ENABLE_THREADS=OFF \
243+
-DLLVM_BUILD_TOOLS=OFF \
244+
-DLLVM_ENABLE_LIBPFM=OFF \
245+
-DCLANG_BUILD_TOOLS=OFF \
337246
-G Ninja \
247+
-DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \
248+
-DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
249+
-DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
250+
-DLLVM_ENABLE_LTO=Full \
338251
../llvm
339-
emmake ninja clang clang-repl lld -j ${{ env.ncpus }}
252+
emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm
340253
fi
341254
cd ../
342255
rm -rf $(find . -maxdepth 1 ! -name "build" ! -name "llvm" ! -name "clang" ! -name ".")
@@ -486,8 +399,8 @@ jobs:
486399
cling: Off
487400
micromamba_shell_init: bash
488401
emsdk_ver: "3.1.73"
489-
- name: osx13-x86-clang-clang-repl-19-emscripten_wasm
490-
os: macos-13
402+
- name: osx15-x86-clang-clang-repl-19-emscripten_wasm
403+
os: macos-15-intel
491404
compiler: clang
492405
clang-runtime: '19'
493406
cling: Off

0 commit comments

Comments
 (0)