diff --git a/.gitignore b/.gitignore index 5b369a47fe..518bf26480 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,5 @@ test.js /.cache/ .clangd internal_docs/ +# Sparkle auto-update test artifacts +/.sparkle-test/ diff --git a/deps/Sparkle/Sparkle.cmake b/deps/Sparkle/Sparkle.cmake index cc3b055a48..7a48cdc233 100644 --- a/deps/Sparkle/Sparkle.cmake +++ b/deps/Sparkle/Sparkle.cmake @@ -17,8 +17,8 @@ if(APPLE) CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DESTDIR}/Frameworks - COMMAND ${CMAKE_COMMAND} -E copy_directory - /Sparkle.framework ${DESTDIR}/Frameworks/Sparkle.framework + # Use ditto to preserve symlinks in framework bundle (cmake -E copy_directory breaks symlinks) + COMMAND ditto /Sparkle.framework ${DESTDIR}/Frameworks/Sparkle.framework # Also install the Sparkle CLI tools (sign_update, generate_appcast) for CI/CD signing COMMAND ${CMAKE_COMMAND} -E make_directory ${DESTDIR}/bin COMMAND ${CMAKE_COMMAND} -E copy /bin/sign_update ${DESTDIR}/bin/sign_update diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a8a61cd54c..1eed269efe 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -269,7 +269,8 @@ else () endif() add_custom_command(TARGET OrcaSlicer POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${BUNDLE_FRAMEWORKS_DIR}" - COMMAND ${CMAKE_COMMAND} -E copy_directory "${SPARKLE_FRAMEWORK}" "${BUNDLE_FRAMEWORKS_DIR}/Sparkle.framework" + # Use ditto to preserve symlinks in framework bundle (cmake -E copy_directory breaks symlinks) + COMMAND ditto "${SPARKLE_FRAMEWORK}" "${BUNDLE_FRAMEWORKS_DIR}/Sparkle.framework" COMMENT "Embedding Sparkle.framework into app bundle" VERBATIM) message(STATUS "Sparkle framework will be embedded: ${SPARKLE_FRAMEWORK}")