Один из способов сделать это - использовать функцию «файл» 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» и формирует список (так называемый «список файлов») из PDB-файлы, расположенные в каталоге «PATH_TO_PDB_FILES».
Второй вызов функции «файл» использует параметр «КОПИЯ», и он использует список файлов, сгенерированный первым вызовом функции «файл», и копирует их в каталог «PATH_TO_PDB_DESTINATION».
Я также поставил оператор if, чтобы проверить, если вы делаете сборку выпуска. (Предполагая, что вы хотите сделать это только в сборках релизов.)
EDIT: Если я правильно понял, вы хотите скопировать файлы pdb на этапе установки. Если это так, то это должно сделать это:
INSTALL(DIRECTORY ${PATH_TO_PDB_FILES}
DESTINATION ${PATH_TO_PDB_DESTINATION}
CONFIGURATIONS Release
FILES_MATCHING
PATTERN *.pdb
)
Файлы pdb не генерируются до тех пор, пока библиотека не будет построена .. Это должно выполняться как задание пост-сборки, как это сделать? – Nick
О 'if (CMAKE_BUILD_TYPE EQUAL" RELEASE ")': http://stackoverflow.com/questions/24460486/cmake-build-type-not-being-used-in-cmakelists-txt –
Пожалуйста, посмотрите мое редактирование, это новое решение должно сделать трюк. – Cyberunner23