summaryrefslogtreecommitdiffstats
path: root/cmake/SlangTarget.cmake
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2024-12-03 23:13:52 +0800
committerGitHub <noreply@github.com>2024-12-03 23:13:52 +0800
commit6c655ca927a440d1f03339295235fce2a764c26b (patch)
tree89e03d5893bccb899783245e39b648b93538569a /cmake/SlangTarget.cmake
parent2f42388e31baef169911d6a4ce9737392ecd610c (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.cmake26
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()