2015-01-15 34 views
0

当我为调试版本安装我的库时,也会复制pdb文件。CMake为发布版本复制PDB文件

我也希望发布版本也一样,但CMake并没有这样做。所以我必须手动选择CMAKE_BINARY_DIR中的* .pdb文件并复制它们。

基本上,我该怎么做?或者还有其他解决这个问题的方法吗?

回答

2

这样做的一种方法是使用Cmake的“文件”功能。

if(CMAKE_BUILD_TYPE EQUAL "RELEASE") 
    file(GLOB filelist ${PATH_TO_PDB_FILES}/*.pdb) 
    file(COPY ${filelist} DESTINATION ${PATH_TO_PDB_DESTINATION}) 
endif(CMAKE_BUILD_TYPE EQUAL "RELEASE") 

第一个“文件”功能调用使用“GLOB”选项,并生成一个列表(称为“文件列表”)的位于“PATH_TO_PDB_FILES”目录.pdb文件。

第二个“文件”函数调用使用“COPY”选项,它使用第一个“文件”函数调用生成的文件列表,并将这些文件复制到“PATH_TO_PDB_DESTINATION”目录中。

我还把if语句来检查你是否正在发布版本。 (假设你只想在发布版本上这样做)。

编辑:如果我理解正确,你想在安装阶段复制pdb文件。如果是这样的话,这应该这样做:

INSTALL(DIRECTORY ${PATH_TO_PDB_FILES} 
    DESTINATION ${PATH_TO_PDB_DESTINATION} 
    CONFIGURATIONS Release 
    FILES_MATCHING 
    PATTERN *.pdb 
) 
+0

pdb文件不会生成,直到建立图书馆..这应该作为后期构建任务运行,如何做到这一点? – Nick

+0

关于'if(CMAKE_BUILD_TYPE EQUAL“RELEASE”)':http://stackoverflow.com/questions/24460486/cmake-build-type-not-being-used-in-cmakelists-txt –

+0

请看我的编辑,这个新的解决方案应该做的伎俩。 – Cyberunner23

相关问题