Skip to content

Commit 2a0d9ae

Browse files
authored
Update buildbinaryen.yml
1 parent f9fe530 commit 2a0d9ae

File tree

1 file changed

+49
-21
lines changed

1 file changed

+49
-21
lines changed

.github/workflows/buildbinaryen.yml

Lines changed: 49 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,18 @@ jobs:
1010
include:
1111
- os: windows-latest
1212
arch: x64
13+
compiler-prefix: C:/tools/mingw64/bin/x86_64-w64-mingw32
1314
runtime: win-x64
1415
- os: windows-latest
1516
arch: x86
17+
compiler-prefix: C:/tools/mingw32/bin/i686-w64-mingw32
1618
runtime: win-x86
19+
- os: ubuntu-latest
20+
arch: x64
21+
runtime: linux-x64
22+
- os: ubuntu-latest
23+
arch: x86
24+
runtime: linux-x86
1725

1826
runs-on: ${{ matrix.os }}
1927

@@ -22,40 +30,60 @@ jobs:
2230
with:
2331
submodules: recursive
2432

25-
- name: Install MinGW and CMake
26-
if: runner.os == 'Windows'
33+
- name: Install build deps (Linux)
34+
if: runner.os == 'Linux'
2735
run: |
28-
choco install mingw --no-progress --yes
29-
choco install cmake ninja --no-progress --yes
30-
shell: pwsh
36+
sudo apt-get update
37+
sudo apt-get install -y g++-multilib gcc-multilib cmake make ninja-build
3138
32-
- name: Add MinGW to PATH
39+
- name: Install build deps (Windows)
3340
if: runner.os == 'Windows'
3441
run: |
35-
if (${{ matrix.arch }} -eq 'x64') {
36-
$mingw = "C:\tools\mingw64\bin"
37-
} else {
38-
$mingw = "C:\tools\mingw32\bin"
39-
}
40-
$env:PATH = "$mingw;$env:PATH"
41-
echo "PATH=$env:PATH" >> $GITHUB_ENV
42-
shell: pwsh
42+
choco install mingw --no-progress --yes
43+
choco install cmake ninja --no-progress --yes
4344
45+
# Limit Binaryen to 1 core
4446
- name: Limit Binaryen to 1 core
4547
run: echo "BINARYEN_CORES=1" >> $GITHUB_ENV
4648

4749
- name: Configure
50+
if: runner.os == 'Linux'
4851
run: |
49-
if (${{ runner.os }} -eq 'Windows') {
50-
if (${{ matrix.arch }} -eq 'x64') {
51-
cmake -S binaryen -B binaryen/build -G "MinGW Makefiles" -DCMAKE_C_FLAGS="-W0 -m64 -static-libgcc -static-libstdc++" -DCMAKE_CXX_FLAGS="-W0 -m64 -static-libgcc -static-libstdc++" -DBUILD_STATIC_LIB=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_TOOLS=OFF -DBUILD_TESTS=OFF
52-
} else {
53-
cmake -S binaryen -B binaryen/build -G "MinGW Makefiles" -DCMAKE_C_FLAGS="-W0 -m32 -static-libgcc -static-libstdc++" -DCMAKE_CXX_FLAGS="-W0 -m32 -static-libgcc -static-libstdc++" -DBUILD_STATIC_LIB=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_TOOLS=OFF -DBUILD_TESTS=OFF
54-
}
55-
}
52+
cmake -S binaryen -B binaryen/build \
53+
-DCMAKE_C_FLAGS="-m${{ matrix.arch == 'x64' && echo 64 || echo 32 }} -w -static-libgcc -static-libstdc++" \
54+
-DCMAKE_CXX_FLAGS="-m${{ matrix.arch == 'x64' && echo 64 || echo 32 }} -w -static-libgcc -static-libstdc++" \
55+
-DBUILD_SHARED_LIBS=ON -DBUILD_TOOLS=OFF -DBUILD_TESTS=OFF
56+
57+
- name: Configure
58+
if: runner.os == 'Windows'
59+
run: |
60+
$CC="${{ matrix.compiler-prefix }}-gcc.exe"
61+
$CXX="${{ matrix.compiler-prefix }}-g++.exe"
62+
cmake -S binaryen -B binaryen/build -G "MinGW Makefiles" `
63+
-DCMAKE_C_COMPILER=$CC `
64+
-DCMAKE_CXX_COMPILER=$CXX `
65+
-DCMAKE_C_FLAGS="-W0 -m${{ matrix.arch == 'x64' && echo 64 || echo 32 }} -static-libgcc -static-libstdc++" `
66+
-DCMAKE_CXX_FLAGS="-W0 -m${{ matrix.arch == 'x64' && echo 64 || echo 32 }} -static-libgcc -static-libstdc++" `
67+
-DBUILD_STATIC_LIB=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_TOOLS=OFF -DBUILD_TESTS=OFF
5668
shell: pwsh
5769

70+
- name: Build (Linux)
71+
if: runner.os == 'Linux'
72+
run: cmake --build binaryen/build -- -j1
73+
5874
- name: Build (Windows)
5975
if: runner.os == 'Windows'
6076
run: cmake --build binaryen/build -- -j1
6177
shell: pwsh
78+
79+
- name: Copy to NuGet runtime folder
80+
run: |
81+
mkdir -p package/runtimes/${{ matrix.runtime }}/native
82+
cp -r binaryen/build/lib/* package/runtimes/${{ matrix.runtime }}/native/
83+
shell: bash
84+
85+
- name: Upload artifact
86+
uses: actions/upload-artifact@v4
87+
with:
88+
name: runtimes-${{ matrix.runtime }}
89+
path: package/runtimes/${{ matrix.runtime }}

0 commit comments

Comments
 (0)