commit f46b7be81846771ebf2ddebff3964f0be2c8c193
parent 82580d9020785a4bf420a95ce88530b4a2886895
Author: MTRNord <mtrnord1@gmail.com>
Date: Tue, 24 Sep 2024 00:58:55 +0200
Try to fix ci dependencies
Diffstat:
1 file changed, 59 insertions(+), 27 deletions(-)
diff --git a/.github/workflows/cmake-multi-platform.yml b/.github/workflows/cmake-multi-platform.yml
@@ -23,9 +23,9 @@ jobs:
#
# To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.
matrix:
- os: [ubuntu-latest, windows-latest]
- build_type: [Release]
- c_compiler: [gcc, clang, cl]
+ os: [ ubuntu-latest, windows-latest ]
+ build_type: [ Release ]
+ c_compiler: [ gcc, clang, cl ]
include:
- os: windows-latest
c_compiler: cl
@@ -45,31 +45,63 @@ jobs:
c_compiler: cl
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v4
- - name: Set reusable strings
- # Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
- id: strings
- shell: bash
- run: |
- echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
+ - name: Set reusable strings
+ # Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
+ id: strings
+ shell: bash
+ run: |
+ echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
- - name: Configure CMake
- # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
- # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
- run: >
- cmake -B ${{ steps.strings.outputs.build-output-dir }}
- -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
- -DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
- -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
- -S ${{ github.workspace }}
+ # Install dependencies if linux
+ - name: Install dependencies
+ if: startsWith(matrix.os, 'ubuntu')
+ run: sudo apt-get -y install cmake libcurl-dev libspdlog-dev libjsoncpp-dev
- - name: Build
- # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
- run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}
+ # Setup vcpkg if windows
+ - name: Setup vcpkg
+ if: startsWith(matrix.os, 'windows')
+ uses: friendlyanon/setup-vcpkg@v1
- - name: Test
- working-directory: ${{ steps.strings.outputs.build-output-dir }}
- # Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
- # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
- run: ctest --build-config ${{ matrix.build_type }}
+ # Install the dependencies if windows
+ - name: Install dependencies
+ if: startsWith(matrix.os, 'windows')
+ run: vcpkg install curl spdlog jsoncpp
+
+ - name: Configure CMake
+ # Only run this step if we are not on windows as windows will use the vcpkg toolchain file. So this only runs on macos or linux.
+ if: startsWith(matrix.os, 'ubuntu') || startsWith(matrix.os, 'macos')
+
+ # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
+ # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
+ run: >
+ cmake -B ${{ steps.strings.outputs.build-output-dir }}
+ -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
+ -DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
+ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
+ -S ${{ github.workspace }}
+
+ - name: Configure CMake
+ # Only run this step if we are not on windows as windows will use the vcpkg toolchain file. So this only runs on macos or linux.
+ if: startsWith(matrix.os, 'windows')
+
+ # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
+ # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
+ run: >
+ cmake -B ${{ steps.strings.outputs.build-output-dir }}
+ -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
+ -DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
+ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
+ -D "CMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake"
+ -S ${{ github.workspace }}
+
+ - name: Build
+ # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
+ run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}
+
+ - name: Test
+ working-directory: ${{ steps.strings.outputs.build-output-dir }}
+ # Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
+ # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
+ run: ctest --build-config ${{ matrix.build_type }}