我一直在使用SDL 3,我有一个小的不便。当我想启动我的.exe文件时,我必须手动将SDL3.dll
添加到build/src
。我想通过在编译后添加它来自动化这个过程。问题是我使用了一个带有git子模块的接口,所以.dll
没有预编译,你不能用file(<COPY|INSTALL> <files>... DESTINATION)
复制它
我的文件夹结构如下:
- 构建
- 包括
- src
- 子模块
submodules/CmakeLists.txt
:
add_subdirectory(SDL)
add_subdirectory(glm)
add_library(submodules INTERFACE)
target_link_libraries(submodules INTERFACE SDL3::SDL3 glm)
字符串src/CmakeLists.txt
:
add_executable(${PROJECT_NAME})
add_library(game SHARED game.cpp)
target_include_directories(game PRIVATE ${PROJECT_SOURCE_DIR}/include)
target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/include)
target_sources(${PROJECT_NAME} PRIVATE main.cpp
engine.cpp
glad.c
graphics.cpp
action_manager.cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE submodules game)
型
1条答案
按热度按时间k2fxgqgv1#
因此,我向
src/CMakeLists.txt
link to docs添加了一个CMake自定义命令在我的例子中,它看起来像这样:
字符串