Skip to content

Commit 3aef346

Browse files
committed
Add support for delayed load of dbghelp
Dbghelp is a large library and is known to increase startup times when loaded as a dll. When using /DELAYLOAD windows will automatically load the library on the first call to one of its functions.
1 parent 787d8af commit 3aef346

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,11 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
276276
SET(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
277277
endif()
278278

279+
if(CPPTRACE_DELAYLOAD_DBGHELP AND BUILD_SHARED_LIBS AND MSVC AND (CPPTRACE_UNWIND_WITH_DBGHELP OR CPPTRACE_GET_SYMBOLS_WITH_DBGHELP))
280+
target_link_libraries(${target_name} PRIVATE delayimp.lib)
281+
target_link_options(${target_name} PRIVATE /DELAYLOAD:dbghelp.dll)
282+
endif()
283+
279284
# =================================================== Back-end setup ===================================================
280285

281286
if(HAS_CXX_EXCEPTION_TYPE)

cmake/OptionVariables.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ set(CPPTRACE_LIBDWARF_SHALLOW "1" CACHE STRING "")
187187
option(CPPTRACE_PROVIDE_EXPORT_SET "" ON)
188188
option(CPPTRACE_PROVIDE_EXPORT_SET_FOR_LIBDWARF "" OFF)
189189
option(CPPTRACE_DISABLE_CXX_20_MODULES "" OFF)
190+
option(CPPTRACE_DELAYLOAD_DBGHELP "" OFF)
190191

191192
mark_as_advanced(
192193
CPPTRACE_BACKTRACE_PATH

0 commit comments

Comments
 (0)