CMake find modules update. #97
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: Build and test library | |
on: | |
push: | |
paths: | |
- '.github/workflows/build-and-test-library.yml' | |
- 'API/**' | |
- 'CMake/FindZeta.cmake' | |
- 'sources/*.c' | |
- 'sources/*.rc.in' | |
- 'support/*.sha3-512' | |
- 'CMakeLists.txt' | |
pull_request: | |
paths: | |
- '.github/workflows/build-and-test-library.yml' | |
- 'API/**' | |
- 'CMake/FindZeta.cmake' | |
- 'sources/*.c' | |
- 'sources/*.rc.in' | |
- 'support/*.sha3-512' | |
- 'CMakeLists.txt' | |
env: | |
ZETA_TARBALL_URL: 'http://zxe.io/software/Zeta/download/Zeta-latest.tar.xz' | |
BUILD_SHARED_LIBS: YES | |
CMAKE_BUILD_TYPE: Release | |
Z80_FETCH_TEST_FILES: YES | |
Z80_NOSTDLIB_FLAGS: Auto | |
Z80_WITH_CMAKE_SUPPORT: NO | |
Z80_WITH_HTML_DOCUMENTATION: NO | |
Z80_WITH_PDF_DOCUMENTATION: NO | |
Z80_WITH_PKGCONFIG_SUPPORT: NO | |
Z80_WITH_STANDARD_DOCUMENTS: NO | |
Z80_WITH_TESTS: YES | |
Z80_WITH_EXECUTE: YES | |
Z80_WITH_FULL_IM0: YES | |
Z80_WITH_IM0_RETX_NOTIFICATIONS: YES | |
Z80_WITH_Q: YES | |
Z80_WITH_SPECIAL_RESET: YES | |
Z80_WITH_UNOFFICIAL_RETI: NO | |
Z80_WITH_ZILOG_NMOS_LD_A_IR_BUG: YES | |
jobs: | |
build-and-test-library: | |
runs-on: ${{matrix.os}} | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies (POSIX) | |
if: startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu') | |
run: | | |
mkdir -p "${{github.workspace}}/build" | |
curl -L "${{env.ZETA_TARBALL_URL}}" | xz -cd | tar -C "${{github.workspace}}/build" --strip-components=2 -xvf - Zeta/API/Z | |
- name: Install dependencies (Windows) | |
if: startsWith(matrix.os, 'windows') | |
shell: cmd | |
run: | | |
mkdir "${{github.workspace}}\build" | |
curl -L "${{env.ZETA_TARBALL_URL}}" | 7z x -txz -si -so | 7z x -si -ttar -o"${{github.workspace}}\build" Zeta/API/Z | |
- name: Configure CMake | |
run: >- | |
cmake | |
-DBUILD_SHARED_LIBS=${{env.BUILD_SHARED_LIBS}} | |
-DCMAKE_BUILD_TYPE=${{env.CMAKE_BUILD_TYPE}} | |
-DZ80_FETCH_TEST_FILES=${{env.Z80_FETCH_TEST_FILES}} | |
-DZ80_NOSTDLIB_FLAGS=${{env.Z80_NOSTDLIB_FLAGS}} | |
-DZ80_WITH_CMAKE_SUPPORT=${{env.Z80_WITH_CMAKE_SUPPORT}} | |
-DZ80_WITH_HTML_DOCUMENTATION=${{env.Z80_WITH_HTML_DOCUMENTATION}} | |
-DZ80_WITH_PDF_DOCUMENTATION=${{env.Z80_WITH_PDF_DOCUMENTATION}} | |
-DZ80_WITH_PKGCONFIG_SUPPORT=${{env.Z80_WITH_PKGCONFIG_SUPPORT}} | |
-DZ80_WITH_STANDARD_DOCUMENTS=${{env.Z80_WITH_STANDARD_DOCUMENTS}} | |
-DZ80_WITH_TESTS=${{env.Z80_WITH_TESTS}} | |
-DZ80_WITH_EXECUTE=${{env.Z80_WITH_EXECUTE}} | |
-DZ80_WITH_FULL_IM0=${{env.Z80_WITH_FULL_IM0}} | |
-DZ80_WITH_IM0_RETX_NOTIFICATIONS=${{env.Z80_WITH_IM0_RETX_NOTIFICATIONS}} | |
-DZ80_WITH_Q=${{env.Z80_WITH_Q}} | |
-DZ80_WITH_SPECIAL_RESET=${{env.Z80_WITH_SPECIAL_RESET}} | |
-DZ80_WITH_UNOFFICIAL_RETI=${{env.Z80_WITH_UNOFFICIAL_RETI}} | |
-DZ80_WITH_ZILOG_NMOS_LD_A_IR_BUG=${{env.Z80_WITH_ZILOG_NMOS_LD_A_IR_BUG}} | |
-B "${{github.workspace}}/build" | |
-S "${{github.workspace}}" | |
- name: Build | |
run: cmake --build "${{github.workspace}}/build" --config ${{env.CMAKE_BUILD_TYPE}} --verbose | |
- name: Test | |
working-directory: ${{github.workspace}}/build | |
run: ctest --build-config ${{env.CMAKE_BUILD_TYPE}} --output-on-failure |