diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml new file mode 100644 index 0000000..abbca95 --- /dev/null +++ b/.github/workflows/cmake.yml @@ -0,0 +1,25 @@ +name: cmake + +on: + push: + paths: + - "**.cpp" + - "**.ixx" + - "**.cmake" + - "**/CMakeLists.txt" + - ".github/workflows/cmake.yml" + +env: + CTEST_NO_TESTS_ACTION: error + CTEST_PARALLEL_LEVEL: 4 + + +jobs: + + windows-msvc: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v4 + + - run: cmake --workflow --preset debug diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..8711b23 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,146 @@ +{ + "version": 6, + +"configurePresets": [ +{ + "name": "default", + "binaryDir": "${sourceDir}/build", + "cacheVariables": { + "CMAKE_COMPILE_WARNING_AS_ERROR": true + } +}, +{ + "name": "multi", "inherits": "default", + "displayName": "Ninja Multi-Config", + "generator": "Ninja Multi-Config" +}, +{ + "name": "msvc", "inherits": "default", + "cacheVariables": { + "CMAKE_COMPILE_WARNING_AS_ERROR": false + } +} +], +"buildPresets": [ + { + "name": "default", + "configurePreset": "default" + }, + { + "name": "release", + "configurePreset": "multi", + "configuration": "Release" + }, + { + "name": "debug", + "configurePreset": "multi", + "configuration": "Debug" + }, + { + "name": "msvc-debug", + "configurePreset": "msvc", + "configuration": "Debug" + } +], +"testPresets": [ +{ + "name": "default", + "configurePreset": "default", + "output": { + "outputOnFailure": true, + "verbosity": "verbose" + }, + "execution": { + "noTestsAction": "error", + "scheduleRandom": true, + "stopOnFailure": false, + "timeout": 60 + } +}, +{ + "name": "release", "inherits": "default", + "configurePreset": "multi", + "configuration": "Release" +}, +{ + "name": "debug", "inherits": "default", + "configurePreset": "multi", + "configuration": "Debug" +}, +{ + "name": "msvc-debug", "inherits": "default", + "configurePreset": "msvc", + "configuration": "Debug" +} +], +"workflowPresets": [ + { + "name": "default", + "steps": [ + { + "type": "configure", + "name": "default" + }, + { + "type": "build", + "name": "default" + }, + { + "type": "test", + "name": "default" + } + ] + }, + { + "name": "debug", + "steps": [ + { + "type": "configure", + "name": "multi" + }, + { + "type": "build", + "name": "debug" + }, + { + "type": "test", + "name": "debug" + } + ] + }, + { + "name": "release", + "steps": [ + { + "type": "configure", + "name": "multi" + }, + { + "type": "build", + "name": "release" + }, + { + "type": "test", + "name": "release" + } + ] + }, + { + "name": "msvc", + "steps": [ + { + "type": "configure", + "name": "msvc" + }, + { + "type": "build", + "name": "msvc-debug" + }, + { + "type": "test", + "name": "msvc-debug" + } + ] + } +] +}