diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2024-12-03 23:13:52 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-03 23:13:52 +0800 |
| commit | 6c655ca927a440d1f03339295235fce2a764c26b (patch) | |
| tree | 89e03d5893bccb899783245e39b648b93538569a /cmake/SlangTarget.cmake | |
| parent | 2f42388e31baef169911d6a4ce9737392ecd610c (diff) | |
Install PDB files when available (#5665)
* Install PDB files when available
Closes https://github.com/shader-slang/slang/issues/5562
* format code
* format code
---------
Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Diffstat (limited to 'cmake/SlangTarget.cmake')
| -rw-r--r-- | cmake/SlangTarget.cmake | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/cmake/SlangTarget.cmake b/cmake/SlangTarget.cmake index 89143dd2d..17b017361 100644 --- a/cmake/SlangTarget.cmake +++ b/cmake/SlangTarget.cmake @@ -49,6 +49,10 @@ function(slang_add_target dir type) DEBUG_DIR # Install this target as part of a component INSTALL_COMPONENT + # Don't install debug info by default for this target and use this + # explicit name instead, used for externally built things such as + # slang-glslang and slang-llvm which have large pdb files + DEBUG_INFO_INSTALL_COMPONENT ) set(multi_value_args # Use exactly these sources, instead of globbing from the directory @@ -415,9 +419,31 @@ function(slang_add_target dir type) endmacro() if(ARG_INSTALL) i() + set(pdb_component "debug-info") endif() if(ARG_INSTALL_COMPONENT) i(EXCLUDE_FROM_ALL COMPONENT ${ARG_INSTALL_COMPONENT}) + set(pdb_component "${ARG_INSTALL_COMPONENT}-debug-info") + endif() + if(ARG_DEBUG_INFO_INSTALL_COMPONENT) + set(pdb_component ${ARG_DEBUG_INFO_INSTALL_COMPONENT}) + endif() + if(MSVC AND DEFINED pdb_component) + if( + type STREQUAL "EXECUTABLE" + OR type STREQUAL "SHARED" + OR type STREQUAL "MODULE" + ) + install( + FILES $<TARGET_PDB_FILE:${target}> + DESTINATION ${runtime_subdir} + # Optional, because if we're building without debug info (like + # a release build) then we don't want to fail here. + OPTIONAL + COMPONENT ${pdb_component} + EXCLUDE_FROM_ALL + ) + endif() endif() endfunction() |
