Skip to content

Commit 16bfd50

Browse files
committed
Package NSC debug symbols and source
1 parent 0e3b68f commit 16bfd50

4 files changed

Lines changed: 37 additions & 0 deletions

File tree

.github/workflows/build-nabla.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ jobs:
297297
run: |
298298
tar -cvf "${{ steps.set-prefix.outputs.prefix }}-profiling.tar" profiling
299299
tar -cvf "${{ steps.set-prefix.outputs.prefix }}-install.tar" ${{ env.install }}
300+
tar -cvf "${{ steps.set-prefix.outputs.prefix }}-source.tar" --exclude=.git --exclude=build-ct --exclude=examples_tests/media .
300301
301302
- name: Upload NSC Godbolt Image artifact
302303
uses: actions/upload-artifact@v4
@@ -331,6 +332,12 @@ jobs:
331332
name: ${{ steps.set-prefix.outputs.prefix }}-install
332333
path: ${{ steps.set-prefix.outputs.prefix }}-install.tar
333334

335+
- name: Upload source artifacts
336+
uses: actions/upload-artifact@v4
337+
with:
338+
name: ${{ steps.set-prefix.outputs.prefix }}-source
339+
path: ${{ steps.set-prefix.outputs.prefix }}-source.tar
340+
334341
- name: Login to GHCR
335342
if: steps.set-prefix.outputs.shouldPushImage == 'True'
336343
run: echo "${{ secrets.CR_PAT }}" | docker login ghcr.io -u $env:GITHUB_ACTOR --password-stdin

cmake/common.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,10 @@ function(nbl_install_exe_spec _TARGETS _RELATIVE_DESTINATION)
361361
endif()
362362

363363
install(TARGETS ${_TARGETS} ${_EXPORT_ARGS} RUNTIME DESTINATION ${_DEST_GE_} COMPONENT ${_COMPONENT})
364+
365+
foreach(_TRGT IN LISTS _TARGETS)
366+
install(PROGRAMS $<TARGET_PDB_FILE:${_TRGT}> DESTINATION debug/exe/${_RELATIVE_DESTINATION} CONFIGURATIONS Debug COMPONENT ${_COMPONENT})
367+
endforeach()
364368

365369
foreach(_TRGT IN LISTS _TARGETS)
366370
get_property(_DEFINED_PROPERTY_

tools/nsc/CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,9 +267,20 @@ set(NBL_NSC_COMPILE_COMMAND
267267
set(NBL_NSC_PREINSTALL_TARGET_EXE_DIRECTORY "${NBL_NSC_PREINSTALL_DIRECTORY}/${NBL_PACKAGE_RUNTIME_EXE_DIR_PATH}")
268268
set(NBL_NSC_PREINSTALL_TARGET_EXE_FILENAME $<TARGET_FILE_NAME:${EXECUTABLE_NAME}>)
269269
set(NBL_NSC_PREINSTALL_TARGET_EXE_FILEPATH "${NBL_NSC_PREINSTALL_TARGET_EXE_DIRECTORY}/${NBL_NSC_PREINSTALL_TARGET_EXE_FILENAME}")
270+
set(NBL_NSC_PREINSTALL_TARGET_PDB_FILENAME $<TARGET_PDB_FILE_NAME:${EXECUTABLE_NAME}>)
271+
set(NBL_NSC_PREINSTALL_TARGET_PDB_FILEPATH "${NBL_NSC_PREINSTALL_TARGET_EXE_DIRECTORY}/${NBL_NSC_PREINSTALL_TARGET_PDB_FILENAME}")
270272
set(NBL_NSC_BUILD_INFO_FILENAME build-info.json)
271273
set(NBL_NSC_PREINSTALL_TARGET_BUILD_INFO "${NBL_NSC_PREINSTALL_TARGET_EXE_DIRECTORY}/${NBL_NSC_BUILD_INFO_FILENAME}")
272274

275+
add_test(NAME NBL_NSC_INSTALL_EXECUTABLES_PDB_TEST
276+
COMMAND "${CMAKE_COMMAND}"
277+
-DNBL_CONFIG=$<CONFIG>
278+
-DNBL_PDB_FILEPATH=${NBL_NSC_PREINSTALL_TARGET_PDB_FILEPATH}
279+
-P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/VerifyInstalledExecutablePdb.cmake"
280+
COMMAND_EXPAND_LISTS
281+
)
282+
set_tests_properties(NBL_NSC_INSTALL_EXECUTABLES_PDB_TEST PROPERTIES DEPENDS NBL_NSC_INSTALL_EXECUTABLES_TEST)
283+
273284
add_test(NAME NBL_NSC_COMPILE_AT_EXE_CWD_TEST
274285
COMMAND "${NBL_NSC_PREINSTALL_TARGET_EXE_FILENAME}" ${NBL_NSC_COMPILE_COMMAND}
275286
WORKING_DIRECTORY "${NBL_NSC_PREINSTALL_TARGET_EXE_DIRECTORY}"
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
if(NOT DEFINED NBL_CONFIG)
2+
message(FATAL_ERROR "NBL_CONFIG is not set.")
3+
endif()
4+
5+
if(NOT DEFINED NBL_PDB_FILEPATH)
6+
message(FATAL_ERROR "NBL_PDB_FILEPATH is not set.")
7+
endif()
8+
9+
if(NOT NBL_CONFIG STREQUAL "Debug")
10+
return()
11+
endif()
12+
13+
if(NOT EXISTS "${NBL_PDB_FILEPATH}")
14+
message(FATAL_ERROR "Expected installed NSC PDB at \"${NBL_PDB_FILEPATH}\".")
15+
endif()

0 commit comments

Comments
 (0)