我正在尝试编写一个
由于外部库很多,因此我不想在
基本上,如果我将
CMakeLists.txt
文件,以便在构建后将外部库所需的 dlls
复制到可执行文件所在的文件夹中。我使用的操作系统是 Win7 和 VS2010。由于外部库很多,因此我不想在
CMakeLists.txt
中逐个列出它们。我的当前解决方案是使用文件通配符,并为每个库创建一个后期构建事件:FILE(GLOB files "${LIBRARY_DIR}/lib/$(ConfigurationName)/*dll")
MESSAGE("FILE LIST IS: ${files}")
FOREACH(file ${files})
ADD_CUSTOM_COMMAND(
TARGET mylib
POST_BUILD
COMMENT "Copying dll ${file}..."
COMMAND ${CMAKE_COMMAND} -E copy ${file} "${CMAKE_BINARY_DIR}/$(ConfigurationName)/"
)
ENDFOREACH()
基本上,如果我将
$(ConfigurationName)
替换为 Release
或 Debug
,则上面的代码片段可以正常工作。但是,我希望根据发布或调试构建模式,从相应的目录中获取库。在上面的代码片段中, $(ConfigurationName)
未被Visual Studio构建模式替换。我猜这是因为这是一个VS2010变量,在CMake生成时未知。是否有聪明的想法解决这个问题?
$(Configuration)
而不是$(ConfigurationName)
吗? - Rostislav