Skip to content

Build openmw

Build openmw #31

Workflow file for this run

name: Build
on: push
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
jobs:
static:
strategy:
fail-fast: true
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v6
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Enable vcpkg downloads cache
uses: actions/cache@v4
with:
path: 'C:/vcpkg/downloads'
key: vcpkg_downloads_cache_v1
- working-directory: 'C:/vcpkg'
run: git remote add openmw https://github.com/elsid/vcpkg.git
- working-directory: 'C:/vcpkg'
run: git fetch openmw
- working-directory: 'C:/vcpkg'
run: git checkout openmw/openmw
- working-directory: 'C:/vcpkg'
run: ./bootstrap-vcpkg.bat -disableMetrics
- name: Install vcpkg packages
run: >
vcpkg install --triplet x64-windows-static
boost-geometry
boost-iostreams
boost-locale
boost-program-options
bullet3[double-precision,multithreading]
ffmpeg
freetype
icu
luajit
lz4
mygui[opengl]
openal-soft
openmw-osg
sdl2
- name: Archive vcpkg installed packages
run: 7z a ${{ github.workspace }}/openmw-deps-vcpkg-x64-windows-static-${{ github.sha }}.7z 'C:/vcpkg/installed' 'C:/vcpkg/scripts'
- name: Store archived vcpkg
uses: actions/upload-artifact@v4
with:
name: openmw-deps-vcpkg-x64-windows-static-${{ github.sha }}
path: ${{ github.workspace }}/openmw-deps-vcpkg-x64-windows-static-${{ github.sha }}.7z
- run: dir 'C:/vcpkg/installed/x64-windows-static'
- run: dir 'C:/vcpkg/installed/x64-windows-static/lib'
- run: dir 'C:/vcpkg/installed/x64-windows-static/include'
- run: mkdir -p ${{ github.workspace }}/Qt
- working-directory: ${{ github.workspace }}/Qt
run: curl --fail --retry 3 -L -o aqt_x64.exe https://github.com/miurahr/aqtinstall/releases/download/v3.1.12/aqt_x64.exe
- working-directory: ${{ github.workspace }}/Qt
run: .\aqt_x64.exe install-qt windows desktop 6.7.0 win64_msvc2019_64
- run: dir ${{ github.workspace }}
- run: dir ${{ github.workspace }}/Qt
- run: dir ${{ github.workspace }}/Qt/6.7.0
- run: dir ${{ github.workspace }}/Qt/6.7.0/msvc2019_64
- name: Clone OpenMW repository
run: git clone https://gitlab.com/OpenMW/openmw.git ${{ github.workspace }}/openmw
- uses: ilammy/msvc-dev-cmd@v1
- name: Configure OpenMW
run: >
cmake
-S ${{ github.workspace }}/openmw
-B ${{ github.workspace }}/openmw/build
-G Ninja
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_TOOLCHAIN_FILE='C:/vcpkg/scripts/buildsystems/vcpkg.cmake'
-D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/openmw/build/install
-D BUILD_OPENMW=ON
-D BUILD_MWINIIMPORTER=ON
-D BUILD_OPENCS=ON
-D BUILD_LAUNCHER=ON
-D BUILD_ESSIMPORTER=ON
-D BUILD_WIZARD=ON
-D BUILD_BSATOOL=ON
-D BUILD_ESMTOOL=ON
-D BUILD_NIFTEST=ON
-D BUILD_NAVMESHTOOL=ON
-D BUILD_BULLETOBJECTTOOL=ON
-D BUILD_BENCHMARKS=ON
-D BUILD_UNITTESTS=ON
-D BUILD_OPENCS_TESTS=ON
-D OPENMW_USE_SYSTEM_SQLITE3=OFF
-D OPENMW_USE_SYSTEM_YAML_CPP=OFF
-D CMAKE_TOOLCHAIN_FILE='C:/vcpkg/scripts/buildsystems/vcpkg.cmake'
-D CMAKE_PREFIX_PATH='${{ github.workspace }}/Qt/6.7.0/msvc2019_64'
-D LuaJit_INCLUDE_DIR='C:/vcpkg/installed/x64-windows-static/include/luajit'
-D LuaJit_LIBRARY='C:/vcpkg/installed/x64-windows-static/lib/lua51.lib'
- name: Build OpenMW
run: cmake --build ${{ github.workspace }}/openmw/build --parallel
- name: Install OpenMW
run: cmake --install ${{ github.workspace }}/openmw/build
- name: Store OpenMW build artifacts
uses: actions/upload-artifact@v4
with:
name: openmw-${{ github.sha }}
path: ${{ github.workspace }}/openmw/build/install
dynamic:
strategy:
fail-fast: true
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v6
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Enable vcpkg downloads cache
uses: actions/cache@v4
with:
path: 'C:/vcpkg/downloads'
key: vcpkg_downloads_cache_v1
- working-directory: 'C:/vcpkg'
run: git remote add openmw https://github.com/elsid/vcpkg.git
- working-directory: 'C:/vcpkg'
run: git fetch openmw
- working-directory: 'C:/vcpkg'
run: git checkout openmw/openmw
- working-directory: 'C:/vcpkg'
run: ./bootstrap-vcpkg.bat -disableMetrics
- name: Install vcpkg packages
run: >
vcpkg install --triplet x64-windows
boost-geometry
boost-iostreams
boost-locale
boost-program-options
bullet3[double-precision,multithreading]
ffmpeg
freetype
icu
luajit
lz4
mygui[opengl]
openal-soft
openmw-osg
sdl2
- name: Archive vcpkg installed packages
run: 7z a ${{ github.workspace }}/openmw-deps-vcpkg-x64-windows-${{ github.sha }}.7z 'C:/vcpkg/installed' 'C:/vcpkg/scripts'
- name: Store archived vcpkg
uses: actions/upload-artifact@v4
with:
name: openmw-deps-vcpkg-x64-windows-${{ github.sha }}
path: ${{ github.workspace }}/openmw-deps-vcpkg-x64-windows-${{ github.sha }}.7z
- run: dir 'C:/vcpkg/installed/x64-windows'
- run: dir 'C:/vcpkg/installed/x64-windows/lib'
- run: dir 'C:/vcpkg/installed/x64-windows/bin'
- run: dir 'C:/vcpkg/installed/x64-windows/include'
- run: mkdir -p ${{ github.workspace }}/Qt
- working-directory: ${{ github.workspace }}/Qt
run: curl --fail --retry 3 -L -o aqt_x64.exe https://github.com/miurahr/aqtinstall/releases/download/v3.1.12/aqt_x64.exe
- working-directory: ${{ github.workspace }}/Qt
run: .\aqt_x64.exe install-qt windows desktop 6.7.0 win64_msvc2019_64
- run: dir ${{ github.workspace }}
- run: dir ${{ github.workspace }}/Qt
- run: dir ${{ github.workspace }}/Qt/6.7.0
- run: dir ${{ github.workspace }}/Qt/6.7.0/msvc2019_64
- name: Clone OpenMW repository
run: git clone https://gitlab.com/OpenMW/openmw.git ${{ github.workspace }}/openmw
- uses: ilammy/msvc-dev-cmd@v1
- name: Configure OpenMW
run: >
cmake
-S ${{ github.workspace }}/openmw
-B ${{ github.workspace }}/openmw/build
-G Ninja
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_TOOLCHAIN_FILE='C:/vcpkg/scripts/buildsystems/vcpkg.cmake'
-D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/openmw/build/install
-D BUILD_OPENMW=ON
-D BUILD_MWINIIMPORTER=ON
-D BUILD_OPENCS=ON
-D BUILD_LAUNCHER=ON
-D BUILD_ESSIMPORTER=ON
-D BUILD_WIZARD=ON
-D BUILD_BSATOOL=ON
-D BUILD_ESMTOOL=ON
-D BUILD_NIFTEST=ON
-D BUILD_NAVMESHTOOL=ON
-D BUILD_BULLETOBJECTTOOL=ON
-D BUILD_BENCHMARKS=ON
-D BUILD_UNITTESTS=ON
-D BUILD_OPENCS_TESTS=ON
-D OPENMW_USE_SYSTEM_SQLITE3=OFF
-D OPENMW_USE_SYSTEM_YAML_CPP=OFF
-D CMAKE_TOOLCHAIN_FILE='C:/vcpkg/scripts/buildsystems/vcpkg.cmake'
-D CMAKE_PREFIX_PATH='${{ github.workspace }}/Qt/6.7.0/msvc2019_64'
-D LuaJit_INCLUDE_DIR='C:/vcpkg/installed/x64-windows/include/luajit'
-D LuaJit_LIBRARY='C:/vcpkg/installed/x64-windows/lib/lua51.lib'
- name: Build OpenMW
run: cmake --build ${{ github.workspace }}/openmw/build --parallel
- name: Install OpenMW
run: cmake --install ${{ github.workspace }}/openmw/build
- name: Store OpenMW build artifacts
uses: actions/upload-artifact@v4
with:
name: openmw-${{ github.sha }}
path: ${{ github.workspace }}/openmw/build/install