@@ -10,10 +10,18 @@ jobs:
10
10
include :
11
11
- os : windows-latest
12
12
arch : x64
13
+ compiler-prefix : C:/tools/mingw64/bin/x86_64-w64-mingw32
13
14
runtime : win-x64
14
15
- os : windows-latest
15
16
arch : x86
17
+ compiler-prefix : C:/tools/mingw32/bin/i686-w64-mingw32
16
18
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
17
25
18
26
runs-on : ${{ matrix.os }}
19
27
@@ -22,40 +30,60 @@ jobs:
22
30
with :
23
31
submodules : recursive
24
32
25
- - name : Install MinGW and CMake
26
- if : runner.os == 'Windows '
33
+ - name : Install build deps (Linux)
34
+ if : runner.os == 'Linux '
27
35
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
31
38
32
- - name : Add MinGW to PATH
39
+ - name : Install build deps (Windows)
33
40
if : runner.os == 'Windows'
34
41
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
43
44
45
+ # Limit Binaryen to 1 core
44
46
- name : Limit Binaryen to 1 core
45
47
run : echo "BINARYEN_CORES=1" >> $GITHUB_ENV
46
48
47
49
- name : Configure
50
+ if : runner.os == 'Linux'
48
51
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
56
68
shell : pwsh
57
69
70
+ - name : Build (Linux)
71
+ if : runner.os == 'Linux'
72
+ run : cmake --build binaryen/build -- -j1
73
+
58
74
- name : Build (Windows)
59
75
if : runner.os == 'Windows'
60
76
run : cmake --build binaryen/build -- -j1
61
77
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