1、如题:Implant 下有两个文件夹Nails、Plates,希望用Cmake命令将每个文件夹中的文件拷贝到Bin目录下,CMakeLists.txt与Implant放到同一目录下,可在CMakeLists.txt中用以下语句实现
COMMAND ${CMAKE_COMMAND} -E remove_directory Implant\\.svn
COMMAND ${CMAKE_COMMAND} -E remove_directory Implant\\Nails\\.svn
COMMAND ${CMAKE_COMMAND} -E remove_directory Implant\\Plates\\.svn
COMMAND ${CMAKE_COMMAND} -E copy_directory Implant ${Bin_Root}\\$(ConfigurationName)\\Implant
执行过程却发现Nails文件夹中只能拷贝部分文件,原因是Nails中的文件有些是用中文命名的,所以带有中文的文件cmake是无法识别的,导致拷贝失败。
又记起以前为Cmake指定一个第三方库Qt的Dir,因为Qt放到了一个中文目录下也一直导致camkeConfigure失败
cmake拷贝具体文件可用以下语句
COMMAND ${CMAKE_COMMAND} -E copy_if_different Trace.bat ${Bin_Root}\\$(ConfigurationName)\\Trace.bat
2、指定Cmake的最低版本限制,如果不指定cmake运行时会有warn。
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
3、指定生成的exe等文件的目录
SET(Bin_Root "${CMAKE_CURRENT_SOURCE_DIR}/Bin/$(PlatformName)")//将CMAKE_CURRENT_SOURCE_DIR}/Bin/$(PlatformName)定义为Bin_Root,以后出现Bin_Root 指的便是前者
SET_TARGET_PROPERTIES(KeyGenerator//工程名
PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${Bin_Root}
)
上述语句便指定将exe文件生成到bin(如果没有bin,则创建)下