!yamlscript/v0:

:use common: :all
:: workflow-setup()

jobs:

  #----------------------------------------------------------------------------
  install_tests:
    :: setup-job('coverage' 'coverage')
    name: ${{matrix.name}}/${{matrix.bt}}
    runs-on: ${{matrix.os}}
    strategy:
      fail-fast: false
      matrix:
        include:
          - {name: find_package/linux/Release       , sdir: test/test_install     , os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13"                                                               , tgt: all      , bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          - {name: find_package/linux/Debug         , sdir: test/test_install     , os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13"                                                               , tgt: all      , bt: Debug  , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          - {name: find_package/linux/RelNoExc      , sdir: test/test_install     , os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"                 , tgt: all      , bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          - {name: find_package/linux/DbgNoExc      , sdir: test/test_install     , os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"                 , tgt: all      , bt: Debug  , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          - {name: find_package/linux/libcxx/Release, sdir: test/test_install     , os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14"                                                           , tgt: all      , bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: find_package/linux/libcxx/Debug  , sdir: test/test_install     , os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14"                                                           , tgt: all      , bt: Debug  , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: find_package/linux/libcxx/RelNoExc,sdir: test/test_install     , os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"             , tgt: all      , bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: find_package/linux/libcxx/DbgNoExc,sdir: test/test_install     , os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"             , tgt: all      , bt: Debug  , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: find_package/macos/Release       , sdir: test/test_install     , os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64"                                                 , tgt: ALL_BUILD, bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          - {name: find_package/macos/Debug         , sdir: test/test_install     , os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64"                                                 , tgt: ALL_BUILD, bt: Debug  , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          - {name: find_package/macos/RelNoExc      , sdir: test/test_install     , os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"   , tgt: ALL_BUILD, bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          - {name: find_package/macos/DbgNoExc      , sdir: test/test_install     , os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"   , tgt: ALL_BUILD, bt: Debug  , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/lib/cmake/c4core -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          - {name: find_package/win/Release         , sdir: test/test_install     , os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64"                                                         , tgt: ALL_BUILD, bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/cmake            -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          - {name: find_package/win/Debug           , sdir: test/test_install     , os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64"                                                         , tgt: ALL_BUILD, bt: Debug  , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/cmake            -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          - {name: find_package/win/RelNoExc        , sdir: test/test_install     , os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64 -DCMAKE_CXX_FLAGS=' /EHa- /EHs- /EHc /EHr- /GR- /wd4530'", tgt: ALL_BUILD, bt: Release, vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/cmake            -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          - {name: find_package/win/DbgNoExc        , sdir: test/test_install     , os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64 -DCMAKE_CXX_FLAGS=' /EHa- /EHs- /EHc /EHr- /GR- /wd4530'", tgt: ALL_BUILD, bt: Debug  , vars: "-Dc4core_DIR=$GITHUB_WORKSPACE/$PDIR/cmake            -DC4CORE_TEST_INSTALL_PACKAGE_MODE=ON", commonvars: }
          #
          - {name: find_library/linux/Release       , sdir: test/test_install     , os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13"                                                               , tgt: all      , bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          - {name: find_library/linux/Debug         , sdir: test/test_install     , os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13"                                                               , tgt: all      , bt: Debug  , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          - {name: find_library/linux/RelNoExc      , sdir: test/test_install     , os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"                 , tgt: all      , bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          - {name: find_library/linux/DbgNoExc      , sdir: test/test_install     , os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"                 , tgt: all      , bt: Debug  , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          - {name: find_library/linux/libcxx/Release, sdir: test/test_install     , os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14"                                                           , tgt: all      , bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: find_library/linux/libcxx/Debug  , sdir: test/test_install     , os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14"                                                           , tgt: all      , bt: Debug  , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: find_library/linux/libcxx/RelNoExc,sdir: test/test_install     , os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"             , tgt: all      , bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: find_library/linux/libcxx/DbgNoExc,sdir: test/test_install     , os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"             , tgt: all      , bt: Debug  , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: find_library/macos/Release       , sdir: test/test_install     , os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64"                                                 , tgt: ALL_BUILD, bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          - {name: find_library/macos/Debug         , sdir: test/test_install     , os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64"                                                 , tgt: ALL_BUILD, bt: Debug  , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          - {name: find_library/macos/RelNoExc      , sdir: test/test_install     , os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"   , tgt: ALL_BUILD, bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          - {name: find_library/macos/DbgNoExc      , sdir: test/test_install     , os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"   , tgt: ALL_BUILD, bt: Debug  , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          - {name: find_library/win/Release         , sdir: test/test_install     , os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64"                                                         , tgt: ALL_BUILD, bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          - {name: find_library/win/Debug           , sdir: test/test_install     , os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64"                                                         , tgt: ALL_BUILD, bt: Debug  , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          - {name: find_library/win/RelNoExc        , sdir: test/test_install     , os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64 -DCMAKE_CXX_FLAGS=' /EHa- /EHs- /EHc /EHr- /GR- /wd4530'", tgt: ALL_BUILD, bt: Release, vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          - {name: find_library/win/DbgNoExc        , sdir: test/test_install     , os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64 -DCMAKE_CXX_FLAGS=' /EHa- /EHs- /EHc /EHr- /GR- /wd4530'", tgt: ALL_BUILD, bt: Debug  , vars: "-DCMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/$PDIR           -DC4CORE_TEST_INSTALL_PACKAGE_MODE=OFF", commonvars: }
          #
          - {name: singleheader/linux/Release       , sdir: test/test_singleheader, os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13"                                                               , tgt: all      , bt: Release, vars: , commonvars: }
          - {name: singleheader/linux/Debug         , sdir: test/test_singleheader, os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13"                                                               , tgt: all      , bt: Debug  , vars: , commonvars: }
          - {name: singleheader/linux/RelNoExc      , sdir: test/test_singleheader, os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"                 , tgt: all      , bt: Release, vars: , commonvars: }
          - {name: singleheader/linux/DbgNoExc      , sdir: test/test_singleheader, os: ubuntu-24.04, cxx: g++-13    , gen: "-DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"                 , tgt: all      , bt: Debug  , vars: , commonvars: }
          - {name: singleheader/linux/libcxx/Release, sdir: test/test_singleheader, os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14"                                                           , tgt: all      , bt: Release, vars: , commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: singleheader/linux/libcxx/Debug  , sdir: test/test_singleheader, os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14"                                                           , tgt: all      , bt: Debug  , vars: , commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: singleheader/linux/libcxx/RelNoExc,sdir: test/test_singleheader, os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"             , tgt: all      , bt: Release, vars: , commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: singleheader/linux/libcxx/DbgNoExc,sdir: test/test_singleheader, os: ubuntu-24.04, cxx: clang++-14, gen: "-DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"             , tgt: all      , bt: Debug  , vars: , commonvars: "-DC4CORE_USE_LIBCXX=ON"}
          - {name: singleheader/macos/Release       , sdir: test/test_singleheader, os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64"                                                 , tgt: ALL_BUILD, bt: Release, vars: , commonvars: }
          - {name: singleheader/macos/Debug         , sdir: test/test_singleheader, os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64"                                                 , tgt: ALL_BUILD, bt: Debug  , vars: , commonvars: }
          - {name: singleheader/macos/RelNoExc      , sdir: test/test_singleheader, os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"   , tgt: ALL_BUILD, bt: Release, vars: , commonvars: }
          - {name: singleheader/macos/DbgNoExc      , sdir: test/test_singleheader, os: macos-13    , cxx: xcode     , gen: "-G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_CXX_FLAGS='-fno-exceptions -fno-rtti'"   , tgt: ALL_BUILD, bt: Debug  , vars: , commonvars: }
          - {name: singleheader/win/Release         , sdir: test/test_singleheader, os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64"                                                         , tgt: ALL_BUILD, bt: Release, vars: , commonvars: }
          - {name: singleheader/win/Debug           , sdir: test/test_singleheader, os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64"                                                         , tgt: ALL_BUILD, bt: Debug  , vars: , commonvars: }
          - {name: singleheader/win/RelNoExc        , sdir: test/test_singleheader, os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64 -DCMAKE_CXX_FLAGS=' /EHa- /EHs- /EHc /EHr- /GR- /wd4530'", tgt: ALL_BUILD, bt: Release, vars: , commonvars: }
          - {name: singleheader/win/DbgNoExc        , sdir: test/test_singleheader, os: windows-2019, cxx: vs2019    , gen: "-G 'Visual Studio 16 2019' -A x64 -DCMAKE_CXX_FLAGS=' /EHa- /EHs- /EHc /EHr- /GR- /wd4530'", tgt: ALL_BUILD, bt: Debug  , vars: , commonvars: }
    env:
      CXX_: "${{matrix.cxx}}"
      BT: "${{matrix.bt}}"
      OS: "${{matrix.os}}"
      BDIR:   "build/${{matrix.name}}"
      IDIR: "install/${{matrix.name}}"
      PDIR:  "prefix/${{matrix.name}}"
    steps:
      - :: checkout-action
      - {name: install requirements, run: source .github/reqs.sh && c4_install_test_requirements $OS}
      - {name: show info, run: source .github/setenv.sh && c4_show_info}
      - name: Install python 3.9
        uses: actions/setup-python@v4
        with: { python-version: 3.9 }
      - name: dirs
        run: |
          set -x
          echo $BDIR
          echo $IDIR
          echo $PDIR
          mkdir -p $BDIR
          mkdir -p $IDIR
          mkdir -p $PDIR
      - name: preinstall
        run: |
          if [ "${{matrix.sdir}}" == "test/test_install" ] ; then
            mkdir -p $BDIR-staging
            cmake -S . -B $BDIR-staging -DCMAKE_INSTALL_PREFIX=$PDIR -DCMAKE_BUILD_TYPE=${{matrix.bt}} ${{matrix.gen}} ${{matrix.commonvars}}
            cmake --build $BDIR-staging --config ${{matrix.bt}} --target ${{matrix.tgt}} -j
            cmake --build $BDIR-staging --config ${{matrix.bt}} --target install
          fi
      - name: configure
        run: |
          cmake -S ${{matrix.sdir}} -B $BDIR \
            -DC4CORE_BUILD_TESTS=ON \
            -DC4CORE_VALGRIND=OFF \
            -DCMAKE_BUILD_TYPE=${{matrix.bt}} \
            -DCMAKE_INSTALL_PREFIX=$IDIR \
            ${{matrix.gen}} \
            ${{matrix.vars}} \
            ${{matrix.commonvars}}
      - name: build
        run: |
          cmake --build $BDIR --config ${{matrix.bt}} --target c4core-test-build -j
      - name: run
        run: |
          cmake --build $BDIR --config ${{matrix.bt}} --target c4core-test-run
