1313
1414jobs :
1515 test :
16+ name : Test (${{ matrix.name }})
1617 strategy :
18+ fail-fast : false
1719 matrix :
18- os : [ubuntu-latest, macos-latest, windows-latest]
19- compiler : [gcc, clang, msvc]
20- exclude :
21- - os : ubuntu-latest
22- compiler : msvc
23- - os : macos-latest
24- compiler : msvc
25- - os : macos-latest
26- compiler : gcc
27- - os : windows-latest
28- compiler : gcc
29- - os : windows-latest
30- compiler : clang
20+ include :
21+ - name : Ubuntu GCC
22+ os : ubuntu-latest
23+ cc : gcc
24+ cxx : g++
25+ - name : Ubuntu Clang
26+ os : ubuntu-latest
27+ cc : clang
28+ cxx : clang++
29+ - name : macOS
30+ os : macos-latest
31+ - name : Windows
32+ os : windows-latest
3133
3234 runs-on : ${{ matrix.os }}
3335
@@ -36,18 +38,66 @@ jobs:
3638
3739 - name : Configure CMake
3840 run : cmake --preset=test
41+ env :
42+ CC : ${{ matrix.cc }}
43+ CXX : ${{ matrix.cxx }}
44+ if : ${{ matrix.cc }}
45+
46+ - name : Configure CMake
47+ run : cmake --preset=test
48+ if : ${{ !matrix.cc }}
3949
4050 - name : Build
4151 run : cmake --build --preset=test
4252
4353 - name : Test
4454 run : ctest --preset=test
4555
56+ - name : Build and Install
57+ run : |
58+ cmake --preset=default
59+ cmake --build --preset=default
60+ cmake --install build/default --prefix ${{ runner.temp }}/install
61+ env :
62+ CC : ${{ matrix.cc }}
63+ CXX : ${{ matrix.cxx }}
64+ if : ${{ matrix.cc }}
65+
66+ - name : Build and Install
67+ run : |
68+ cmake --preset=default
69+ cmake --build --preset=default
70+ cmake --install build/default --prefix ${{ runner.temp }}/install
71+ if : ${{ !matrix.cc }}
72+
73+ - name : Test find_package
74+ shell : bash
75+ run : |
76+ # Create a minimal test to verify the installation works with find_package
77+ mkdir -p ${{ runner.temp }}/test-find-package
78+ cd ${{ runner.temp }}/test-find-package
79+
80+ # Create test CMakeLists.txt
81+ cat > CMakeLists.txt << EOF
82+ cmake_minimum_required(VERSION 3.20)
83+ project(test-find-package CXX)
84+
85+ find_package(stlab-enum-ops REQUIRED)
86+
87+ message(STATUS "Successfully found stlab-enum-ops")
88+ EOF
89+
90+ # Convert paths to forward slashes for CMake (works on all platforms)
91+ INSTALL_PREFIX=$(echo '${{ runner.temp }}/install' | sed 's|\\|/|g')
92+
93+ # Test find_package with CMAKE_PREFIX_PATH
94+ cmake -B build -S . -DCMAKE_PREFIX_PATH="${INSTALL_PREFIX}"
95+
4696 clang-tidy :
4797 runs-on : ubuntu-latest
4898
4999 steps :
50- - uses : actions/checkout@v5
100+ - uses : actions/checkout@v6
51101
52102 - name : Configure CMake with clang-tidy
53103 run : cmake --preset=clang-tidy
@@ -67,10 +117,11 @@ jobs:
67117 contents : read
68118
69119 steps :
70- - uses : actions/checkout@v5
120+ - uses : actions/checkout@v6
71121
122+ # ssciwr/doxygen-install@1.6.4
72123 - name : Install Doxygen
73- uses : ssciwr/doxygen-install@v1
124+ uses : ssciwr/doxygen-install@501e53b879da7648ab392ee226f5b90e42148449
74125
75126 - name : Configure CMake
76127 run : cmake --preset=docs
0 commit comments