From 72a80f017ead336ee7b128f8369a9ba4b57c8b89 Mon Sep 17 00:00:00 2001 From: Matt Mitchell Date: Thu, 5 Feb 2015 14:42:03 -0800 Subject: [PATCH] Enable PDB generation for corerun and coreconsole Corerun and coreconsole are exes, so they don't share the same linker flags as the shared libraries. Set DEBUG on the EXE flags so that Release always gets debug info. Don't pass incremental linking, incompatible with debug type --- CMakeLists.txt | 4 +++- src/coreclr/hosts/coreconsole/CMakeLists.txt | 2 +- src/coreclr/hosts/corerun/CMakeLists.txt | 2 +- src/dlls/clretwrc/CMakeLists.txt | 3 +++ src/dlls/mscorrc/full/CMakeLists.txt | 4 ++++ src/dlls/mscorrc/small/CMakeLists.txt | 6 +++++- 6 files changed, 17 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dacb775..a7302ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,6 +143,7 @@ if (WIN32) add_compile_options(/TP) # compile all files as C++ add_compile_options(/FIWarningControl.h) # force include of WarningControl.h add_compile_options(/Zi) # enable debugging information +add_compile_options(/d2Zi+) # make optimized builds debugging easier add_compile_options(/nologo) # Suppress Startup Banner add_compile_options(/W3) # set warning level to 3 add_compile_options(/WX) # treat warnings as errors @@ -163,7 +164,6 @@ add_compile_options(/FC) # use full pathnames in diagnostics add_compile_options(/Zl) # omit default library name in .OBJ add_compile_options(/MP) # Build with Multiple Processes (number of processes equal to the number of processors) add_compile_options(/GS) # Buffer Security Check -add_compile_options(/d2Zi+) # make optimized builds debugging easier add_compile_options(/Zm200) # Specify Precompiled Header Memory Allocation Limit of 150MB add_compile_options(/wd4960 /wd4961 /wd4603 /wd4627 /wd4838 /wd4456 /wd4457 /wd4458 /wd4459 /wd4091 /we4640) @@ -192,6 +192,8 @@ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEBUGTYPE:cv,fixup" set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /PDBCOMPRESS") #shrink pdb size set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF /IGNORE:4197,4013,4254,4070,4221") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG /PDBCOMPRESS") + # Debug build specific flags set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/NOVCFEATURE") diff --git a/src/coreclr/hosts/coreconsole/CMakeLists.txt b/src/coreclr/hosts/coreconsole/CMakeLists.txt index 0054727..00b6391 100644 --- a/src/coreclr/hosts/coreconsole/CMakeLists.txt +++ b/src/coreclr/hosts/coreconsole/CMakeLists.txt @@ -29,6 +29,6 @@ else(CLR_CMAKE_PLATFORM_UNIX) # Can't compile on linux yet so only add for windows # add the install targets install (TARGETS CoreConsole DESTINATION .) - install (FILES ${CMAKE_CURRENT_BINARY_DIR}/$ENV{__BuildType}/CoreConsole.pdb DESTINATION PDB CONFIGURATIONS Debug) + install (FILES ${CMAKE_CURRENT_BINARY_DIR}/$ENV{__BuildType}/CoreConsole.pdb DESTINATION PDB) endif(CLR_CMAKE_PLATFORM_UNIX) \ No newline at end of file diff --git a/src/coreclr/hosts/corerun/CMakeLists.txt b/src/coreclr/hosts/corerun/CMakeLists.txt index a799f2f..4442610 100644 --- a/src/coreclr/hosts/corerun/CMakeLists.txt +++ b/src/coreclr/hosts/corerun/CMakeLists.txt @@ -31,6 +31,6 @@ else(CLR_CMAKE_PLATFORM_UNIX) install (TARGETS CoreRun DESTINATION .) # We will generate PDB only for the debug configuration - install (FILES ${CMAKE_CURRENT_BINARY_DIR}/$/CoreRun.pdb DESTINATION PDB CONFIGURATIONS Debug) + install (FILES ${CMAKE_CURRENT_BINARY_DIR}/$/CoreRun.pdb DESTINATION PDB) endif(CLR_CMAKE_PLATFORM_UNIX) \ No newline at end of file diff --git a/src/dlls/clretwrc/CMakeLists.txt b/src/dlls/clretwrc/CMakeLists.txt index 5435a7f..91c95c3 100644 --- a/src/dlls/clretwrc/CMakeLists.txt +++ b/src/dlls/clretwrc/CMakeLists.txt @@ -19,3 +19,6 @@ add_custom_command( # add the install targets install (TARGETS clretwrc DESTINATION .) +if(WIN32) +install (FILES ${CMAKE_CURRENT_BINARY_DIR}/$/clretwrc.pdb DESTINATION PDB) +endif(WIN32) diff --git a/src/dlls/mscorrc/full/CMakeLists.txt b/src/dlls/mscorrc/full/CMakeLists.txt index 2f7b0ae..ae3332b 100644 --- a/src/dlls/mscorrc/full/CMakeLists.txt +++ b/src/dlls/mscorrc/full/CMakeLists.txt @@ -6,3 +6,7 @@ add_definitions(-DFX_VER_INTERNALNAME_STR=mscorrc.debug.dll) # add the install targets install (TARGETS mscorrc.debug DESTINATION .) + +if(WIN32) +install (FILES ${CMAKE_CURRENT_BINARY_DIR}/$/mscorrc.debug.pdb DESTINATION PDB) +endif(WIN32) \ No newline at end of file diff --git a/src/dlls/mscorrc/small/CMakeLists.txt b/src/dlls/mscorrc/small/CMakeLists.txt index 39cd975..b36c811 100644 --- a/src/dlls/mscorrc/small/CMakeLists.txt +++ b/src/dlls/mscorrc/small/CMakeLists.txt @@ -5,4 +5,8 @@ add_library(mscorrc SHARED add_definitions(-DFX_VER_INTERNALNAME_STR=mscorrc.dll) # add the install targets -install (TARGETS mscorrc DESTINATION .) \ No newline at end of file +install (TARGETS mscorrc DESTINATION .) + +if(WIN32) +install (FILES ${CMAKE_CURRENT_BINARY_DIR}/$/mscorrc.pdb DESTINATION PDB) +endif(WIN32) \ No newline at end of file -- 2.7.4