Skip to content

add new magic_enum::magic_enum_module target #1

add new magic_enum::magic_enum_module target

add new magic_enum::magic_enum_module target #1

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)$'