Skip to content

Commit 52ed9cb

Browse files
chore: update build configuration for Ubuntu, Windows, and macOS with compiler caching
1 parent cf9df28 commit 52ed9cb

1 file changed

Lines changed: 44 additions & 24 deletions

File tree

.github/workflows/build.yml

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build VectorJS
1+
name: Build
22

33
on:
44
push:
@@ -7,57 +7,77 @@ on:
77
branches: [ "main", "master" ]
88

99
jobs:
10-
build-linux:
11-
name: Build on Ubuntu Linux
10+
build-ubuntu:
11+
name: Build on Ubuntu
1212
runs-on: ubuntu-latest
1313
steps:
1414
- name: Checkout repository
1515
uses: actions/checkout@v6
16-
- name: Install Linux Dependencies
16+
- name: Install ubuntu Dependencies
1717
run: |
1818
sudo apt-get update
19-
sudo apt-get install -y build-essential cmake g++-13 libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev
19+
sudo apt-get install -y build-essential cmake g++-14 libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev
20+
- name: Setup Compiler Cache
21+
uses: hendrikmuhs/ccache-action@v1.2
22+
with:
23+
key: ubuntu-ccache-${{ github.ref_name }}
24+
restore-keys: |
25+
ubuntu-ccache-
26+
max-size: 500M
2027
- name: Configure CMake
21-
env:
22-
CXX: g++-13
2328
run: >
24-
cmake -B ${{ github.workspace }}/build
25-
-DCMAKE_BUILD_TYPE=Release
26-
-DCMAKE_CXX_STANDARD=23
29+
cmake -B ${{ github.workspace }}/build -S .
30+
-DCMAKE_BUILD_TYPE=Release
31+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
32+
-DCMAKE_C_COMPILER_LAUNCHER=ccache
33+
env:
34+
CXX: g++-14
2735
- name: Build Target
28-
run: cmake --build ${{ github.workspace }}/build --config Release
36+
run: cmake --build build --config Release
2937
- name: Verify Executable Production
30-
run: ls -l ${{ github.workspace }}/build/vectorjs
38+
run: ls -l build/vectorjs
3139

3240
build-windows:
3341
name: Build on Windows
3442
runs-on: windows-latest
3543
steps:
3644
- name: Checkout repository
3745
uses: actions/checkout@v6
46+
- name: Setup Compiler Cache
47+
uses: hendrikmuhs/ccache-action@v1.2
48+
with:
49+
key: win-ccache-${{ github.ref_name }}
50+
restore-keys: |
51+
win-ccache-
52+
max-size: 500M
3853
- name: Configure CMake
3954
run: >
40-
cmake -B ${{ github.workspace }}/build
41-
-DCMAKE_BUILD_TYPE=Release
42-
-DCMAKE_CXX_STANDARD=23
43-
- name: Build Target
44-
run: cmake --build ${{ github.workspace }}/build --config Release
55+
cmake -B ${{ github.workspace }}/build -S .
56+
-DCMAKE_BUILD_TYPE=Release
57+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
58+
-DCMAKE_C_COMPILER_LAUNCHER=ccache
4559
- name: Verify Executable Production
4660
shell: pwsh
47-
run: Test-Path "${{ github.workspace }}/build/Release/vectorjs.exe"
61+
run: Test-Path "build/Release/vectorjs.exe"
4862

4963
build-mac:
5064
name: Build on macOS
5165
runs-on: macos-latest
5266
steps:
5367
- name: Checkout repository
5468
uses: actions/checkout@v6
69+
- name: Setup Compiler Cache
70+
uses: hendrikmuhs/ccache-action@v1.2
71+
with:
72+
key: mac-ccache-${{ github.ref_name }}
73+
restore-keys: |
74+
mac-ccache-
75+
max-size: 500M
5576
- name: Configure CMake
5677
run: >
57-
cmake -B ${{ github.workspace }}/build
58-
-DCMAKE_BUILD_TYPE=Release
59-
-DCMAKE_CXX_STANDARD=23
60-
- name: Build Target
61-
run: cmake --build ${{ github.workspace }}/build --config Release
78+
cmake -B ${{ github.workspace }}/build -S .
79+
-DCMAKE_BUILD_TYPE=Release
80+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
81+
-DCMAKE_C_COMPILER_LAUNCHER=ccache
6282
- name: Verify Executable Production
63-
run: ls -l ${{ github.workspace }}/build/vectorjs
83+
run: ls -l build/vectorjs

0 commit comments

Comments
 (0)