aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-10-31 12:29:41 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-10-31 12:29:41 -0700
commit600e11d83cc8d66dc15f871ffa0b973978871910 (patch)
tree1958e93b52c6c7611d98b6cbf317d19eb17591db /scripts
parent8840ed809fbb2152b1156748bde30e30191228b9 (diff)
downloadvcpkg-600e11d83cc8d66dc15f871ffa0b973978871910.tar.gz
vcpkg-600e11d83cc8d66dc15f871ffa0b973978871910.zip
[vcpkg_copy_pdbs] Branch on dynamic/static. Resolves #224
Diffstat (limited to 'scripts')
-rw-r--r--scripts/cmake/vcpkg_copy_pdbs.cmake47
1 files changed, 25 insertions, 22 deletions
diff --git a/scripts/cmake/vcpkg_copy_pdbs.cmake b/scripts/cmake/vcpkg_copy_pdbs.cmake
index b99649d59..10cd1b2d3 100644
--- a/scripts/cmake/vcpkg_copy_pdbs.cmake
+++ b/scripts/cmake/vcpkg_copy_pdbs.cmake
@@ -1,4 +1,5 @@
function(vcpkg_copy_pdbs)
+
function(merge_filelist OUTVAR INVAR)
set(MSG "")
foreach(VAR ${${INVAR}})
@@ -7,32 +8,34 @@ function(vcpkg_copy_pdbs)
set(${OUTVAR} ${MSG} PARENT_SCOPE)
endfunction()
- file(GLOB_RECURSE DLLS ${CURRENT_PACKAGES_DIR}/bin/*.dll ${CURRENT_PACKAGES_DIR}/debug/bin/*.dll)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ file(GLOB_RECURSE DLLS ${CURRENT_PACKAGES_DIR}/bin/*.dll ${CURRENT_PACKAGES_DIR}/debug/bin/*.dll)
- set(DLLS_WITHOUT_MATCHING_PDBS)
+ set(DLLS_WITHOUT_MATCHING_PDBS)
- foreach(DLL ${DLLS})
- execute_process(COMMAND dumpbin /PDBPATH ${DLL}
- COMMAND findstr PDB
- OUTPUT_VARIABLE PDB_LINE
- ERROR_QUIET
- RESULT_VARIABLE error_code
- )
+ foreach(DLL ${DLLS})
+ execute_process(COMMAND dumpbin /PDBPATH ${DLL}
+ COMMAND findstr PDB
+ OUTPUT_VARIABLE PDB_LINE
+ ERROR_QUIET
+ RESULT_VARIABLE error_code
+ )
- if(NOT error_code AND PDB_LINE MATCHES "PDB file found at")
- string(REGEX MATCH '.*' PDB_PATH ${PDB_LINE}) # Extract the path which is in single quotes
- string(REPLACE ' "" PDB_PATH ${PDB_PATH}) # Remove single quotes
- get_filename_component(DLL_DIR ${DLL} DIRECTORY)
- file(COPY ${PDB_PATH} DESTINATION ${DLL_DIR})
- else()
- list(APPEND DLLS_WITHOUT_MATCHING_PDBS ${DLL})
- endif()
- endforeach()
+ if(NOT error_code AND PDB_LINE MATCHES "PDB file found at")
+ string(REGEX MATCH '.*' PDB_PATH ${PDB_LINE}) # Extract the path which is in single quotes
+ string(REPLACE ' "" PDB_PATH ${PDB_PATH}) # Remove single quotes
+ get_filename_component(DLL_DIR ${DLL} DIRECTORY)
+ file(COPY ${PDB_PATH} DESTINATION ${DLL_DIR})
+ else()
+ list(APPEND DLLS_WITHOUT_MATCHING_PDBS ${DLL})
+ endif()
+ endforeach()
- list(LENGTH DLLS_WITHOUT_MATCHING_PDBS UNMATCHED_DLLS_LENGTH)
- if(UNMATCHED_DLLS_LENGTH GREATER 0)
- merge_filelist(MSG DLLS_WITHOUT_MATCHING_PDBS)
- message(STATUS "Warning: Could not find a matching pdb file for:\n${MSG}")
+ list(LENGTH DLLS_WITHOUT_MATCHING_PDBS UNMATCHED_DLLS_LENGTH)
+ if(UNMATCHED_DLLS_LENGTH GREATER 0)
+ merge_filelist(MSG DLLS_WITHOUT_MATCHING_PDBS)
+ message(STATUS "Warning: Could not find a matching pdb file for:\n${MSG}")
+ endif()
endif()
endfunction() \ No newline at end of file