Update PrimaryToolChain.cmake #8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage. | |
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml | |
name: CMake on a single platform | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: Release | |
jobs: | |
build: | |
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. | |
# You can convert this to a matrix build if you need cross-platform coverage. | |
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Checkout submodules | |
run: git submodule update --init --recursive | |
#-uses: actions/cache@v3 <===== YOU DO NOT NEED THIS! | |
# Install latest CMake and Ninja. | |
- uses: lukka/get-cmake@latest | |
# Or pin to a specific CMake version: | |
# lukka/get-cmake@v3.27 | |
# Setup vcpkg: ensures vcpkg is downloaded and built. | |
# Since vcpkg.json is being used later on to install the packages | |
# when `run-cmake` runs, no packages are installed at this time | |
# (and vcpkg does not run). | |
- name: Setup anew (or from cache) vcpkg (and does not build any package) | |
uses: lukka/run-vcpkg@v11 # Always specify the specific _version_ of the | |
# action you need, `v10` in this case to stay up | |
# to date with fixes on the v11 branch. | |
#with: | |
# This is the default location of the directory containing vcpkg sources. | |
# Change it to the right location if needed. | |
# vcpkgDirectory: '${{ github.workspace }}/vcpkg' | |
# If not using a submodule for vcpkg sources, this specifies which commit | |
# id must be checkout from a Git repo. | |
# Note: it must not be set if using a Git submodule for vcpkg. | |
# vcpkgGitCommitId: '${{ matrix.vcpkgCommitId }}' | |
# This is only needed if the command `vcpkg install` must run at this step. | |
# Instead it is highly suggested to let `run-cmake` to run vcpkg later on | |
# using the vcpkg.cmake toolchain. The default is `false`. | |
# runVcpkgInstall: true | |
# This is only needed if `runVpkgInstall` is `true`. | |
# This glob expression used to locate the vcpkg.json and use | |
# its directory location as `working directory` when running `vcpkg install`. | |
# Change it to match a single manifest file you want to use. | |
# Note: do not use `${{ github.context }}` to compose the value as it | |
# contains backslashes that would be misinterpreted. Instead | |
# compose a value relative to the root of the repository using | |
# `**/path/from/root/of/repo/to/vcpkg.json` to match the desired `vcpkg.json`. | |
# vcpkgJsonGlob: '**/vcpkg.json' | |
- name: Run CMake consuming CMakePreset.json and run vcpkg to build packages | |
uses: lukka/run-cmake@v10 | |
with: | |
# This is the name of the CMakePresets.json's configuration to use to generate | |
# the project files. This configuration leverages the vcpkg.cmake toolchain file to | |
# run vcpkg and install all dependencies specified in vcpkg.json. | |
configurePreset: 'x64-release' | |
# Additional arguments can be appended to the cmake command. | |
# This is useful to reduce the number of CMake's Presets since you can reuse | |
# an existing preset with different variables. | |
# configurePresetAdditionalArgs: "['-DENABLE_YOUR_FEATURE=1']" | |
# This is the name of the CMakePresets.json's configuration to build the project. | |
buildPreset: x64-release' | |
# Additional arguments can be appended when building, for example to specify the | |
# configuration to build. | |
# This is useful to reduce the number of CMake's Presets you need in CMakePresets.json. | |
buildPresetAdditionalArgs: "['--config Release']" | |
# This is the name of the CMakePresets.json's configuration to test the project with. | |
# testPreset: 'ninja-multi-vcpkg' | |
# Additional arguments can be appended when testing, for example to specify the config | |
# to test. | |
# This is useful to reduce the number of CMake's Presets you need in CMakePresets.json. | |
# testPresetAdditionalArgs: "['--config Release']" | |
# - 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 ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | |
# - name: Build | |
# # Build your program with the given configuration | |
# run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
# - name: Test | |
# working-directory: ${{github.workspace}}/build | |
# # Execute tests defined by the CMake configuration. | |
# # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | |
# run: ctest -C ${{env.BUILD_TYPE}} | |