[clang] [lld] [lldb] [llvm] [windows] refactor PDB file install target location (PR #196109)
Charles Zablit via llvm-commits
llvm-commits at lists.llvm.org
Wed May 6 09:22:15 PDT 2026
https://github.com/charles-zablit created https://github.com/llvm/llvm-project/pull/196109
None
>From 96cf82f8ad4e1e41eef9abb05c7d05e698f32370 Mon Sep 17 00:00:00 2001
From: Charles Zablit <c_zablit at apple.com>
Date: Wed, 6 May 2026 17:20:07 +0100
Subject: [PATCH] [windows] refactor PDB file install target location
---
clang/cmake/modules/AddClang.cmake | 10 +++++++---
lld/cmake/modules/AddLLD.cmake | 4 ++--
lldb/cmake/modules/AddLLDB.cmake | 10 ++++++++++
llvm/cmake/modules/AddLLVM.cmake | 17 +++++++++++------
4 files changed, 30 insertions(+), 11 deletions(-)
diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake
index e2112d7c326e2..e7b494ece8a03 100644
--- a/clang/cmake/modules/AddClang.cmake
+++ b/clang/cmake/modules/AddClang.cmake
@@ -137,7 +137,11 @@ macro(add_clang_library name)
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
-
+ if (MSVC)
+ install(FILES $<TARGET_FILE_DIR:${lib}>/$<TARGET_FILE_BASE_NAME:${lib}>.pdb
+ DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${lib}
+ OPTIONAL)
+ endif()
if (NOT LLVM_ENABLE_IDE)
add_llvm_install_targets(install-${lib}
DEPENDS ${lib}
@@ -186,8 +190,8 @@ macro(add_clang_tool name)
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
COMPONENT ${name})
- if (LLVM_ENABLE_PDB)
- install(FILES $<TARGET_PDB_FILE:${name}> DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name} OPTIONAL)
+ if (MSVC)
+ install(FILES $<TARGET_FILE_DIR:${name}>/$<TARGET_FILE_BASE_NAME:${name}>.pdb DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name} OPTIONAL)
endif()
if(NOT LLVM_ENABLE_IDE)
diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake
index 37f73afa915f4..7f308376087a2 100644
--- a/lld/cmake/modules/AddLLD.cmake
+++ b/lld/cmake/modules/AddLLD.cmake
@@ -58,8 +58,8 @@ macro(add_lld_tool name)
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
COMPONENT ${name})
- if (LLVM_ENABLE_PDB)
- install(FILES $<TARGET_PDB_FILE:${name}> DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name} OPTIONAL)
+ if (MSVC)
+ install(FILES $<TARGET_FILE_DIR:${name}>/$<TARGET_FILE_BASE_NAME:${name}>.pdb DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name} OPTIONAL)
endif()
if(NOT CMAKE_CONFIGURATION_TYPES)
diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake
index 93b6bd2740abb..edd32b6d0fc8b 100644
--- a/lldb/cmake/modules/AddLLDB.cmake
+++ b/lldb/cmake/modules/AddLLDB.cmake
@@ -119,6 +119,11 @@ function(add_lldb_library name)
LIBRARY DESTINATION ${install_dest}
ARCHIVE DESTINATION ${install_dest}
FRAMEWORK DESTINATION ${install_dest})
+ if (MSVC)
+ install(FILES $<TARGET_FILE_DIR:${name}>/$<TARGET_FILE_BASE_NAME:${name}>.pdb
+ DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name}
+ OPTIONAL)
+ endif()
if (NOT CMAKE_CONFIGURATION_TYPES)
add_llvm_install_targets(install-${name}
DEPENDS ${name}
@@ -216,6 +221,11 @@ function(add_lldb_executable name)
LIBRARY DESTINATION ${install_dest}
BUNDLE DESTINATION ${install_dest}
FRAMEWORK DESTINATION ${install_dest})
+ if (MSVC)
+ install(FILES $<TARGET_FILE_DIR:${name}>/$<TARGET_FILE_BASE_NAME:${name}>.pdb
+ DESTINATION ${install_dest} COMPONENT ${name}
+ OPTIONAL)
+ endif()
if (NOT CMAKE_CONFIGURATION_TYPES)
add_llvm_install_targets(install-${name}
DEPENDS ${name}
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 28858db434f91..628f86687af96 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -1057,6 +1057,11 @@ macro(add_llvm_library name)
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name})
+ if (MSVC)
+ install(FILES $<TARGET_FILE_DIR:${name}>/$<TARGET_FILE_BASE_NAME:${name}>.pdb
+ DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name}
+ OPTIONAL)
+ endif()
if (NOT LLVM_ENABLE_IDE)
add_llvm_install_targets(install-${name}
@@ -1614,8 +1619,8 @@ macro(llvm_add_tool project name)
${export_to_llvmexports}
RUNTIME DESTINATION ${${project}_TOOLS_INSTALL_DIR}
COMPONENT ${name})
- if (LLVM_ENABLE_PDB)
- install(FILES $<TARGET_PDB_FILE:${name}>
+ if (MSVC)
+ install(FILES $<TARGET_FILE_DIR:${name}>/$<TARGET_FILE_BASE_NAME:${name}>.pdb
DESTINATION "${${project}_TOOLS_INSTALL_DIR}" COMPONENT ${name}
OPTIONAL)
endif()
@@ -1649,8 +1654,8 @@ macro(add_llvm_example name)
add_llvm_executable(${name} EXPORT_SYMBOLS ${ARGN})
if( LLVM_BUILD_EXAMPLES )
install(TARGETS ${name} RUNTIME DESTINATION "${LLVM_EXAMPLES_INSTALL_DIR}")
- if (LLVM_ENABLE_PDB)
- install(FILES $<TARGET_PDB_FILE:${name}>
+ if (MSVC)
+ install(FILES $<TARGET_FILE_DIR:${name}>/$<TARGET_FILE_BASE_NAME:${name}>.pdb
DESTINATION "${LLVM_EXAMPLES_INSTALL_DIR}" COMPONENT ${name}
OPTIONAL)
endif()
@@ -1688,8 +1693,8 @@ macro(add_llvm_utility name)
${export_to_llvmexports}
RUNTIME DESTINATION ${LLVM_UTILS_INSTALL_DIR}
COMPONENT ${name})
- if (LLVM_ENABLE_PDB)
- install(FILES $<TARGET_PDB_FILE:${name}>
+ if (MSVC)
+ install(FILES $<TARGET_FILE_DIR:${name}>/$<TARGET_FILE_BASE_NAME:${name}>.pdb
DESTINATION "${LLVM_UTILS_INSTALL_DIR}" COMPONENT ${name}
OPTIONAL)
endif()
More information about the llvm-commits
mailing list