clean up Mac

This commit is contained in:
SoftFever 2023-03-16 20:50:23 +08:00
parent cc5f40fc14
commit a5a3262c32
7 changed files with 29 additions and 23 deletions

View file

@ -9,7 +9,7 @@ on:
- SoftFever - SoftFever
jobs: jobs:
build_win64: build_osx_arm64:
name: Build Mac AppleSilicon name: Build Mac AppleSilicon
runs-on: macos-12 runs-on: macos-12
@ -20,7 +20,7 @@ jobs:
run: | run: |
brew install cmake git gettext zstd brew install cmake git gettext zstd
- run: mkdir -p ${{ github.workspace }}/deps/build_arm64 - 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 # - name: build deps
# id: cache_deps # id: cache_deps
@ -48,7 +48,8 @@ jobs:
- name: Build studio - name: Build studio
working-directory: ${{ github.workspace }} 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 - name: Sign app
working-directory: ${{ github.workspace }} 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 import $CERTIFICATE_PATH -P $P12_PASSWORD -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
security list-keychain -d user -s $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 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 }} working-directory: ${{ github.workspace }}
run: | run: |
export ver=$(grep '^#define SoftFever_VERSION' ./build_arm64/src/libslic3r/libslic3r_version.h | cut -d ' ' -f3) export ver=$(grep '^#define SoftFever_VERSION' ./build_arm64/src/libslic3r/libslic3r_version.h | cut -d ' ' -f3)
ver="_V${ver//\"}" 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) # (wip: staple failed, error 65)
# - name: Notarize the app # - name: Notarize the app
# run: | # 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 }}" # 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" # ditto -c -k --keepParent "OrcaSlicer.app" "OrcaSlicer.zip"
# xcrun notarytool submit "OrcaSlicer.zip" --keychain-profile "notarytool-profile" --wait # xcrun notarytool submit "OrcaSlicer.zip" --keychain-profile "notarytool-profile" --wait
@ -89,4 +92,4 @@ jobs:
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: OrcaSlicer_Mac_AppleSilicon name: OrcaSlicer_Mac_AppleSilicon
path: ${{ github.workspace }}/OrcaSlicer*.zip path: ${{ github.workspace }}/build_arm64/OrcaSlicer/OrcaSlicer*.zip

View file

@ -9,9 +9,9 @@ on:
- SoftFever - SoftFever
jobs: jobs:
build_win64: build_osx_x86_64:
name: Build Mac Intel name: Build Mac Intel
runs-on: macos-latest runs-on: macos-12
steps: steps:
- uses: actions/checkout@v3 - 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 import $CERTIFICATE_PATH -P $P12_PASSWORD -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
security list-keychain -d user -s $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 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 - name: pack app
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: | run: |
export ver=$(grep '^#define SoftFever_VERSION' ./build_x86_64/src/libslic3r/libslic3r_version.h | cut -d ' ' -f3) export ver=$(grep '^#define SoftFever_VERSION' ./build_x86_64/src/libslic3r/libslic3r_version.h | cut -d ' ' -f3)
ver="_V${ver//\"}" 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) # (wip: staple failed, error 65)
# - name: Notarize the app # - name: Notarize the app
@ -90,4 +90,4 @@ jobs:
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: OrcaSlicer_Mac_Intel name: OrcaSlicer_Mac_Intel
path: ${{ github.workspace }}/OrcaSlicer*.zip path: ${{ github.workspace }}/build_arm64/OrcaSlicer/OrcaSlicer*.zip

View file

@ -54,6 +54,8 @@ if (APPLE)
set(CMAKE_INSTALL_RPATH @executable_path/../Frameworks) set(CMAKE_INSTALL_RPATH @executable_path/../Frameworks)
endif() endif()
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.3" CACHE STRING "Minimum OS X deployment version" FORCE) 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 () endif ()
# Proposal for C++ unit tests and sandboxes # Proposal for C++ unit tests and sandboxes
@ -706,7 +708,7 @@ elseif (SLIC3R_FHS)
) )
endforeach() endforeach()
elseif (CMAKE_MACOSX_BUNDLE) 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 () else ()
install(FILES src/platform/unix/OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications) install(FILES src/platform/unix/OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications)
install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/resources") install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/resources")

View file

