diff options
Diffstat (limited to 'common.cmake')
-rw-r--r-- | common.cmake | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/common.cmake b/common.cmake index c67f983..546db7d 100644 --- a/common.cmake +++ b/common.cmake @@ -222,3 +222,23 @@ if(NOT parent_dir) _cc_apply_settings("${target}") endmacro() endif() + +function(install_pdbs) + if(NOT is_msvc) + return() + endif() + cmake_parse_arguments(INSTALL_PDBS "" "DESTINATION" "TARGETS" ${ARGN}) + if(NOT INSTALL_PDBS_DESTINATION) + message(FATAL_ERROR "common.cmake: install_pdbs: please specify DESTINATION") + endif() + if(NOT INSTALL_PDBS_TARGETS) + message(FATAL_ERROR "common.cmake: install_pdbs: please specify TARGETS") + endif() + if(INSTALL_PDBS_UNPARSED_ARGUMENTS) + message(FATAL_ERROR "common.cmake: install_pdbs: unrecognized arguments: ${INSTALL_PDBS_UNPARSED_ARGUMENTS}") + endif() + foreach(target ${INSTALL_PDBS_TARGETS}) + list(APPEND pdbs "$<TARGET_PDB_FILE:${target}>") + endforeach() + install(FILES ${pdbs} DESTINATION ${INSTALL_PDBS_DESTINATION} OPTIONAL) +endfunction() |