-
Notifications
You must be signed in to change notification settings - Fork 22
131 lines (128 loc) · 4.09 KB
/
cmake.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: CMake
on:
push:
branches: [ v21 ]
pull_request:
branches: [ v21 ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
# The number of days to retain artifacts
RETENTION_DAYS: 30
jobs:
build-win32:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Download w64devkit
run: invoke-webrequest https://github.com/skeeto/w64devkit/releases/download/v2.0.0/w64devkit-x86-2.0.0.exe -outfile ${{github.workspace}}\w64devkit.exe
- name: Extract w64devkit
run: ${{github.workspace}}\w64devkit.exe -y
- name: Set environment variables and build
run: |
$env:Path = "${{github.workspace}}\w64devkit\bin;" + $env:Path
cmake -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_CXX_FLAGS="-isystem ${{github.workspace}}\w64devkit\include" -DCMAKE_C_FLAGS="-isystem ${{github.workspace}}\w64devkit\include" -G "MinGW Makefiles"
cmake --build build --config ${{env.BUILD_TYPE}}
strip ${{github.workspace}}\obsidian.exe
- uses: actions/upload-artifact@v4
with:
name: obsidian-win32
path: |
addons
data
engines
games
language
modules
ports
presets
scripts
theme
tools
obsidian.exe
retention-days: ${{env.RETENTION_DAYS}}
build-win64:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Download w64devkit
run: invoke-webrequest https://github.com/skeeto/w64devkit/releases/download/v2.0.0/w64devkit-x64-2.0.0.exe -outfile ${{github.workspace}}\w64devkit.exe
- name: Extract w64devkit
run: ${{github.workspace}}\w64devkit.exe -y
- name: Set environment variables and build
run: |
$env:Path = "${{github.workspace}}\w64devkit\bin;" + $env:Path
cmake -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_CXX_FLAGS="-isystem ${{github.workspace}}\w64devkit\include" -DCMAKE_C_FLAGS="-isystem ${{github.workspace}}\w64devkit\include" -G "MinGW Makefiles"
cmake --build build --config ${{env.BUILD_TYPE}}
strip ${{github.workspace}}\obsidian.exe
- uses: actions/upload-artifact@v4
with:
name: obsidian-win64
path: |
addons
data
engines
games
language
modules
ports
presets
scripts
theme
tools
obsidian.exe
retention-days: ${{env.RETENTION_DAYS}}
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libxft-dev libfontconfig1-dev libgl-dev
- name: Configure CMake Ubuntu
run: mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build Ubuntu
run: cmake --build build --config ${{env.BUILD_TYPE}}
- uses: actions/upload-artifact@v4
with:
name: obsidian-ubuntu
path: |
addons
data
engines
games
language
modules
ports
presets
scripts
theme
tools
obsidian
retention-days: ${{env.RETENTION_DAYS}}
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Configure CMake MacOS
run: mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build MacOS
run: cmake --build build --config ${{env.BUILD_TYPE}}
- uses: actions/upload-artifact@v4
with:
name: obsidian-macos
path: |
addons
data
engines
games
language
modules
ports
presets
scripts
theme
tools
obsidian
retention-days: ${{env.RETENTION_DAYS}}