@ -76,10 +76,10 @@ cd $WD
mkdir -p build_$ARCH mkdir -p build_$ARCH
cd build_$ARCH cd build_$ARCH
echo "building studio..." 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 cmake --build . --config Release --target ALL_BUILD
mkdir -p OrcaSlicer_$ARCH mkdir -p OrcaSlicer
cd OrcaSlicer_$ARCH cd OrcaSlicer
rm -r ./OrcaSlicer.app rm -r ./OrcaSlicer.app
cp -pR ../src/Release/OrcaSlicer.app ./OrcaSlicer.app cp -pR ../src/Release/OrcaSlicer.app ./OrcaSlicer.app
resources_path=$(readlink ./OrcaSlicer.app/Contents/Resources) resources_path=$(readlink ./OrcaSlicer.app/Contents/Resources)

View file

@ -102,6 +102,7 @@ endif()
# Create a slic3r executable # Create a slic3r executable
# Process mainfests for various platforms. # 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.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/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) 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) if (CMAKE_MACOSX_BUNDLE)
set(BIN_RESOURCES_DIR "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/OrcaSlicer.app/Contents/Resources") set(BIN_RESOURCES_DIR "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/OrcaSlicer.app/Contents/Resources")
set(MACOSX_BUNDLE_ICON_FILE Icon.icns) 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_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() endif()
add_custom_command(TARGET OrcaSlicer POST_BUILD add_custom_command(TARGET OrcaSlicer POST_BUILD
COMMAND ln -sfn "${SLIC3R_RESOURCES_DIR}" "${BIN_RESOURCES_DIR}" COMMAND ln -sfn "${SLIC3R_RESOURCES_DIR}" "${BIN_RESOURCES_DIR}"

View file

@ -13,7 +13,7 @@
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>@SLIC3R_APP_NAME@ @SLIC3R_BUILD_ID@</string> <string>@SLIC3R_APP_NAME@ @SLIC3R_BUILD_ID@</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>com.bbl.slic3r/</string> <string>com.softfever3d.orca-slic3r/</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>

View file

@ -236,7 +236,7 @@ namespace instance_check_internal
dbus_uint32_t serial = 0; dbus_uint32_t serial = 0;
const char* sigval = message_text.c_str(); const char* sigval = message_text.c_str();
//std::string interface_name = "com.prusa3d.prusaslicer.InstanceCheck"; //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 method_name = "AnotherInstance";
//std::string object_name = "/com/prusa3d/prusaslicer/InstanceCheck"; //std::string object_name = "/com/prusa3d/prusaslicer/InstanceCheck";
std::string object_name = "/com/softfever3d/OrcaSlicer/InstanceCheck/Object" + version; std::string object_name = "/com/softfever3d/OrcaSlicer/InstanceCheck/Object" + version;
@ -538,7 +538,7 @@ namespace MessageHandlerDBusInternal
" <arg name=\"data\" direction=\"out\" type=\"s\" />" " <arg name=\"data\" direction=\"out\" type=\"s\" />"
" </method>" " </method>"
" </interface>" " </interface>"
" <interface name=\"com.softfever3d.orcaslicer.InstanceCheck\">" " <interface name=\"com.softfever3d.orca-slicer.InstanceCheck\">"
" <method name=\"AnotherInstance\">" " <method name=\"AnotherInstance\">"
" <arg name=\"data\" direction=\"in\" type=\"s\" />" " <arg name=\"data\" direction=\"in\" type=\"s\" />"
" </method>" " </method>"
@ -576,7 +576,7 @@ namespace MessageHandlerDBusInternal
{ {
const char* interface_name = dbus_message_get_interface(message); const char* interface_name = dbus_message_get_interface(message);
const char* member_name = dbus_message_get_member(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; 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)) { if (0 == strcmp("org.freedesktop.DBus.Introspectable", interface_name) && 0 == strcmp("Introspect", member_name)) {
respond_to_introspect(connection, message); respond_to_introspect(connection, message);
@ -596,7 +596,7 @@ void OtherInstanceMessageHandler::listen()
int name_req_val; int name_req_val;
DBusObjectPathVTable vtable; DBusObjectPathVTable vtable;
std::string instance_hash = wxGetApp().get_instance_hash_string(); 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; std::string object_name = "/com/softfever3d/OrcaSlicer/InstanceCheck/Object" + instance_hash;
//BOOST_LOG_TRIVIAL(debug) << "init dbus listen " << interface_name << " " << object_name; //BOOST_LOG_TRIVIAL(debug) << "init dbus listen " << interface_name << " " << object_name;