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
|
build.ninja
|
||||||
cmake_install.cmake
|
cmake_install.cmake
|
||||||
CMakeCache.txt
|
CMakeCache.txt
|
||||||
|
CMakeUserPresets.json
|
||||||
.ninja*
|
.ninja*
|
||||||
@ -1,19 +1,35 @@
|
|||||||
cmake_minimum_required(VERSION 3.29)
|
cmake_minimum_required(VERSION 3.29)
|
||||||
project(ConjureEngineProject)
|
project(ConjureEngineProject)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
|
||||||
# Set the default build type to Debug if not specified by the user
|
# Set the default build type to Debug if not specified by the user
|
||||||
if(NOT CMAKE_BUILD_TYPE)
|
if(NOT CMAKE_BUILD_TYPE)
|
||||||
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type (default Debug)" FORCE)
|
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type (default Debug)" FORCE)
|
||||||
endif()
|
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)
|
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/build)
|
||||||
execute_process(COMMAND conan install ${CMAKE_SOURCE_DIR}/Demo1 --output-folder=${CONAN_DEPENDENCIES_DIR} --build=missing)
|
|
||||||
|
|
||||||
set(CMAKE_TOOLCHAIN_FILE "${CONAN_DEPENDENCIES_DIR}/build/Release/generators/conan_toolchain.cmake" CACHE FILEPATH "Conan toolchain file")
|
# Include the Conan-generated files
|
||||||
set(CMAKE_PREFIX_PATH "${CONAN_DEPENDENCIES_DIR}/build/Release/generators" ${CMAKE_PREFIX_PATH})
|
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/generators")
|
||||||
set(CMAKE_MODULE_PATH "${CONAN_DEPENDENCIES_DIR}/build/Release/generators" ${CMAKE_MODULE_PATH})
|
|
||||||
|
|
||||||
|
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(./ConjureEngine)
|
||||||
add_subdirectory(./Demo1)
|
add_subdirectory(./Demo1)
|
||||||
|
|||||||
@ -1,27 +1,16 @@
|
|||||||
cmake_minimum_required(VERSION 3.29)
|
cmake_minimum_required(VERSION 3.29)
|
||||||
project(ConjureEngine)
|
project(ConjureEngine)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
|
||||||
# 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})
|
|
||||||
|
|
||||||
find_package(glm REQUIRED)
|
find_package(glm REQUIRED)
|
||||||
|
find_package(SDL2 REQUIRED)
|
||||||
find_package(Vulkan REQUIRED)
|
find_package(Vulkan REQUIRED)
|
||||||
|
|
||||||
add_library(${PROJECT_NAME} STATIC src/ConjureEngine/ConjureEngine.h src/ConjureEngine/ConjureEngine.cpp)
|
add_library(${PROJECT_NAME} STATIC src/ConjureEngine/ConjureEngine.h src/ConjureEngine/ConjureEngine.cpp)
|
||||||
|
|
||||||
target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
|
|
||||||
|
|
||||||
# Specify include directories
|
# 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
|
#pragma once
|
||||||
|
|
||||||
|
#include "glm/glm.hpp"
|
||||||
|
|
||||||
namespace ConjureEngine {
|
namespace ConjureEngine {
|
||||||
void SayHello();
|
void SayHello();
|
||||||
|
glm::vec3& Forward();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,18 +1,7 @@
|
|||||||
cmake_minimum_required(VERSION 3.29)
|
cmake_minimum_required(VERSION 3.29)
|
||||||
project(Demo1)
|
project(Demo1)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
|
||||||
# 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})
|
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME} src/main.cpp)
|
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