From e5a80995dc8ceb855afa6eb8c010f56f4f311637 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Tue, 17 Aug 2021 14:04:33 -0400 Subject: [PATCH] Bump minimum macOS to 10.13 High Sierra --- BuildMacOSUniversalBinary.py | 2 +- CMakeLists.txt | 4 ++-- Readme.md | 2 +- Source/Core/Common/FileUtil.cpp | 38 ++++++++++++++++----------------- 4 files changed, 22 insertions(+), 24 deletions(-) diff --git a/BuildMacOSUniversalBinary.py b/BuildMacOSUniversalBinary.py index 569594e2a5..dcc96da343 100755 --- a/BuildMacOSUniversalBinary.py +++ b/BuildMacOSUniversalBinary.py @@ -64,7 +64,7 @@ DEFAULT_CONFIG = { # Minimum macOS version for each architecture slice "arm64_mac_os_deployment_target": "11.0.0", - "x86_64_mac_os_deployment_target": "10.12.0", + "x86_64_mac_os_deployment_target": "10.13.0", # CMake Generator to use for building "generator": "Unix Makefiles", diff --git a/CMakeLists.txt b/CMakeLists.txt index d446e0b465..b9f8ae348d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,9 +8,9 @@ cmake_minimum_required(VERSION 3.10) # MacOS prior to 10.14 did not support aligned alloc which is used to implement # std::unique_ptr in the arm64 C++ standard library. x86_64 builds can override -# this to 10.12.0 using -DCMAKE_OSX_DEPLOYMENT_TARGET="10.12.0" without issue. +# this to 10.13.0 using -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13.0" without issue. # This is done in the universal binary building script to build a binary that -# runs on 10.12 on x86_64 computers, while still containing an arm64 slice. +# runs on 10.13 on x86_64 computers, while still containing an arm64 slice. set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14.0" CACHE STRING "") diff --git a/Readme.md b/Readme.md index 451a2d111a..ba0805487c 100644 --- a/Readme.md +++ b/Readme.md @@ -15,7 +15,7 @@ Please read the [FAQ](https://dolphin-emu.org/docs/faq/) before using Dolphin. * OS * Windows (7 SP1 or higher). * Linux. - * macOS (10.12 Sierra or higher). + * macOS (10.13 High Sierra or higher). * Unix-like systems other than Linux are not officially supported but might work. * Processor * A CPU with SSE2 support. diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp index 96d72a36d7..2204f066e4 100644 --- a/Source/Core/Common/FileUtil.cpp +++ b/Source/Core/Common/FileUtil.cpp @@ -795,29 +795,27 @@ std::string GetBundleDirectory() // this function, so bundle_ref will be untranslocated if necessary. // // More information: https://objective-see.com/blog/blog_0x15.html - if (__builtin_available(macOS 10.12, *)) + + // The APIs to deal with translocated paths are private, so we have + // to dynamically load them from the Security framework. + // + // The headers can be found under "Security" on opensource.apple.com: + // Security/OSX/libsecurity_translocate/lib/SecTranslocate.h + if (!s_security_framework.IsOpen()) { - // The APIs to deal with translocated paths are private, so we have - // to dynamically load them from the Security framework. - // - // The headers can be found under "Security" on opensource.apple.com: - // Security/OSX/libsecurity_translocate/lib/SecTranslocate.h - if (!s_security_framework.IsOpen()) - { - s_security_framework.Open("/System/Library/Frameworks/Security.framework/Security"); - s_security_framework.GetSymbol("SecTranslocateIsTranslocatedURL", &s_is_translocated_url); - s_security_framework.GetSymbol("SecTranslocateCreateOriginalPathForURL", &s_create_orig_path); - } + s_security_framework.Open("/System/Library/Frameworks/Security.framework/Security"); + s_security_framework.GetSymbol("SecTranslocateIsTranslocatedURL", &s_is_translocated_url); + s_security_framework.GetSymbol("SecTranslocateCreateOriginalPathForURL", &s_create_orig_path); + } - bool is_translocated = false; - s_is_translocated_url(bundle_ref, &is_translocated, nullptr); + bool is_translocated = false; + s_is_translocated_url(bundle_ref, &is_translocated, nullptr); - if (is_translocated) - { - CFURLRef untranslocated_ref = s_create_orig_path(bundle_ref, nullptr); - CFRelease(bundle_ref); - bundle_ref = untranslocated_ref; - } + if (is_translocated) + { + CFURLRef untranslocated_ref = s_create_orig_path(bundle_ref, nullptr); + CFRelease(bundle_ref); + bundle_ref = untranslocated_ref; } char app_bundle_path[MAXPATHLEN];