From a5a3262c329ef7effe6f51f41df3837a7cef4937 Mon Sep 17 00:00:00 2001 From: SoftFever <103989404+SoftFever@users.noreply.github.com> Date: Thu, 16 Mar 2023 20:50:23 +0800 Subject: [PATCH] clean up Mac --- .github/workflows/build_mac_arm64.yml | 17 ++++++++++------- .github/workflows/build_mac_x64.yml | 10 +++++----- CMakeLists.txt | 4 +++- build_release_macos.sh | 6 +++--- src/CMakeLists.txt | 5 +++-- src/platform/osx/Info.plist.in | 2 +- src/slic3r/GUI/InstanceCheck.cpp | 8 ++++---- 7 files changed, 29 insertions(+), 23 deletions(-) diff --git a/.github/workflows/build_mac_arm64.yml b/.github/workflows/build_mac_arm64.yml index 8648d1bdf..5c4d12432 100644 --- a/.github/workflows/build_mac_arm64.yml +++ b/.github/workflows/build_mac_arm64.yml @@ -9,7 +9,7 @@ on: - SoftFever jobs: - build_win64: + build_osx_arm64: name: Build Mac AppleSilicon runs-on: macos-12 @@ -20,7 +20,7 @@ jobs: run: | brew install cmake git gettext zstd - run: mkdir -p ${{ github.workspace }}/deps/build_arm64 - - run: mkdir -p ${{ github.workspace }}/deps/build_arm64/OrcaSlicer_dep_x86_64 + - run: mkdir -p ${{ github.workspace }}/deps/build_arm64/OrcaSlicer_dep_arm64 # - name: build deps # id: cache_deps @@ -48,7 +48,8 @@ jobs: - name: Build studio working-directory: ${{ github.workspace }} - run: ./build_release_macos.sh -s -n -a arm64 + run: | + ./build_release_macos.sh -s -n -a arm64 - name: Sign app working-directory: ${{ github.workspace }} @@ -67,18 +68,20 @@ jobs: security import $CERTIFICATE_PATH -P $P12_PASSWORD -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $P12_PASSWORD $KEYCHAIN_PATH - codesign --deep --force --verbose --sign "$CERTIFICATE_ID" ${{ github.workspace }}/build_arm64/OrcaSlicer_arm64/OrcaSlicer.app + codesign --deep --force --verbose --sign "$CERTIFICATE_ID" ${{ github.workspace }}/build_arm64/OrcaSlicer/OrcaSlicer.app - - name: pack app + - name: Pack app working-directory: ${{ github.workspace }} run: | export ver=$(grep '^#define SoftFever_VERSION' ./build_arm64/src/libslic3r/libslic3r_version.h | cut -d ' ' -f3) ver="_V${ver//\"}" - zip -FSrq OrcaSlicer${ver}_nightly_Mac_AppleSilicon.zip ${{ github.workspace }}/build_arm64/OrcaSlicer_arm64/OrcaSlicer.app + cd ${{ github.workspace }}/build_arm64/OrcaSlicer + zip -FSrq OrcaSlicer${ver}_nightly_Mac_AppleSilicon_signed.zip ./OrcaSlicer.app # (wip: staple failed, error 65) # - name: Notarize the app # run: | + # cd ${{ github.workspace }}/build_arm64/OrcaSlicer # xcrun notarytool store-credentials "notarytool-profile" --apple-id "${{ secrets.APPLE_DEV_ACCOUNT }}" --team-id "${{ secrets.TEAM_ID }}" --password "${{ secrets.APP_PWD }}" # ditto -c -k --keepParent "OrcaSlicer.app" "OrcaSlicer.zip" # xcrun notarytool submit "OrcaSlicer.zip" --keychain-profile "notarytool-profile" --wait @@ -89,4 +92,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: OrcaSlicer_Mac_AppleSilicon - path: ${{ github.workspace }}/OrcaSlicer*.zip \ No newline at end of file + path: ${{ github.workspace }}/build_arm64/OrcaSlicer/OrcaSlicer*.zip \ No newline at end of file diff --git a/.github/workflows/build_mac_x64.yml b/.github/workflows/build_mac_x64.yml index 50533924f..c4b6ee258 100644 --- a/.github/workflows/build_mac_x64.yml +++ b/.github/workflows/build_mac_x64.yml @@ -9,9 +9,9 @@ on: - SoftFever jobs: - build_win64: + build_osx_x86_64: name: Build Mac Intel - runs-on: macos-latest + runs-on: macos-12 steps: - uses: actions/checkout@v3 @@ -68,14 +68,14 @@ jobs: security import $CERTIFICATE_PATH -P $P12_PASSWORD -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $P12_PASSWORD $KEYCHAIN_PATH - codesign --deep --force --verbose --sign "$CERTIFICATE_ID" ${{ github.workspace }}/build_x86_64/OrcaSlicer_x86_64/OrcaSlicer.app + codesign --deep --force --verbose --sign "$CERTIFICATE_ID" ${{ github.workspace }}/build_x86_64/OrcaSlicer/OrcaSlicer.app - name: pack app working-directory: ${{ github.workspace }} run: | export ver=$(grep '^#define SoftFever_VERSION' ./build_x86_64/src/libslic3r/libslic3r_version.h | cut -d ' ' -f3) ver="_V${ver//\"}" - zip -FSrq OrcaSlicer${ver}_nightly_Mac_Intel.zip ${{ github.workspace }}/build_x86_64/OrcaSlicer_x86_64/OrcaSlicer.app + zip -FSrq OrcaSlicer${ver}_nightly_Mac_Intel_signed.zip ${{ github.workspace }}/build_x86_64/OrcaSlicer/OrcaSlicer.app # (wip: staple failed, error 65) # - name: Notarize the app @@ -90,4 +90,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: OrcaSlicer_Mac_Intel - path: ${{ github.workspace }}/OrcaSlicer*.zip \ No newline at end of file + path: ${{ github.workspace }}/build_arm64/OrcaSlicer/OrcaSlicer*.zip \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index b2a357246..bf0c6f5b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,6 +54,8 @@ if (APPLE) set(CMAKE_INSTALL_RPATH @executable_path/../Frameworks) endif() set(CMAKE_OSX_DEPLOYMENT_TARGET "11.3" CACHE STRING "Minimum OS X deployment version" FORCE) + SET(CMAKE_XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.softfever3d.orca-slicer") + endif () # Proposal for C++ unit tests and sandboxes @@ -706,7 +708,7 @@ elseif (SLIC3R_FHS) ) endforeach() elseif (CMAKE_MACOSX_BUNDLE) - install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/OrcaSlicer.app/Contents/resources") + # install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/OrcaSlicer.app/Contents/resources") else () install(FILES src/platform/unix/OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications) install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/resources") diff --git a/build_release_macos.sh b/build_release_macos.sh index 7bffb30b4..dc6eff3b7 100755 --- a/build_release_macos.sh +++ b/build_release_macos.sh @@ -76,10 +76,10 @@ cd $WD mkdir -p build_$ARCH cd build_$ARCH echo "building studio..." -cmake .. -GXcode -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="$DEPS/usr/local" -DCMAKE_INSTALL_PREFIX="$PWD/OrcaSlicer_$ARCH" -DCMAKE_BUILD_TYPE=Release -DCMAKE_MACOSX_RPATH=ON -DCMAKE_INSTALL_RPATH="$DEPS/usr/local" -DCMAKE_MACOSX_BUNDLE=ON -DCMAKE_OSX_ARCHITECTURES=${ARCH} +cmake .. -GXcode -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="$DEPS/usr/local" -DCMAKE_INSTALL_PREFIX="$PWD/OrcaSlicer" -DCMAKE_BUILD_TYPE=Release -DCMAKE_MACOSX_RPATH=ON -DCMAKE_INSTALL_RPATH="$DEPS/usr/local" -DCMAKE_MACOSX_BUNDLE=ON -DCMAKE_OSX_ARCHITECTURES=${ARCH} cmake --build . --config Release --target ALL_BUILD -mkdir -p OrcaSlicer_$ARCH -cd OrcaSlicer_$ARCH +mkdir -p OrcaSlicer +cd OrcaSlicer rm -r ./OrcaSlicer.app cp -pR ../src/Release/OrcaSlicer.app ./OrcaSlicer.app resources_path=$(readlink ./OrcaSlicer.app/Contents/Resources) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 87b6f2d6e..84952256d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -102,6 +102,7 @@ endif() # Create a slic3r executable # Process mainfests for various platforms. +set(MACOSX_BUNDLE_COPYRIGHT "Copyright(C) 2022-2023 Li Jiang All Rights Reserved") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/BambuStudio.rc.in ${CMAKE_CURRENT_BINARY_DIR}/BambuStudio.rc @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/BambuStudio.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/BambuStudio.manifest @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/osx/Info.plist.in ${CMAKE_CURRENT_BINARY_DIR}/Info.plist @ONLY) @@ -238,9 +239,9 @@ else () if (CMAKE_MACOSX_BUNDLE) set(BIN_RESOURCES_DIR "${CMAKE_CURRENT_BINARY_DIR}/$/OrcaSlicer.app/Contents/Resources") set(MACOSX_BUNDLE_ICON_FILE Icon.icns) - set(MACOSX_BUNDLE_BUNDLE_NAME "Orca Slicer") + set(MACOSX_BUNDLE_BUNDLE_NAME "OrcaSlicer") set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${SoftFever_VERSION}) - set(MACOSX_BUNDLE_COPYRIGHT "Copyright(C) 2021-2023 Lunkuo All Rights Reserved") + set(MACOSX_BUNDLE_COPYRIGHT "Copyright(C) 2022-2023 Li Jiang All Rights Reserved") endif() add_custom_command(TARGET OrcaSlicer POST_BUILD COMMAND ln -sfn "${SLIC3R_RESOURCES_DIR}" "${BIN_RESOURCES_DIR}" diff --git a/src/platform/osx/Info.plist.in b/src/platform/osx/Info.plist.in index 7606c3e77..be52fe1e9 100644 --- a/src/platform/osx/Info.plist.in +++ b/src/platform/osx/Info.plist.in @@ -13,7 +13,7 @@ CFBundleShortVersionString @SLIC3R_APP_NAME@ @SLIC3R_BUILD_ID@ CFBundleIdentifier - com.bbl.slic3r/ + com.softfever3d.orca-slic3r/ CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType diff --git a/src/slic3r/GUI/InstanceCheck.cpp b/src/slic3r/GUI/InstanceCheck.cpp index 3eaa51e8c..bc5eb4d8c 100644 --- a/src/slic3r/GUI/InstanceCheck.cpp +++ b/src/slic3r/GUI/InstanceCheck.cpp @@ -236,7 +236,7 @@ namespace instance_check_internal dbus_uint32_t serial = 0; const char* sigval = message_text.c_str(); //std::string interface_name = "com.prusa3d.prusaslicer.InstanceCheck"; - std::string interface_name = "com.softfever3d.orcaslicer.InstanceCheck.Object" + version; + std::string interface_name = "com.softfever3d.orca-slicer.InstanceCheck.Object" + version; std::string method_name = "AnotherInstance"; //std::string object_name = "/com/prusa3d/prusaslicer/InstanceCheck"; std::string object_name = "/com/softfever3d/OrcaSlicer/InstanceCheck/Object" + version; @@ -538,7 +538,7 @@ namespace MessageHandlerDBusInternal " " " " " " - " " + " " " " " " " " @@ -576,7 +576,7 @@ namespace MessageHandlerDBusInternal { const char* interface_name = dbus_message_get_interface(message); const char* member_name = dbus_message_get_member(message); - std::string our_interface = "com.softfever3d.OrcaSlicer.InstanceCheck.Object" + wxGetApp().get_instance_hash_string(); + std::string our_interface = "com.softfever3d.orca-slicer.InstanceCheck.Object" + wxGetApp().get_instance_hash_string(); BOOST_LOG_TRIVIAL(trace) << "DBus message received: interface: " << interface_name << ", member: " << member_name; if (0 == strcmp("org.freedesktop.DBus.Introspectable", interface_name) && 0 == strcmp("Introspect", member_name)) { respond_to_introspect(connection, message); @@ -596,7 +596,7 @@ void OtherInstanceMessageHandler::listen() int name_req_val; DBusObjectPathVTable vtable; std::string instance_hash = wxGetApp().get_instance_hash_string(); - std::string interface_name = "com.softfever3d.OrcaSlicer.InstanceCheck.Object" + instance_hash; + std::string interface_name = "com.softfever3d.orca-slicer.InstanceCheck.Object" + instance_hash; std::string object_name = "/com/softfever3d/OrcaSlicer/InstanceCheck/Object" + instance_hash; //BOOST_LOG_TRIVIAL(debug) << "init dbus listen " << interface_name << " " << object_name;