1+ name : Build
2+ on : [push, pull_request]
3+ env :
4+ CODE_PATH : .
5+ BUILD_PATH : build
6+ SDL2_VERSION : 2.32.2
7+ defaults :
8+ run :
9+ shell : bash
10+ jobs :
11+ build :
12+ name : Build ${{matrix.build-targets.name}}
13+ runs-on : ${{matrix.build-targets.os}}
14+ strategy :
15+ matrix :
16+ build-targets :
17+ - {
18+ name : " Linux (x64 Static)" ,
19+ os : " ubuntu-latest" ,
20+ libPath : " lib" ,
21+ cFlags : " " ,
22+ shared : false,
23+ compiler : " gcc" ,
24+ output : " AuriText-SDL2-linux-x64-static"
25+ }
26+ - {
27+ name : " Linux (x64 Shared)" ,
28+ os : " ubuntu-latest" ,
29+ libPath : " lib" ,
30+ cFlags : " " ,
31+ shared : true,
32+ compiler : " gcc" ,
33+ output : " AuriText-SDL2-linux-x64-shared"
34+ }
35+ - {
36+ name : " Windows (x64)" ,
37+ os : " windows-latest" ,
38+ libPath : " lib" ,
39+ cFlags : " " ,
40+ shared : true,
41+ compiler : " gcc" ,
42+ output : " AuriText-SDL2-mingw-x64"
43+ }
44+ steps :
45+ - uses : actions/checkout@v4
46+
47+ - name : SDL2 - Install (Linux)
48+ if : runner.os == 'Linux'
49+ run : >
50+ sudo apt install libsdl2-dev
51+
52+ - name : SDL2 - Install (Windows)
53+ if : runner.os == 'Windows'
54+ run : |
55+ curl -L https://github.com/libsdl-org/SDL/releases/download/release-${{env.SDL2_VERSION}}/SDL2-devel-${{env.SDL2_VERSION}}-mingw.tar.gz -o SDL2-devel-${{env.SDL2_VERSION}}-mingw.tar.gz
56+ tar xzvf SDL2-devel-${{env.SDL2_VERSION}}-mingw.tar.gz
57+
58+ cp -r SDL2-${{env.SDL2_VERSION}}/x86_64-w64-mingw32/* C:/mingw64
59+ cp -r SDL2-${{env.SDL2_VERSION}}/x86_64-w64-mingw32/* C:/mingw64/x86_64-w64-mingw32
60+
61+ - name : Make Directories
62+ run : >
63+ mkdir -p "${{matrix.build-targets.output}}/include/AuriText-SDL2"
64+ "${{matrix.build-targets.output}}/${{matrix.build-targets.libPath}}"
65+ "${{matrix.build-targets.output}}/share/licenses/AuriText-SDL2"
66+
67+ - name : Make Directories (Windows)
68+ if : runner.os == 'Windows'
69+ run : >
70+ mkdir -p "${{matrix.build-targets.output}}/bin"
71+
72+ - name : Configure CMake
73+ run : >
74+ cmake -S ${{env.CODE_PATH}}
75+ -B ${{env.BUILD_PATH}}
76+ -DCMAKE_C_COMPILER=${{matrix.build-targets.compiler}}
77+ -DCMAKE_BUILD_TYPE=Release
78+ -DBUILD_SHARED_LIBS=${{matrix.build-targets.shared}}
79+ -DCMAKE_C_FLAGS=${{matrix.build-targets.cFlags}}
80+ -G "Unix Makefiles"
81+
82+ - name : Build
83+ run : cmake --build ${{env.BUILD_PATH}}
84+
85+ - name : Copy Files (Shared)
86+ run : |
87+ cp *.h "${{matrix.build-targets.output}}/include/AuriText-SDL2"
88+ cp COPYING* "${{matrix.build-targets.output}}/share/licenses/AuriText-SDL2"
89+
90+ - name : Copy Files (Linux)
91+ if : runner.os == 'Linux'
92+ run : cp ${{env.BUILD_PATH}}/libAuriText-SDL2.* "${{matrix.build-targets.output}}/${{matrix.build-targets.libPath}}"
93+
94+ - name : Copy Files (Windows)
95+ if : runner.os == 'Windows'
96+ run : |
97+ cp ${{env.BUILD_PATH}}/libAuriText-SDL2.dll.a "${{matrix.build-targets.output}}/${{matrix.build-targets.libPath}}"
98+ cp ${{env.BUILD_PATH}}/libAuriText-SDL2.dll "${{matrix.build-targets.output}}/bin"
99+
100+ - name : Make Archive
101+ run : tar -czvf "${{matrix.build-targets.output}}.tar.gz" "${{matrix.build-targets.output}}"
102+
103+ - uses : actions/upload-artifact@v4
104+ with :
105+ name : ${{matrix.build-targets.output}}
106+ path : ${{matrix.build-targets.output}}.tar.gz
0 commit comments