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 <[email protected]>
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()

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to