Add crash reporting (bundle CrashReporter, strip, symbols, upload)

- register plugin + ship Installer/crashreporter.json
- installer bundles the shared CrashReporter (mac pkg + component-plist +
  reporter-scripts promote-if-newer; win .iss shared component) and the JSON
- strip shipped mac binaries; emit dSYM (Xcode) and PDB (/Zi /DEBUG) in Release
- launchCrashReporterOnce() from the processor on first instance
- upload dSYM/PDB symbols to the crash site from release.yaml
- bump to 1.0.33
This commit is contained in:
Roland Rabien 2026-07-16 18:18:43 -07:00
commit a681b2e332
10 changed files with 219 additions and 2 deletions

View file

@ -213,6 +213,7 @@ if (APPLE)
XCODE_ATTRIBUTE_CLANG_LINK_OBJC_RUNTIME NO
#XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING[variant=Release] YES
XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH[variant=Debug] "YES"
XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT[variant=Release] "dwarf-with-dsym"
)
if (NOT t STREQUAL "All")
target_compile_options(${tgt} PRIVATE
@ -237,6 +238,22 @@ if (WIN32)
set_target_properties(${tgt} PROPERTIES LINK_FLAGS "/ignore:4099")
endif()
endforeach()
# Generate debug symbols (PDBs) for Release builds so crashes can be symbolicated.
# /Zi emits full debug info; /DEBUG produces the .pdb; /OPT:REF and /OPT:ICF
# restore the size optimisations that /DEBUG otherwise disables.
foreach(t ${FORMATS} "CLAP" "")
set(tgt ${CMAKE_PROJECT_NAME})
if (NOT t STREQUAL "")
set(tgt ${tgt}_${t})
endif()
if (TARGET ${tgt})
target_compile_options(${tgt} PRIVATE "$<$<CONFIG:Release>:/Zi>")
target_link_options(${tgt} PRIVATE "$<$<CONFIG:Release>:/DEBUG>")
target_link_options(${tgt} PRIVATE "$<$<CONFIG:Release>:/OPT:REF>")
target_link_options(${tgt} PRIVATE "$<$<CONFIG:Release>:/OPT:ICF>")
endif()
endforeach()
endif()
if(UNIX AND NOT APPLE)