Use VCPKG in the Github Action (fix)
This commit is contained in:
parent
f56aea4af1
commit
628f01b276
4 changed files with 25 additions and 16 deletions
23
.github/workflows/cmake.yml
vendored
23
.github/workflows/cmake.yml
vendored
|
@ -1,8 +1,13 @@
|
||||||
name: CMake
|
name: CMake
|
||||||
|
|
||||||
|
env:
|
||||||
|
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
|
||||||
|
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ main ]
|
branches:
|
||||||
|
- '*'
|
||||||
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
@ -10,8 +15,6 @@ jobs:
|
||||||
build:
|
build:
|
||||||
name: "${{ matrix.configurations.name }} | ${{ matrix.cmake-build-type }}"
|
name: "${{ matrix.configurations.name }} | ${{ matrix.cmake-build-type }}"
|
||||||
runs-on: ${{ matrix.configurations.os }}
|
runs-on: ${{ matrix.configurations.os }}
|
||||||
env:
|
|
||||||
CONAN_SYSREQUIRES_MODE: enabled
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
|
@ -37,20 +40,18 @@ jobs:
|
||||||
if: matrix.configurations.os == 'ubuntu-20.04' || matrix.configurations.os == 'ubuntu-18.04'
|
if: matrix.configurations.os == 'ubuntu-20.04' || matrix.configurations.os == 'ubuntu-18.04'
|
||||||
run: sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
|
run: sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
|
||||||
|
|
||||||
- name: Bootstrap VCPKG
|
|
||||||
if: matrix.configurations.os == 'ubuntu-20.04' || matrix.configurations.os == 'ubuntu-18.04'
|
|
||||||
run: $GITHUB_WORKSPACE/vcpkg/bootstrap-vcpkg.sh
|
|
||||||
|
|
||||||
- name: Bootstrap VCPKG
|
- name: Create Build Environment
|
||||||
if: matrix.configurations.os == 'windows-2019'
|
# Some projects don't allow in-source building, so create a separate build directory
|
||||||
run: $GITHUB_WORKSPACE\\bootstrap-vcpkg.bat
|
# We'll use this as our working directory for all subsequent commands
|
||||||
|
run: cmake -E make_directory ${{runner.workspace}}/build
|
||||||
|
|
||||||
- name: Configure CMake
|
- name: Configure CMake
|
||||||
working-directory: $GITHUB_WORKSPACE
|
working-directory: ${{runner.workspace}}/build
|
||||||
# Use a bash shell so we can use the same syntax for environment variable
|
# Use a bash shell so we can use the same syntax for environment variable
|
||||||
# access regardless of the host operating system
|
# access regardless of the host operating system
|
||||||
shell: bash
|
shell: bash
|
||||||
run: cmake -B ${{runner.workspace}}/build -DCMAKE_BUILD_TYPE=${{ matrix.cmake-build-type }}
|
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.cmake-build-type }}
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
|
|
|
@ -3,6 +3,7 @@ set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/
|
||||||
CACHE STRING "Vcpkg toolchain file")
|
CACHE STRING "Vcpkg toolchain file")
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.17)
|
cmake_minimum_required(VERSION 3.17)
|
||||||
|
enable_language(CXX)
|
||||||
project(modern_cpp_exercises )
|
project(modern_cpp_exercises )
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
@ -10,6 +11,3 @@ set(CMAKE_CXX_STANDARD 20)
|
||||||
add_subdirectory(lib)
|
add_subdirectory(lib)
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
add_subdirectory(test)
|
add_subdirectory(test)
|
||||||
|
|
||||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/assets/maze.png DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
|
||||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/assets/sprites32.png DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
|
||||||
|
|
|
@ -1,12 +1,22 @@
|
||||||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "*.cpp")
|
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "*.cpp")
|
||||||
add_executable(pacman ${sources})
|
add_executable(pacman ${sources})
|
||||||
target_link_libraries(pacman libpacman)
|
target_link_libraries(pacman PUBLIC libpacman)
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
find_package(sdl2 CONFIG REQUIRED)
|
||||||
|
target_link_libraries(pacman PUBLIC SDL2::SDL2main)
|
||||||
|
endif()
|
||||||
|
|
||||||
set_target_properties(pacman
|
set_target_properties(pacman
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_custom_command(TARGET pacman POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
|
${PROJECT_SOURCE_DIR}/assets/maze.png
|
||||||
|
${PROJECT_SOURCE_DIR}/assets/sprites32.png
|
||||||
|
$<TARGET_FILE_DIR:pacman>)
|
||||||
|
|
||||||
#target_compile_options(pacman PRIVATE -fsanitize=address) # /MD will be used implicitly
|
#target_compile_options(pacman PRIVATE -fsanitize=address) # /MD will be used implicitly
|
||||||
#target_link_directories(pacman PRIVATE "$ENV{ProgramFiles\(x86\)}/Microsoft Visual Studio/2019/Community/VC/Tools/Llvm/x64/lib/clang/10.0.0/lib/windows")
|
#target_link_directories(pacman PRIVATE "$ENV{ProgramFiles\(x86\)}/Microsoft Visual Studio/2019/Community/VC/Tools/Llvm/x64/lib/clang/10.0.0/lib/windows")
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "Game.hpp"
|
#include "Game.hpp"
|
||||||
|
|
||||||
extern "C" int main([[maybe_unused]] int argc, [[maybe_unused]] char * argv[]) {
|
int main(int, char**) {
|
||||||
Game game;
|
Game game;
|
||||||
game.run();
|
game.run();
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue