add new magic_enum::magic_enum_module target #1
This file contains hidden or 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: module_test_installed_version.yml | |
| on: [push, pull_request] | |
| permissions: read-all | |
| jobs: | |
| macos-gcc: | |
| name: macOS / GCC 16 / import std / C++26 | |
| runs-on: macos-15 | |
| env: | |
| CC: gcc-16 | |
| CXX: g++-16 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install toolchain | |
| run: | | |
| brew install gcc ninja fmt | |
| python3 -m pip install --upgrade "cmake>=4.4.0" --break-system-packages | |
| - name: Build and test module package | |
| run: | | |
| modules_json="$("${CXX}" -print-file-name=libstdc++.modules.json)" | |
| fmt_prefix="$(brew --prefix fmt)" | |
| cmake -S . -B build-module -G Ninja \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_EXPERIMENTAL_CXX_IMPORT_STD=f35a9ac6-8463-4d38-8eec-5d6008153e7d \ | |
| -DCMAKE_CXX_STDLIB_MODULES_JSON="${modules_json}" \ | |
| -DCMAKE_CXX_STANDARD=26 \ | |
| -DCMAKE_CXX_STANDARD_REQUIRED=ON \ | |
| -DCMAKE_CXX_EXTENSIONS=OFF \ | |
| -DCMAKE_PREFIX_PATH="${fmt_prefix}" \ | |
| -DMAGIC_ENUM_USE_MODULES=ON \ | |
| -DMAGIC_ENUM_MODULE_IMPORT_STD=ON \ | |
| -DMAGIC_ENUM_MODULE_WITH_FMT=ON \ | |
| -DMAGIC_ENUM_OPT_BUILD_TESTS=ON \ | |
| -DMAGIC_ENUM_OPT_BUILD_EXAMPLES=ON | |
| cmake --build build-module --parallel | |
| cmake --build build-module --target magic_enum_verify_interface_header_sets --parallel | |
| ctest --test-dir build-module --output-on-failure --no-tests=error | |
| - name: Test installed module with fmt and without import std | |
| run: | | |
| fmt_prefix="$(brew --prefix fmt)" | |
| cmake -S . -B build-module-fmt -G Ninja \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_CXX_STANDARD=20 \ | |
| -DCMAKE_CXX_STANDARD_REQUIRED=ON \ | |
| -DCMAKE_PREFIX_PATH="${fmt_prefix}" \ | |
| -DMAGIC_ENUM_USE_MODULES=ON \ | |
| -DMAGIC_ENUM_MODULE_WITH_FMT=ON \ | |
| -DMAGIC_ENUM_OPT_BUILD_TESTS=ON \ | |
| -DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF | |
| cmake --build build-module-fmt --parallel --target magic_enum_module | |
| ctest --test-dir build-module-fmt \ | |
| --output-on-failure \ | |
| --no-tests=error \ | |
| -R '^installed-module-consumer$' | |
| windows-msvc: | |
| name: Windows / VS 2026 / C++20 | |
| runs-on: windows-2025-vs2026 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Install pinned CMake | |
| shell: pwsh | |
| run: python -m pip install cmake==4.3.4 | |
| - name: Build and test module package | |
| shell: pwsh | |
| run: | | |
| cmake -S . -B build-module -G Ninja ` | |
| -DCMAKE_BUILD_TYPE=Release ` | |
| -DCMAKE_CXX_STANDARD=20 ` | |
| -DCMAKE_CXX_STANDARD_REQUIRED=ON ` | |
| -DMAGIC_ENUM_USE_MODULES=ON ` | |
| -DMAGIC_ENUM_OPT_BUILD_TESTS=ON ` | |
| -DMAGIC_ENUM_OPT_BUILD_EXAMPLES=ON | |
| cmake --build build-module --parallel --target magic_enum_module example_module_usage test_module-cpp20 test_module_aliases-cpp20 test_module_wchar_t-cpp20 | |
| cmake --build build-module --parallel --target magic_enum_verify_interface_header_sets | |
| ctest --test-dir build-module --output-on-failure --no-tests=error -R '^(test_module(_aliases|_wchar_t)?-cpp20|installed-module-consumer)$' |