CONGE-1 - Setup that works with conan and cmake
This commit is contained in:
parent
1842376ddf
commit
77084729d8
1
.gitignore
vendored
1
.gitignore
vendored
@ -10,4 +10,5 @@ CMakeCache.txt
|
||||
build.ninja
|
||||
cmake_install.cmake
|
||||
CMakeCache.txt
|
||||
CMakeUserPresets.json
|
||||
.ninja*
|
||||
@ -1,19 +1,35 @@
|
||||
cmake_minimum_required(VERSION 3.29)
|
||||
project(ConjureEngineProject)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
# Set the default build type to Debug if not specified by the user
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type (default Debug)" FORCE)
|
||||
endif()
|
||||
|
||||
set(CONAN_DEPENDENCIES_DIR ${CMAKE_BINARY_DIR}/Conan)
|
||||
# Set architecture
|
||||
if(NOT DEFINED ARCH)
|
||||
set(ARCH x64) # Default to x64 architecture
|
||||
endif()
|
||||
|
||||
execute_process(COMMAND conan install ${CMAKE_SOURCE_DIR}/ConjureEngine --output-folder=${CONAN_DEPENDENCIES_DIR} --build=missing)
|
||||
execute_process(COMMAND conan install ${CMAKE_SOURCE_DIR}/Demo1 --output-folder=${CONAN_DEPENDENCIES_DIR} --build=missing)
|
||||
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/build)
|
||||
|
||||
set(CMAKE_TOOLCHAIN_FILE "${CONAN_DEPENDENCIES_DIR}/build/Release/generators/conan_toolchain.cmake" CACHE FILEPATH "Conan toolchain file")
|
||||
set(CMAKE_PREFIX_PATH "${CONAN_DEPENDENCIES_DIR}/build/Release/generators" ${CMAKE_PREFIX_PATH})
|
||||
set(CMAKE_MODULE_PATH "${CONAN_DEPENDENCIES_DIR}/build/Release/generators" ${CMAKE_MODULE_PATH})
|
||||
# Include the Conan-generated files
|
||||
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/generators")
|
||||
|
||||
include("${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/generators/conan_toolchain.cmake")
|
||||
|
||||
|
||||
# Set common output directories
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/intermediates/${CMAKE_BUILD_TYPE}/${ARCH}/${PROJECT_NAME})
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}/${ARCH}/${PROJECT_NAME})
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}/${ARCH}/${PROJECT_NAME})
|
||||
|
||||
# Locate packages using find_package
|
||||
find_package(glm REQUIRED)
|
||||
find_package(SDL2 REQUIRED)
|
||||
|
||||
# Add subdirectories for engine and demo
|
||||
add_subdirectory(./ConjureEngine)
|
||||
add_subdirectory(./Demo1)
|
||||
add_subdirectory(./Demo1)
|
||||
|
||||
@ -1,27 +1,16 @@
|
||||
cmake_minimum_required(VERSION 3.29)
|
||||
project(ConjureEngine)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set the architecture (assuming you're passing the architecture as a CMake variable)
|
||||
# Replace 'x64' with your system's architecture, or set this dynamically based on the system
|
||||
if(NOT DEFINED ARCH)
|
||||
set(ARCH x64) # You can change this to x86 or any other architecture you are targeting
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Set common output directories
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/intermediates/${ARCH}/${PROJECT_NAME})
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${ARCH}/${PROJECT_NAME})
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${ARCH}/${PROJECT_NAME})
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
find_package(glm REQUIRED)
|
||||
find_package(SDL2 REQUIRED)
|
||||
find_package(Vulkan REQUIRED)
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC src/ConjureEngine/ConjureEngine.h src/ConjureEngine/ConjureEngine.cpp)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
|
||||
|
||||
# Specify include directories
|
||||
target_include_directories(ConjureEngine PUBLIC include)
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC include)
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_BINARY_DIR}/include)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} SDL2::SDL2 glm::glm)
|
||||
@ -1,4 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "glm/glm.hpp"
|
||||
|
||||
namespace ConjureEngine {
|
||||
void SayHello();
|
||||
glm::vec3& Forward();
|
||||
}
|
||||
|
||||
@ -1,18 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.29)
|
||||
project(Demo1)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set the architecture (assuming you're passing the architecture as a CMake variable)
|
||||
# Replace 'x64' with your system's architecture, or set this dynamically based on the system
|
||||
if(NOT DEFINED ARCH)
|
||||
set(ARCH x64) # You can change this to x86 or any other architecture you are targeting
|
||||
endif()
|
||||
|
||||
# Set common output directories
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/intermediates/${ARCH}/${PROJECT_NAME})
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${ARCH}/${PROJECT_NAME})
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${ARCH}/${PROJECT_NAME})
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
add_executable(${PROJECT_NAME} src/main.cpp)
|
||||
|
||||
|
||||
@ -1,8 +0,0 @@
|
||||
[requires]
|
||||
|
||||
[generators]
|
||||
CMakeDeps
|
||||
CMakeToolchain
|
||||
|
||||
[layout]
|
||||
cmake_layout
|
||||
8
debug.sh
Executable file
8
debug.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Run Conan to install dependencies
|
||||
conan install . -s build_type=Debug --build=missing
|
||||
|
||||
# Run CMake with the updated CMAKE_PREFIX_PATH
|
||||
#cmake -DCMAKE_BUILD_TYPE=Debug -S . -B build
|
||||
#cmake --build build
|
||||
8
release.sh
Executable file
8
release.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Run Conan to install dependencies
|
||||
conan install . -s build_type=Release --build=missing
|
||||
|
||||
# Run CMake with the updated CMAKE_PREFIX_PATH
|
||||
#cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
|
||||
#cmake --build build
|
||||
Loading…
x
Reference in New Issue
Block a user