diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index c9e6d36c52..d63a038ee7 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -75,7 +75,7 @@ jobs: mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }} mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }}/OrcaSlicer_dep_${{ inputs.arch }} brew uninstall --ignore-dependencies zstd - ./build_release_macos.sh -dp -a ${{ inputs.arch }} + ./build_release_macos.sh -dp -a ${{ inputs.arch }} -t 10.15 brew install zstd diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index 58bd3e1b84..a2e1a54614 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -86,7 +86,7 @@ jobs: if: inputs.os == 'macos-12' working-directory: ${{ github.workspace }} run: | - ./build_release_macos.sh -s -n -a ${{inputs.arch}} + ./build_release_macos.sh -s -n -a ${{inputs.arch}} -t 10.15 # Thanks to RaySajuuk, it's working now - name: Sign app and notary diff --git a/CMakeLists.txt b/CMakeLists.txt index dffd6807d9..aa53ba06ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,12 @@ cmake_minimum_required(VERSION 3.13) + +if (APPLE) + # if CMAKE_OSX_DEPLOYMENT_TARGET is not set, set it to 11.3 + if (NOT CMAKE_OSX_DEPLOYMENT_TARGET) + set(CMAKE_OSX_DEPLOYMENT_TARGET "11.3" CACHE STRING "Minimum OS X deployment version") + endif () +endif () + project(OrcaSlicer) include("version.inc") @@ -52,7 +60,7 @@ if (APPLE) if (CMAKE_MACOSX_BUNDLE) 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_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version" FORCE) SET(CMAKE_XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.softfever3d.orca-slicer") message(STATUS "Orca: IS_CROSS_COMPILE: ${IS_CROSS_COMPILE}") @@ -786,4 +794,4 @@ set (CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE.txt) # must also in set(CPACK_WIX_UPGRADE_GUID "058245e8-20e0-4a95-9ab7-1acfe17ad511") set(CPACK_GENERATOR NSIS) -include(CPack) \ No newline at end of file +include(CPack) diff --git a/build_release_macos.sh b/build_release_macos.sh index b7cac93c18..01ddefd833 100755 --- a/build_release_macos.sh +++ b/build_release_macos.sh @@ -1,6 +1,6 @@ #!/bin/sh -while getopts ":a:sdphn" opt; do +while getopts ":a:sdpt:hn" opt; do case ${opt} in d ) export BUILD_TARGET="deps" @@ -17,11 +17,15 @@ while getopts ":a:sdphn" opt; do n ) export NIGHTLY_BUILD="1" ;; + t ) + export OSX_DEPLOYMENT_TARGET="$OPTARG" + ;; h ) echo "Usage: ./build_release_macos.sh [-d]" echo " -d: Build deps only" echo " -a: Set ARCHITECTURE (arm64 or x86_64)" echo " -s: Build slicer only" echo " -n: Nightly build" + echo " -t: Specify minimum version of the target platform, default is 11.3" exit 0 ;; esac @@ -34,7 +38,7 @@ fi echo "Arch: $ARCH" echo "BUILD_TARGET: $BUILD_TARGET" - +echo "OSX_DEPLOYMENT_TARGET: $OSX_DEPLOYMENT_TARGET" # if which -s brew; then # brew --prefix libiconv # brew --prefix zstd @@ -58,8 +62,8 @@ mkdir -p $DEPS if [ "slicer." != $BUILD_TARGET. ]; then echo "building deps..." - echo "cmake ../ -DDESTDIR=$DEPS -DOPENSSL_ARCH=darwin64-${ARCH}-cc -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES:STRING=${ARCH}" - cmake ../ -DDESTDIR="$DEPS" -DOPENSSL_ARCH="darwin64-${ARCH}-cc" -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES:STRING=${ARCH} + echo "cmake ../ -DDESTDIR=$DEPS -DOPENSSL_ARCH=darwin64-${ARCH}-cc -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES:STRING=${ARCH} -DCMAKE_OSX_DEPLOYMENT_TARGET=${OSX_DEPLOYMENT_TARGET}" + cmake ../ -DDESTDIR="$DEPS" -DOPENSSL_ARCH="darwin64-${ARCH}-cc" -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES:STRING=${ARCH} -DCMAKE_OSX_DEPLOYMENT_TARGET=${OSX_DEPLOYMENT_TARGET} cmake --build . --config Release --target deps if [ "1." == "$PACK_DEPS". ]; then @@ -77,7 +81,7 @@ cd $WD mkdir -p build_$ARCH cd build_$ARCH echo "building slicer..." -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 .. -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} -DCMAKE_OSX_DEPLOYMENT_TARGET=${OSX_DEPLOYMENT_TARGET} cmake --build . --config Release --target ALL_BUILD cd .. ./run_gettext.sh diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 1f0c8e5bc1..4352668633 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -20,8 +20,15 @@ # therefore, unfortunatelly, the installation cannot be copied/moved elsewhere without re-installing wxWidgets. # -project(OrcaSlicer-deps) cmake_minimum_required(VERSION 3.2) +if (APPLE) + # if CMAKE_OSX_DEPLOYMENT_TARGET is not set, set it to 11.3 + if (NOT CMAKE_OSX_DEPLOYMENT_TARGET) + set(CMAKE_OSX_DEPLOYMENT_TARGET "11.3" CACHE STRING "Minimum OS X deployment version") + endif () +endif () + +project(OrcaSlicer-deps) include(ExternalProject) include(ProcessorCount) @@ -163,7 +170,7 @@ if (MSVC) endif () elseif (APPLE) message("OS X SDK Path: ${CMAKE_OSX_SYSROOT}") - set(CMAKE_OSX_DEPLOYMENT_TARGET "11.3" CACHE STRING "Minimum OS X deployment version" FORCE) + set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version" FORCE) if (CMAKE_OSX_DEPLOYMENT_TARGET) set(DEP_OSX_TARGET "${CMAKE_OSX_DEPLOYMENT_TARGET}") message("OS X Deployment Target: ${DEP_OSX_TARGET}") diff --git a/src/slic3r/GUI/CalibrationPanel.cpp b/src/slic3r/GUI/CalibrationPanel.cpp index 88e107da84..9a16c13322 100644 --- a/src/slic3r/GUI/CalibrationPanel.cpp +++ b/src/slic3r/GUI/CalibrationPanel.cpp @@ -242,7 +242,7 @@ void SelectMObjectPopup::Popup(wxWindow* WXUNUSED(focus)) if (wxGetApp().is_user_login()) { if (!get_print_info_thread) { - get_print_info_thread = new boost::thread(Slic3r::create_thread([this, token = std::weak_ptr(m_token)] { + get_print_info_thread = new boost::thread(Slic3r::create_thread([this, token = std::weak_ptr(m_token)] { NetworkAgent* agent = wxGetApp().getAgent(); unsigned int http_code; std::string body; @@ -716,4 +716,4 @@ CalibrationPanel::~CalibrationPanel() { delete m_refresh_timer; } -}} \ No newline at end of file +}} diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 157b1e7dbb..81cc637bbc 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -4736,7 +4736,7 @@ void GUI_App::start_sync_user_preset(bool with_progress_dlg) cancelFn = [this, dlg]() { return m_is_closing || dlg->WasCanceled(); }; - finishFn = [this, userid = m_agent->get_user_id(), dlg, t = std::weak_ptr(m_user_sync_token)](bool ok) { + finishFn = [this, userid = m_agent->get_user_id(), dlg, t = std::weak_ptr(m_user_sync_token)](bool ok) { CallAfter([=]{ dlg->Destroy(); if (ok && m_agent && t.lock() == m_user_sync_token && userid == m_agent->get_user_id()) reload_settings(); @@ -4744,7 +4744,7 @@ void GUI_App::start_sync_user_preset(bool with_progress_dlg) }; } else { - finishFn = [this, userid = m_agent->get_user_id(), t = std::weak_ptr(m_user_sync_token)](bool ok) { + finishFn = [this, userid = m_agent->get_user_id(), t = std::weak_ptr(m_user_sync_token)](bool ok) { CallAfter([=] { if (ok && m_agent && t.lock() == m_user_sync_token && userid == m_agent->get_user_id()) reload_settings(); }); @@ -4752,7 +4752,7 @@ void GUI_App::start_sync_user_preset(bool with_progress_dlg) } m_sync_update_thread = Slic3r::create_thread( - [this, progressFn, cancelFn, finishFn, t = std::weak_ptr(m_user_sync_token)] { + [this, progressFn, cancelFn, finishFn, t = std::weak_ptr(m_user_sync_token)] { // get setting list, update setting list std::string version = preset_bundle->get_vendor_profile_version(PresetBundle::BBL_BUNDLE).to_string(); int ret = m_agent->get_setting_list2(version, [this](auto info) { diff --git a/src/slic3r/GUI/GUI_ObjectTableSettings.cpp b/src/slic3r/GUI/GUI_ObjectTableSettings.cpp index 7468d9c1b4..10578be691 100644 --- a/src/slic3r/GUI/GUI_ObjectTableSettings.cpp +++ b/src/slic3r/GUI/GUI_ObjectTableSettings.cpp @@ -220,7 +220,7 @@ bool ObjectTableSettings::update_settings_list(bool is_object, bool is_multiple_ optgroup->sidetext_width = 5; optgroup->set_config_category_and_type(GUI::from_u8(group_category), Preset::TYPE_PRINT); - std::weak_ptr weak_optgroup(optgroup); + std::weak_ptr weak_optgroup(optgroup); optgroup->m_on_change = [this, is_object, object, config, group_category](const t_config_option_key &opt_id, const boost::any &value) { this->m_parent->Freeze(); this->update_config_values(is_object, object, config, group_category); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index eb922861cf..863fcaf1e8 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -433,7 +433,7 @@ void SelectMachinePopup::Popup(wxWindow *WXUNUSED(focus)) if (wxGetApp().is_user_login()) { if (!get_print_info_thread) { - get_print_info_thread = new boost::thread(Slic3r::create_thread([this, token = std::weak_ptr(m_token)] { + get_print_info_thread = new boost::thread(Slic3r::create_thread([this, token = std::weak_ptr(m_token)] { NetworkAgent* agent = wxGetApp().getAgent(); unsigned int http_code; std::string body; @@ -2833,7 +2833,7 @@ void SelectMachineDialog::update_user_machine_list() { NetworkAgent* m_agent = wxGetApp().getAgent(); if (m_agent && m_agent->is_user_login()) { - boost::thread get_print_info_thread = Slic3r::create_thread([this, token = std::weak_ptr(m_token)] { + boost::thread get_print_info_thread = Slic3r::create_thread([this, token = std::weak_ptr(m_token)] { NetworkAgent* agent = wxGetApp().getAgent(); unsigned int http_code; std::string body; diff --git a/src/slic3r/GUI/SendToPrinter.cpp b/src/slic3r/GUI/SendToPrinter.cpp index 1900e281bd..7d0fb5663c 100644 --- a/src/slic3r/GUI/SendToPrinter.cpp +++ b/src/slic3r/GUI/SendToPrinter.cpp @@ -813,7 +813,7 @@ void SendToPrinterDialog::update_user_machine_list() { NetworkAgent* m_agent = wxGetApp().getAgent(); if (m_agent && m_agent->is_user_login()) { - boost::thread get_print_info_thread = Slic3r::create_thread([this, token = std::weak_ptr(m_token)] { + boost::thread get_print_info_thread = Slic3r::create_thread([this, token = std::weak_ptr(m_token)] { NetworkAgent* agent = wxGetApp().getAgent(); unsigned int http_code; std::string body; @@ -1391,4 +1391,4 @@ SendToPrinterDialog::~SendToPrinterDialog() } } -} \ No newline at end of file +}