From 06a403e295cafeb8847d4e5408599c0cdef37248 Mon Sep 17 00:00:00 2001 From: alves Date: Mon, 8 Dec 2025 12:13:09 +0800 Subject: [PATCH] feature add sentry config for mac cmake --- src/CMakeLists.txt | 55 ++++++++++++++++++++++++------------------ src/Snapmaker_Orca.cpp | 4 +-- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index efe96c8c52..6beb6e8796 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -247,15 +247,19 @@ else () WORKING_DIRECTORY "$" VERBATIM) # Copy Sentry crashpad_handler to executable directory for non-bundle builds (e.g., Xcode debugging) - add_custom_command(TARGET Snapmaker_Orca POST_BUILD - COMMAND sh -c "if [ -f '${CMAKE_PREFIX_PATH}/bin/crashpad_handler' ]; then cp -f '${CMAKE_PREFIX_PATH}/bin/crashpad_handler' '$/crashpad_handler' && codesign --force --sign - '$/crashpad_handler' 2>/dev/null || true; fi" - COMMENT "Copying crashpad_handler for Sentry crash reporting" - VERBATIM) - # Copy libsentry.dylib to executable directory for non-bundle builds - add_custom_command(TARGET Snapmaker_Orca POST_BUILD - COMMAND sh -c "if [ -f '${CMAKE_PREFIX_PATH}/lib/libsentry.dylib' ]; then cp -f '${CMAKE_PREFIX_PATH}/lib/libsentry.dylib' '$/libsentry.dylib' && codesign --force --sign - '$/libsentry.dylib' 2>/dev/null || true; fi" - COMMENT "Copying libsentry.dylib for Sentry crash reporting" - VERBATIM) + if (SLIC3R_SENTRY) + add_custom_command(TARGET Snapmaker_Orca POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_PREFIX_PATH}/bin/crashpad_handler" "$/crashpad_handler" + COMMAND sh -c "codesign --force --sign - '$/crashpad_handler' 2>/dev/null || true" + COMMENT "Copying crashpad_handler for Sentry crash reporting" + VERBATIM) + # Copy libsentry.dylib to executable directory for non-bundle builds + add_custom_command(TARGET Snapmaker_Orca POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_PREFIX_PATH}/lib/libsentry.dylib" "$/libsentry.dylib" + COMMAND sh -c "codesign --force --sign - '$/libsentry.dylib' 2>/dev/null || true" + COMMENT "Copying libsentry.dylib for Sentry crash reporting" + VERBATIM) + endif() else () add_custom_command(TARGET Snapmaker_Orca POST_BUILD WORKING_DIRECTORY "$" @@ -289,20 +293,25 @@ else () COMMENT "Symlinking the resources directory into the build tree" VERBATIM) # Copy Sentry crashpad_handler to MacOS directory (same directory as executable) - add_custom_command(TARGET Snapmaker_Orca POST_BUILD - COMMAND sh -c "if [ -f '${CMAKE_PREFIX_PATH}/bin/crashpad_handler' ]; then cp -f '${CMAKE_PREFIX_PATH}/bin/crashpad_handler' '$/crashpad_handler' && codesign --force --sign - '$/crashpad_handler'; fi" - COMMENT "Copying and signing crashpad_handler for Sentry crash reporting" - VERBATIM) - # Copy libsentry.dylib to Frameworks directory - add_custom_command(TARGET Snapmaker_Orca POST_BUILD - COMMAND sh -c "if [ -f '${CMAKE_PREFIX_PATH}/lib/libsentry.dylib' ]; then mkdir -p '$/../Frameworks' && cp -f '${CMAKE_PREFIX_PATH}/lib/libsentry.dylib' '$/../Frameworks/libsentry.dylib' && codesign --force --sign - '$/../Frameworks/libsentry.dylib'; fi" - COMMENT "Copying and signing libsentry.dylib for Sentry crash reporting" - VERBATIM) - # Update the rpath for libsentry.dylib - add_custom_command(TARGET Snapmaker_Orca POST_BUILD - COMMAND install_name_tool -change "@rpath/libsentry.dylib" "@executable_path/../Frameworks/libsentry.dylib" "$" || true - COMMENT "Updating rpath for libsentry.dylib" - VERBATIM) + if (SLIC3R_SENTRY) + add_custom_command(TARGET Snapmaker_Orca POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_PREFIX_PATH}/bin/crashpad_handler" "$/crashpad_handler" + COMMAND sh -c "codesign --force --sign - '$/crashpad_handler' 2>/dev/null || true" + COMMENT "Copying and signing crashpad_handler for Sentry crash reporting" + VERBATIM) + # Copy libsentry.dylib to Frameworks directory + add_custom_command(TARGET Snapmaker_Orca POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory "$/../Frameworks" + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_PREFIX_PATH}/lib/libsentry.dylib" "$/../Frameworks/libsentry.dylib" + COMMAND sh -c "codesign --force --sign - '$/../Frameworks/libsentry.dylib' 2>/dev/null || true" + COMMENT "Copying and signing libsentry.dylib for Sentry crash reporting" + VERBATIM) + # Update the rpath for libsentry.dylib + add_custom_command(TARGET Snapmaker_Orca POST_BUILD + COMMAND install_name_tool -change "@rpath/libsentry.dylib" "@executable_path/../Frameworks/libsentry.dylib" "$" || true + COMMENT "Updating rpath for libsentry.dylib" + VERBATIM) + endif() endif() endif () diff --git a/src/Snapmaker_Orca.cpp b/src/Snapmaker_Orca.cpp index 1b1c197a4f..5f50d8aca3 100644 --- a/src/Snapmaker_Orca.cpp +++ b/src/Snapmaker_Orca.cpp @@ -33,9 +33,9 @@ using namespace nlohmann; #endif -#ifdef SLIC3R_SENTRY + #include "sentry_wrapper/SentryWrapper.hpp" -#endif + #include #include