From 3e0ac0e71bb1f7c43764b0bb9d2ff0b670c879bd Mon Sep 17 00:00:00 2001 From: Thomas Kroes Date: Wed, 8 Oct 2025 15:25:32 +0200 Subject: [PATCH] Add PDB file copying for Windows builds (#207) * Add PDB file copying for Windows builds Copy PDB files to the RelWithDebInfo/lib directory on Windows. * Add debug information flag for RelWithDebInfo mode * Add import for tools in conanfile.py * Set ManiVault installation directory from environment Add installation directory for ManiVault * Update conanfile.py * Refactor PDB file handling in conanfile.py Remove installation directory from environment variable and update PDB destination path. * Fix pdb file copying for RelWithDebInfo builds Ensure pdb files are copied correctly for Windows builds. * Update conanfile.py * Fix pdb destination path for Windows builds * Update Windows OS check in conanfile.py * Log PDB file copying on Windows Add print statement for PDB file copying process * Refactor PDB file handling in conanfile.py Refactor PDB file copying logic and ensure all files are copied from the package directory. * Add import for shutil module --- CMakeLists.txt | 1 + conanfile.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b9674d0..0c00e80 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MD") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD") + set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG") endif() # ----------------------------------------------------------------------------- diff --git a/conanfile.py b/conanfile.py index ba6073f..a95e3b9 100644 --- a/conanfile.py +++ b/conanfile.py @@ -1,8 +1,10 @@ from conans import ConanFile from conan.tools.cmake import CMakeDeps, CMake, CMakeToolchain from conans.tools import save, load +from conans import tools import os import pathlib +import shutil import subprocess from rules_support import PluginBranchInfo @@ -98,6 +100,7 @@ def generate(self): # Use the ManiVault .cmake file to find ManiVault with find_package mv_core_root = self.deps_cpp_info["hdps-core"].rootpath manivault_dir = pathlib.Path(mv_core_root, "cmake", "mv").as_posix() + print("ManiVault_DIR: ", manivault_dir) tc.variables["ManiVault_DIR"] = manivault_dir @@ -146,6 +149,19 @@ def package(self): release_dir, ] ) + + + + # Add the pdb files next to the libs for RelWithDebInfo linking + if self.settings.os == "Windows": + print("Copying PDBs...") + pdb_dest = pathlib.Path(package_dir, "RelWithDebInfo", "pdb") + pdb_dest.mkdir() + pdb_files = pdb_files = [p for p in pathlib.Path(self.build_folder).rglob('*') if p.is_file() and p.suffix.lower() == '.pdb'] + print("PDB(s): ", pdb_files) + for pfile in pdb_files: + shutil.copy(pfile, pdb_dest) + self.copy(pattern="*", src=package_dir) def package_info(self):