mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-25 17:07:52 -05:00
659a54b221
Some checks are pending
Build / Current ${{ matrix.toolchain.name }} (map[clang-tidy:true d3drm-from-wine:true dx5-libs:false msys-env:mingw-w64-i686 msystem:mingw32 name:msys2 mingw32 shell:msys2 {0} werror:true]) (push) Waiting to run
Build / Current ${{ matrix.toolchain.name }} (map[clang-tidy:true d3drm-from-wine:true dx5-libs:false msys-env:mingw-w64-x86_64 msystem:mingw64 name:msys2 mingw64 shell:msys2 {0} werror:true]) (push) Waiting to run
Build / Current ${{ matrix.toolchain.name }} (map[d3drm-from-wine:false dx5-libs:true name:MSVC (32-bit) setup-cmake:true setup-msvc:true setup-ninja:true shell:sh vc-arch:amd64_x86]) (push) Waiting to run
Build / Current ${{ matrix.toolchain.name }} (map[d3drm-from-wine:true dx5-libs:false name:MSVC (64-bit) setup-cmake:true setup-msvc:true setup-ninja:true shell:sh vc-arch:amd64]) (push) Waiting to run
Format / C++ (push) Waiting to run
Naming / C++ (push) Waiting to run
* d3drm: store LPVOID data instead of DWORD * m_extraCharacterId is an integer, not a pointer * cmake: look for iniparser using config file first, then try our custom module file Our custom module file is still useful. My linux distro does not package the cmake files. * x86's stdcall becomes MS's x64 calling canvention * Fix 64-bit mxdsbuffer pointer arithmetic * Casting from void* to a smaller-sized integer needs an intermediate equally-sized integer * Don't cast address to scalar (this is fishy) * Add mingw64 build to the ci matrix * Ignore -Wdiscarded-qualifiers warning with const vtables * Ignore different 'const' qualifiers with MSVC * Create d3dxof import library for MSVC * DESCRIPTION in .def file(s) is deprecated * Assume mmx is supported on x64, require a test for x86 and disabled on other archs * 32- and 64-bit LEGO1.dll export different symbol names * Introduce d3drm_guid containing the guids of d3drm * Disable __wine_dbg_cdecl * Include d3drm directory with EXCLUDE_FROM_ALL * lego1 leaks d3drm headers * Add dxfile.h * Add 64-bit MSVC to the build matrix * cmake: using ISLE_USE_DX5 means going all-in * Load d3dxof.dll dynamically * cmake: don't emit a warning about bitness anymore
68 lines
2.7 KiB
YAML
68 lines
2.7 KiB
YAML
name: Build
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build-current-toolchain:
|
|
name: 'Current ${{ matrix.toolchain.name }}'
|
|
runs-on: windows-latest
|
|
defaults:
|
|
run:
|
|
shell: ${{ matrix.toolchain.shell }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
toolchain:
|
|
- { name: 'MSVC (32-bit)', shell: 'sh', setup-cmake: true, setup-ninja: true, setup-msvc: true, vc-arch: 'amd64_x86', dx5-libs: true, d3drm-from-wine: false }
|
|
- { name: 'MSVC (64-bit)', shell: 'sh', setup-cmake: true, setup-ninja: true, setup-msvc: true, vc-arch: 'amd64', dx5-libs: false, d3drm-from-wine: true }
|
|
- { name: 'msys2 mingw32', shell: 'msys2 {0}', msystem: mingw32, msys-env: mingw-w64-i686, clang-tidy: true, werror: true, dx5-libs: false, d3drm-from-wine: true }
|
|
- { name: 'msys2 mingw64', shell: 'msys2 {0}', msystem: mingw64, msys-env: mingw-w64-x86_64, clang-tidy: true, werror: true, dx5-libs: false, d3drm-from-wine: true }
|
|
# - { name: 'msys2 clang32', shell: 'msys2 {0}', msystem: clang32, msys-env: mingw-w64-clang-i686, clang-tidy: true, werror: true, dx5-libs: true, d3drm-from-wine: true }
|
|
|
|
steps:
|
|
- name: Setup vcvars
|
|
if: matrix.toolchain.setup-msvc
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
arch: ${{ matrix.toolchain.vc-arch }}
|
|
# Figure out how to build for 32-bit arch
|
|
# - name: Set up SDL
|
|
# id: sdl
|
|
# uses: libsdl-org/setup-sdl@main
|
|
# with:
|
|
# version: sdl3-head
|
|
|
|
- name: Set up MSYS2
|
|
if: ${{ !!matrix.toolchain.msystem }}
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: ${{ matrix.toolchain.msystem }}
|
|
install: >-
|
|
${{ matrix.toolchain.msys-env }}-cc
|
|
${{ matrix.toolchain.msys-env }}-cmake
|
|
${{ matrix.toolchain.msys-env }}-ninja
|
|
${{ matrix.toolchain.msys-env }}-clang-tools-extra
|
|
|
|
- name: Setup cmake
|
|
if: matrix.toolchain.setup-cmake
|
|
uses: jwlawson/actions-setup-cmake@v1.13
|
|
|
|
- name: Setup ninja
|
|
if: matrix.toolchain.setup-ninja
|
|
uses: ashutoshvarma/setup-ninja@master
|
|
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Build
|
|
# Add -DDOWNLOAD_DEPENDENCIES=OFF once setup-sdl works
|
|
run: |
|
|
cmake -S . -B build -GNinja \
|
|
-DCMAKE_BUILD_TYPE=Debug \
|
|
-DISLE_USE_DX5=${{ matrix.toolchain.dx5-libs }} \
|
|
-DISLE_D3DRM_FROM_WINE=${{ matrix.toolchain.d3drm-from-wine }} \
|
|
-DENABLE_CLANG_TIDY=${{ !!matrix.toolchain.clang-tidy }} \
|
|
-DISLE_WERROR=${{ !!matrix.toolchain.werror }} \
|
|
-Werror=dev
|
|
cmake --build build -- -k0
|