Skip to content

Commit 26d09cc

Browse files
author
Ben Hillis
committed
build: add Source Link to embed GitHub source mappings in PDBs
1 parent 625a44a commit 26d09cc

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,10 @@ file(MAKE_DIRECTORY ${BIN})
156156
set (GENERATED_DIR ${CMAKE_BINARY_DIR}/generated)
157157
file(MAKE_DIRECTORY ${GENERATED_DIR})
158158

159+
# Generate Source Link JSON so debuggers can fetch source from GitHub
160+
set(SOURCELINK_JSON "${GENERATED_DIR}/sourcelink.json")
161+
file(WRITE "${SOURCELINK_JSON}" "{\"documents\":{\"${CMAKE_SOURCE_DIR}/*\":\"https://raw.githubusercontent.com/microsoft/WSL/${COMMIT_HASH}/*\"}}")
162+
159163
set(PACKAGE_CERTIFICATE ${GENERATED_DIR}/dev-cert.pfx)
160164
file(CREATE_LINK ${WSL_DEVICE_HOST_SOURCE_DIR}/bin/${TARGET_PLATFORM}/wsldevicehost.dll ${BIN}/wsldevicehost.dll)
161165
file(CREATE_LINK ${WSLG_SOURCE_DIR}/${TARGET_PLATFORM}/${WSLG_TS_PLUGIN_DLL} ${BIN}/${WSLG_TS_PLUGIN_DLL})
@@ -232,6 +236,8 @@ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi /guard:cf /Qspectre"
232236
# Linker flags
233237
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /debug:full /debugtype:cv,fixup /guard:cf /DYNAMICBASE")
234238
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /debug:full /debugtype:cv,fixup /guard:cf /DYNAMICBASE")
239+
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SOURCELINK:${SOURCELINK_JSON}")
240+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SOURCELINK:${SOURCELINK_JSON}")
235241
if (${TARGET_PLATFORM} STREQUAL "x64")
236242
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /CETCOMPAT")
237243
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /CETCOMPAT")

0 commit comments

Comments
 (0)