Ci Runners for Windows & Mac #237
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
pull_request: | |
env: | |
WX_VERSION: '3.2.4' | |
jobs: | |
build-on-ubuntu: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup cmake | |
uses: jwlawson/actions-setup-cmake@v2 | |
with: | |
cmake-version: '3.24.x' | |
- name: Test cmake version | |
run: cmake --version | |
- name: Install OS dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y \ | |
build-essential \ | |
freeglut3-dev \ | |
g++ \ | |
libcurl4-openssl-dev \ | |
libfontconfig-dev \ | |
libgl1-mesa-dev \ | |
libgtk2.0-dev \ | |
mesa-common-dev \ | |
unzip | |
- name: Set relative paths | |
run: | | |
WXMSW3=$HOME/wx-$WX_VERSION | |
echo "WXMSW3=$WXMSW3" >> $GITHUB_ENV | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get cached build of wxWidgets | |
uses: actions/cache@v4 | |
id: cachedwx | |
with: | |
path: ${{env.WXMSW3}}/ | |
key: wxWidgets-${{ env.WX_VERSION }}-linux | |
- name: Install wxWidgets | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
run: | | |
curl -L https://github.com/wxWidgets/wxWidgets/releases/download/v$WX_VERSION/wxWidgets-$WX_VERSION.tar.bz2 -o wxWidgets-$WX_VERSION.tar.bz2 | |
tar jxf wxWidgets-$WX_VERSION.tar.bz2 | |
cd wxWidgets-$WX_VERSION | |
./configure --prefix=$HOME/wx-$WX_VERSION --enable-shared=no --enable-debug=no --with-gtk=2 --with-libjpeg=builtin --with-libpng=builtin --with-regex=builtin --with-libtiff=builtin --with-zlib=builtin --with-expat=builtin --without-libjbig --without-liblzma --without-gtkprint --with-libnotify=no --with-libmspack=no --with-gnomevfs=no --with-opengl=yes --with-sdl=no --with-cxx=11 | |
make -j4 | |
make install | |
sudo ln -s $HOME/wx-$WX_VERSION/bin/wx-config /usr/local/bin/wx-config-3 | |
wx-config-3 --cflags | |
echo $HOME/wx-$WX_VERSION/bin >> $GITHUB_PATH | |
- name: Save wxWidgets build | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wxWidgets-${{ env.WX_VERSION }}-linux | |
path: | | |
${{ env.WXMSW3 }} | |
- name: Build LK | |
run: | | |
cmake -Bbuild_linux -DCMAKE_BUILD_TYPE=Debug | |
cmake --build build_linux -- -j4 | |
- name: Save static lib & lksandbox | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LK-linux | |
path: | | |
build_linux/lk_sandbox* | |
build_linux/lk*.a | |
build-on-windows: | |
runs-on: windows-latest | |
steps: | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
- name: Set relative paths | |
shell: bash | |
run: | | |
WXMSW3=$GITHUB_WORKSPACE/wxWidgets-$WX_VERSION | |
echo "WXMSW3=$WXMSW3" >> $GITHUB_ENV | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get cached build of wxWidgets | |
uses: actions/cache@v4 | |
id: cachedwx | |
with: | |
path: ${{env.WXMSW3}}/ | |
key: wxWidgets-${{ env.WX_VERSION }}-windows | |
- name: Download wxWidgets | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
shell: bash | |
run: | | |
curl -L https://github.com/wxWidgets/wxWidgets/releases/download/v$WX_VERSION/wxWidgets-$WX_VERSION.tar.bz2 -o wxWidgets-$WX_VERSION.tar.bz2 | |
tar jxf wxWidgets-$WX_VERSION.tar.bz2 | |
- name: Install wxWidgets | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
run: | | |
cd wxWidgets-$env:WX_VERSION | |
msbuild build/msw/wx_vc17.sln /t:Build /p:Configuration=Release /p:Platform=x64 | |
- name: Make wxWidgets archive | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
shell: bash | |
run: | | |
mkdir wx-$WX_VERSION | |
cp -r wxWidgets-$WX_VERSION/include wx-$WX_VERSION | |
cp -r wxWidgets-$WX_VERSION/lib wx-$WX_VERSION | |
- name: Save wxWidgets build | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wxWidgets-${{ env.WX_VERSION }}-windows | |
path: | | |
${{ env.WXMSW3 }} | |
- name: Setup cmake | |
uses: jwlawson/actions-setup-cmake@v2 | |
with: | |
cmake-version: '3.24.x' | |
- name: Build LK | |
run: | | |
mkdir build | |
cd build | |
cmake -G "Visual Studio 17 2022" -DCMAKE_CONFIGURATION_TYPES="Release" -DCMAKE_SYSTEM_VERSION=10 .. | |
MSBuild.exe .\lk.sln /t:Build /p:Configuration=Release | |
- name: Save static lib & lksandbox | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LK-windows | |
path: | | |
build/Release/lk_sandbox* | |
build/Release/lk*.a | |
build-on-mac: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-14-large, macos-latest] | |
steps: | |
- name: Set relative paths | |
run: | | |
WXMSW3=$HOME/wx-$WX_VERSION | |
echo "WXMSW3=$WXMSW3" >> $GITHUB_ENV | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get cached build of wxWidgets | |
uses: actions/cache@v4 | |
id: cachedwx | |
with: | |
path: ${{env.WXMSW3}}/ | |
key: wxWidgets-${{ env.WX_VERSION }}-${{ matrix.os }} | |
- name: Install wxWidgets | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
run: | | |
curl -L https://github.com/wxWidgets/wxWidgets/releases/download/v$WX_VERSION/wxWidgets-$WX_VERSION.tar.bz2 -o wxWidgets-$WX_VERSION.tar.bz2 | |
tar jxf wxWidgets-$WX_VERSION.tar.bz2 | |
cd wxWidgets-$WX_VERSION | |
./configure --prefix=$HOME/wx-$WX_VERSION --enable-stl=yes --enable-shared=no --disable-debug_flag --with-cocoa --enable-universal_binary=x86_64,arm64 --enable-unicode --enable-webview --disable-mediactrl --with-cxx=11 --with-macosx-version-min=10.15 --with-libjpeg=builtin --with-libpng=builtin --with-regex=builtin --with-libtiff=builtin --with-zlib=builtin --with-expat=builtin | |
make -j3 | |
make install | |
sudo ln -s $HOME/wx-$WX_VERSION/bin/wx-config /usr/local/bin/wx-config-3 | |
wx-config-3 --cflags | |
echo ${HOME}/wx-$WX_VERSION/bin >> $GITHUB_PATH | |
- name: Save wxWidgets build | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wxWidgets-${{ env.WX_VERSION }}-${{ matrix.os }} | |
path: | | |
${{ env.WXMSW3 }} | |
- name: Setup cmake | |
uses: jwlawson/actions-setup-cmake@v2 | |
with: | |
cmake-version: '3.24.x' | |
- name: Build LK | |
run: | | |
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release | |
cmake --build build -- -j3 | |
- name: Save static lib & lksandbox | |
uses: actions/upload-artifact@v4 | |
with: | |
name: LK-${{ matrix.os }} | |
path: | | |
build/lk_sandbox* | |
build/lk*.a | |