diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 46c242f..c8c0229 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,6 @@ jobs: - { name: Windows Clang, os: windows-latest, flags: -GNinja -DCMAKE_CXX_COMPILER=clang++ } - { name: Linux GCC, os: ubuntu-latest } - { name: Linux Clang, os: ubuntu-latest, flags: -DCMAKE_CXX_COMPILER=clang++ } - - { name: macOS GCC, os: macos-latest, flags: -DCMAKE_CXX_COMPILER=g++-12 } - { name: macOS Clang, os: macos-latest, flags: -GXcode } type: - { name: Shared, flags: "ON" } @@ -41,6 +40,11 @@ jobs: - name: Checkout uses: actions/checkout@v4 + with: + submodules: true + + - name: Install Vcpkg + run: ./cmake/vcpkg/bootstrap-vcpkg.sh - name: Configure run: cmake --preset dev ${{matrix.platform.flags}} -DBUILD_SHARED_LIBS=${{matrix.type.flags}} -DCMAKE_BUILD_TYPE=${{matrix.config.name}} -DCMAKE_VERBOSE_MAKEFILE=ON @@ -58,6 +62,11 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + submodules: true + + - name: Install Vcpkg + run: ./cmake/vcpkg/bootstrap-vcpkg.sh - name: Configure run: cmake --preset coverage @@ -103,6 +112,11 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + submodules: true + + - name: Install Vcpkg + run: ./cmake/vcpkg/bootstrap-vcpkg.sh - name: Configure run: cmake --preset dev -DCMAKE_CXX_COMPILER=clang++ @@ -117,6 +131,11 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + submodules: true + + - name: Install Vcpkg + run: ./cmake/vcpkg/bootstrap-vcpkg.sh - name: Configure run: cmake --preset sanitizers diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8bd5c3b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "vcpkg"] + path = cmake/vcpkg + url = git@github.com:Microsoft/vcpkg.git diff --git a/CMakePresets.json b/CMakePresets.json index fb8d1b6..1cacd47 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -5,6 +5,7 @@ "name": "dev", "binaryDir": "build", "installDir": "build/install", + "toolchainFile": "cmake/vcpkg/scripts/buildsystems/vcpkg.cmake", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_CXX_EXTENSIONS": "OFF", @@ -13,15 +14,6 @@ "ARGON_ENABLE_WARNINGS": "ON", "ARGON_BUILD_TESTING": "ON", "ARGON_BUILD_EXAMPLES": "ON" - }, - "warnings": { - "dev": true, - "deprecated": true, - "uninitialized": true - }, - "errors": { - "dev": true, - "deprecated": true } }, { diff --git a/cmake/vcpkg b/cmake/vcpkg new file mode 160000 index 0000000..3508985 --- /dev/null +++ b/cmake/vcpkg @@ -0,0 +1 @@ +Subproject commit 3508985146f1b1d248c67ead13f8f54be5b4f5da diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3c30062..45df3c5 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,6 +1,4 @@ -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) - -find_package(Catch2 3.6.0 REQUIRED) +find_package(Catch2 3.7.0 REQUIRED) include(Catch) add_executable(test-argon Main.cpp Argument.cpp Option.cpp Parser.cpp Position.cpp) diff --git a/tests/FindCatch2.cmake b/tests/FindCatch2.cmake deleted file mode 100644 index 03ff0f0..0000000 --- a/tests/FindCatch2.cmake +++ /dev/null @@ -1,12 +0,0 @@ -include(FetchContent) - -FetchContent_Declare(Catch2 - GIT_REPOSITORY https://github.com/catchorg/Catch2.git - GIT_TAG v${Catch2_FIND_VERSION} - GIT_SHALLOW ON) -FetchContent_MakeAvailable(Catch2) -set_target_properties(Catch2 PROPERTIES COMPILE_OPTIONS "" EXPORT_COMPILE_COMMANDS OFF) -set_target_properties(Catch2WithMain PROPERTIES EXPORT_COMPILE_COMMANDS OFF) -get_target_property(CATCH2_INCLUDE_DIRS Catch2 INTERFACE_INCLUDE_DIRECTORIES) -target_include_directories(Catch2 SYSTEM INTERFACE ${CATCH2_INCLUDE_DIRS}) -target_compile_features(Catch2 PRIVATE cxx_std_17) diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 0000000..02e66cb --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,7 @@ +{ + "name": "argon", + "version-string": "0.12.0", + "dependencies": [ + "catch2" + ] +}