AronaImGui/Arona/CMakeLists.txt

43 lines
1.5 KiB
CMake

project(arona LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 26)
set(CMAKE_C_STANDARD 11)
add_subdirectory(third_party/imgui)
# 隐藏控制台窗口
add_link_options(-mwindows)
# 遍历添加源文件
set(ALL_FILES "")
retrieve_files(${CMAKE_CURRENT_SOURCE_DIR}/src ALL_FILES)
add_executable(${PROJECT_NAME} ${ALL_FILES})
# 添加目录
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
# 添加链接库
target_link_libraries(${PROJECT_NAME} core imgui)
add_definitions(-DIMGUI_USER_CONFIG="widget/user_imconfig.h")
set(RESOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/resources)
file(GLOB RESOURCE_FILES ${RESOURCE_DIR}/*)
set(RESOURCE_DEST_DIR ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/resources)
# 添加构建后拷贝命令
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${RESOURCE_DEST_DIR}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${RESOURCE_DIR} ${RESOURCE_DEST_DIR}
COMMENT "Copying resource files to build directory"
)
# 如果你想让资源文件在构建过程中的某个阶段参与依赖关系
add_custom_target(CopyResources ALL
COMMAND ${CMAKE_COMMAND} -E make_directory ${RESOURCE_DEST_DIR}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${RESOURCE_DIR} ${RESOURCE_DEST_DIR}
COMMENT "Copying resource files to build directory"
)
message(STATUS "Resource files will be copied to ${RESOURCE_DEST_DIR}")
# 确保可执行文件在拷贝资源文件之后生成
add_dependencies(${PROJECT_NAME} CopyResources)