From 0b70e92769dae93d41211ddf9fbde1f3a6fadce9 Mon Sep 17 00:00:00 2001 From: df Date: Sun, 5 May 2024 12:12:09 +0800 Subject: [PATCH] Enhance: Re-add the support for other build types FYI: This commit is supposed to be used with the CMakeLists.txt in [pull #189 from PTSD](https://github.com/ntut-open-source-club/practical-tools-for-simple-design/pull/189) --- CMakeLists.txt | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 940948f..d01f635 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project(REPLACE_WITH_YOUR_PROJECT_NAME) set(CMAKE_CXX_STANDARD 17) add_subdirectory(PTSD) -add_library(Framework ${PTSD_SRC_FILES} $) +add_library(Framework ${PTSD_SRC_FILES} $) include(files.cmake) set(SRC_DIR ${CMAKE_SOURCE_DIR}/src) @@ -28,12 +28,25 @@ else() endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") - target_compile_definitions(${PROJECT_NAME} PRIVATE RESOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}/Resources") + set(RESOURCES_DIR "${CMAKE_SOURCE_DIR}/Resources" CACHE STRING "Resources directory") +elseif(CMAKE_BUILD_TYPE STREQUAL "Release") + add_custom_target(CopyResources + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_SOURCE_DIR}/Resources + ${CMAKE_BINARY_DIR}/Resources + ) + add_dependencies(${PROJECT_NAME} CopyResources) + set(RESOURCES_DIR "./Resources") else() - message(FATAL_ERROR "relative RESOURCE_DIR is WIP, Please use `-DCMAKE_BUILD_TYPE=Debug` build for now.") - # target_compile_definitions(${PROJECT_NAME} PRIVATE RESOURCE_DIR="${CMAKE_INSTALL_PREFIX}/Resources") + message(AUTHOR_WARNING + "Unknown build type: ${CMAKE_BUILD_TYPE}. Please ensure that You have passed RESOURCES_DIR to CMake.") endif() +message(STATUS "Resources directory: ${RESOURCES_DIR}") +message(STATUS "PTSD Assets directory: ${PTSD_ASSETS_DIR}") + +target_compile_definitions(${PROJECT_NAME} PRIVATE RESOURCES_DIR="${RESOURCES_DIR}") +target_compile_definitions(${PROJECT_NAME} PRIVATE PTSD_ASSETS_DIR=" ${PTSD_ASSETS_DIR}") target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE ${DEPENDENCY_INCLUDE_DIRS}) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/PTSD/include) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)