From 5a40c1802b694251481d66b00608fb1a16d77288 Mon Sep 17 00:00:00 2001 From: vit9696 Date: Sat, 24 Nov 2018 03:27:33 +0300 Subject: [PATCH] Support macOS bundling for binary distribution --- .travis/build-mac.bash | 4 +- Utilities/File.cpp | 6 +++ rpcs3/CMakeLists.txt | 22 ++++++++- rpcs3/Emu/RSX/Overlays/overlay_controls.h | 40 +++++++++++----- rpcs3/main.cpp | 53 +++++++++++++++------- rpcs3/rpcs3.icns | Bin 0 -> 116958 bytes rpcs3/rpcs3_app.cpp | 10 ++-- rpcs3/rpcs3_version.cpp | 1 + rpcs3/rpcs3qt/gui_settings.cpp | 12 +++-- 9 files changed, 109 insertions(+), 39 deletions(-) create mode 100644 rpcs3/rpcs3.icns diff --git a/.travis/build-mac.bash b/.travis/build-mac.bash index 6662921455..ced36667d0 100644 --- a/.travis/build-mac.bash +++ b/.travis/build-mac.bash @@ -15,7 +15,9 @@ unzip -: sdk-*.zip mkdir vulkan-sdk ln -s ${PWD}/Vulkan-Headers*/include vulkan-sdk/include mkdir vulkan-sdk/lib -ln target/release/libportability.dylib vulkan-sdk/lib/libVulkan.dylib +cp target/release/libportability.dylib vulkan-sdk/lib/libVulkan.dylib +# Let macdeployqt locate and install Vulkan library +install_name_tool -id ${PWD}/vulkan-sdk/lib/libVulkan.dylib vulkan-sdk/lib/libVulkan.dylib export VULKAN_SDK=${PWD}/vulkan-sdk git submodule update --quiet --init asmjit 3rdparty/ffmpeg 3rdparty/pugixml 3rdparty/GSL 3rdparty/libpng 3rdparty/cereal 3rdparty/hidapi 3rdparty/xxHash 3rdparty/yaml-cpp Vulkan/glslang diff --git a/Utilities/File.cpp b/Utilities/File.cpp index 32c002a544..dd16ede5b9 100644 --- a/Utilities/File.cpp +++ b/Utilities/File.cpp @@ -1376,10 +1376,16 @@ const std::string& fs::get_config_dir() dir.resize(dir.rfind('/') + 1); #else + +#ifdef __APPLE__ + if (const char* home = ::getenv("HOME")) + dir = home + "/Library/Application Support"s; +#else if (const char* home = ::getenv("XDG_CONFIG_HOME")) dir = home; else if (const char* home = ::getenv("HOME")) dir = home + "/.config"s; +#endif else // Just in case dir = "./config"; diff --git a/rpcs3/CMakeLists.txt b/rpcs3/CMakeLists.txt index 53178044ef..d087717809 100644 --- a/rpcs3/CMakeLists.txt +++ b/rpcs3/CMakeLists.txt @@ -41,6 +41,15 @@ file(GLOB RPCS3_SRC "*.cpp") if(WIN32) add_executable(rpcs3 WIN32 ${RPCS3_SRC}) +elseif(APPLE) + set(MACOSX_BUNDLE_BUNDLE_NAME rpcs3) + set(MACOSX_BUNDLE_GUI_IDENTIFIER "net.rpcs3.rpcs3") + set(MACOSX_BUNDLE_INFO_STRING "Open-source Sony PlayStation 3 emulator") + set(MACOSX_BUNDLE_ICON_FILE "rpcs3.icns") + set(MACOSX_BUNDLE_LONG_VERSION_STRING "0.0.5") + set(MACOSX_BUNDLE_SHORT_VERSION_STRING "0.0.5") + set(MACOSX_BUNDLE_BUNDLE_VERSION "0.0.5") + add_executable(rpcs3 MACOSX_BUNDLE ${RPCS3_SRC} "${RPCS3_SRC_DIR}/rpcs3.icns") else() add_executable(rpcs3 ${RPCS3_SRC}) endif() @@ -84,8 +93,17 @@ set_target_properties(rpcs3 PROPERTIES cotire(rpcs3) -if (UNIX) - # Copy icons to executable directory +# Copy icons to executable directory +if(APPLE) + add_custom_command(TARGET rpcs3 POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${RPCS3_SRC_DIR}/rpcs3.icns $/../Resources/rpcs3.icns + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_SOURCE_DIR}/bin/Icons $/../Resources/Icons + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_SOURCE_DIR}/bin/GuiConfigs $/../Resources/GuiConfigs + COMMAND "${Qt5_DIR}/../../../bin/macdeployqt" "${PROJECT_BINARY_DIR}/bin/rpcs3.app") +elseif(UNIX) add_custom_command(TARGET rpcs3 POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/bin/Icons $/Icons) diff --git a/rpcs3/Emu/RSX/Overlays/overlay_controls.h b/rpcs3/Emu/RSX/Overlays/overlay_controls.h index 50e6b47c87..a58e1c3021 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_controls.h +++ b/rpcs3/Emu/RSX/Overlays/overlay_controls.h @@ -15,6 +15,10 @@ #include #endif +#ifdef __APPLE__ +#include +#endif + // STB_IMAGE_IMPLEMENTATION and STB_TRUETYPE_IMPLEMENTATION defined externally #include #include @@ -505,24 +509,37 @@ namespace rsx if (info->data == nullptr) { // Resource was not found in config dir, try and grab from relative path (linux) - info = std::make_unique(("Icons/ui/" + res).c_str()); + auto src = "Icons/ui/" + res; + info = std::make_unique(src.c_str()); #ifndef _WIN32 - // Check for Icons in ../share/rpcs3 for AppImages and /usr/bin/ + // Check for Icons in ../share/rpcs3 for AppImages, + // in rpcs3.app/Contents/Resources for App Bundles, and /usr/bin. if (info->data == nullptr) { char result[ PATH_MAX ]; -#ifdef __linux__ - ssize_t count = readlink( "/proc/self/exe", result, PATH_MAX ); +#if defined(__APPLE__) + uint32_t bufsize = PATH_MAX; + bool success = _NSGetExecutablePath( result, &bufsize ) == 0; +#elif defined(__linux__) + bool success = readlink( "/proc/self/exe", result, PATH_MAX ) >= 0; #else - ssize_t count = readlink( "/proc/curproc/file", result, PATH_MAX ); + bool success = readlink( "/proc/curproc/file", result, PATH_MAX ) >= 0; #endif - std::string executablePath = dirname(result); - info = std::make_unique((executablePath + "/../share/rpcs3/Icons/ui/" + res).c_str()); - - // Check if the icons are in the same directory as the executable (local builds) - if (info->data == nullptr) + if (success) { - info = std::make_unique((executablePath + "/Icons/ui/" + res).c_str()); + std::string executablePath = dirname(result); +#ifdef __APPLE__ + src = executablePath + "/../Resources/Icons/ui/" + res; +#else + src = executablePath + "/../share/rpcs3/Icons/ui/" + res; +#endif + info = std::make_unique(src.c_str()); + // Check if the icons are in the same directory as the executable (local builds) + if (info->data == nullptr) + { + src = executablePath + "/Icons/ui/" + res; + info = std::make_unique(src.c_str()); + } } } #endif @@ -530,7 +547,6 @@ namespace rsx { // Install the image to config dir auto dst_dir = fs::get_config_dir() + "Icons/ui/"; - auto src = "Icons/ui/" + res; auto dst = dst_dir + res; if (!fs::is_dir(dst_dir)) diff --git a/rpcs3/main.cpp b/rpcs3/main.cpp index 567a5ceaa7..1ad213a146 100644 --- a/rpcs3/main.cpp +++ b/rpcs3/main.cpp @@ -18,6 +18,10 @@ #include #endif +#ifdef __APPLE__ +#include +#endif + #include "rpcs3_version.h" inline std::string sstr(const QString& _in) { return _in.toStdString(); } @@ -50,23 +54,38 @@ static semaphore<> s_qt_mutex{}; static QApplication app0{argc, argv}; } - QMessageBox msg; - msg.setWindowTitle(tr("RPCS3: Fatal Error")); - msg.setIcon(QMessageBox::Critical); - msg.setTextFormat(Qt::RichText); - msg.setText(QString(R"( -

- %1
- %2
- https://github.com/RPCS3/rpcs3/wiki/How-to-ask-for-Support
- %3
-

- )") - .arg(Qt::convertFromPlainText(QString::fromStdString(text))) - .arg(tr("HOW TO REPORT ERRORS:")) - .arg(tr("Please, don't send incorrect reports. Thanks for understanding."))); - msg.layout()->setSizeConstraint(QLayout::SetFixedSize); - msg.exec(); + auto show_report = [](const std::string& text) + { + QMessageBox msg; + msg.setWindowTitle(tr("RPCS3: Fatal Error")); + msg.setIcon(QMessageBox::Critical); + msg.setTextFormat(Qt::RichText); + msg.setText(QString(R"( +

+ %1
+ %2
+ https://github.com/RPCS3/rpcs3/wiki/How-to-ask-for-Support
+ %3
+

+ )") + .arg(Qt::convertFromPlainText(QString::fromStdString(text))) + .arg(tr("HOW TO REPORT ERRORS:")) + .arg(tr("Please, don't send incorrect reports. Thanks for understanding."))); + msg.layout()->setSizeConstraint(QLayout::SetFixedSize); + msg.exec(); + }; + +#ifdef __APPLE__ + // Cocoa access is not allowed outside of the main thread + if (!pthread_main_np()) + { + dispatch_sync(dispatch_get_main_queue(), ^ { show_report(text); }); + } + else +#endif + { + show_report(text); + } std::abort(); } diff --git a/rpcs3/rpcs3.icns b/rpcs3/rpcs3.icns new file mode 100644 index 0000000000000000000000000000000000000000..bf076ef39120748cd646eae1e98eced0dc1671be GIT binary patch literal 116958 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 Z;=F~c_Uu0b@;1<`j1ZbZ7D~gYV*u(_6e<7! literal 0 HcmV?d00001 diff --git a/rpcs3/rpcs3_app.cpp b/rpcs3/rpcs3_app.cpp index 00a43c6961..a1c34b4d2e 100644 --- a/rpcs3/rpcs3_app.cpp +++ b/rpcs3/rpcs3_app.cpp @@ -422,9 +422,13 @@ void rpcs3_app::OnChangeStyleSheetRequest(const QString& path) QFile file(path); -#if !defined(_WIN32) && !defined(__APPLE__) - // If we can't open the file, try the /share folder + // If we can't open the file, try the /share or /Resources folder +#if !defined(_WIN32) +#ifdef __APPLE__ + QString share_dir = QCoreApplication::applicationDirPath() + "/../Resources/"; +#else QString share_dir = QCoreApplication::applicationDirPath() + "/../share/rpcs3/"; +#endif QFile share_file(share_dir + "GuiConfigs/" + QFileInfo(file.fileName()).fileName()); #endif @@ -451,7 +455,7 @@ void rpcs3_app::OnChangeStyleSheetRequest(const QString& path) setStyleSheet(file.readAll()); file.close(); } -#if !defined(_WIN32) && !defined(__APPLE__) +#if !defined(_WIN32) else if (share_file.open(QIODevice::ReadOnly | QIODevice::Text)) { QDir::setCurrent(share_dir); diff --git a/rpcs3/rpcs3_version.cpp b/rpcs3/rpcs3_version.cpp index ca8319d28e..a1d9ebb13d 100644 --- a/rpcs3/rpcs3_version.cpp +++ b/rpcs3/rpcs3_version.cpp @@ -9,5 +9,6 @@ namespace rpcs3 return RPCS3_GIT_BRANCH; } + //TODO: Make this accessible from cmake and keep in sync with MACOSX_BUNDLE_BUNDLE_VERSION. const extern utils::version version{ 0, 0, 5, utils::version_type::alpha, 1, RPCS3_GIT_VERSION }; } diff --git a/rpcs3/rpcs3qt/gui_settings.cpp b/rpcs3/rpcs3qt/gui_settings.cpp index b46bc99000..315dc4f708 100644 --- a/rpcs3/rpcs3qt/gui_settings.cpp +++ b/rpcs3/rpcs3qt/gui_settings.cpp @@ -338,10 +338,14 @@ QStringList gui_settings::GetStylesheetEntries() { QStringList nameFilter = QStringList("*.qss"); QStringList res = gui::utils::get_dir_entries(m_settingsDir, nameFilter); -#if !defined(_WIN32) && !defined(__APPLE__) - // Makes stylesheets load if using AppImage or installed to /usr/bin - QDir linuxStylesheetDir = QCoreApplication::applicationDirPath() + "/../share/rpcs3/GuiConfigs/"; - res.append(gui::utils::get_dir_entries(linuxStylesheetDir, nameFilter)); +#if !defined(_WIN32) + // Makes stylesheets load if using AppImage (App Bundle) or installed to /usr/bin +#ifdef __APPLE__ + QDir platformStylesheetDir = QCoreApplication::applicationDirPath() + "/../Resources/GuiConfigs/"; +#else + QDir platformStylesheetDir = QCoreApplication::applicationDirPath() + "/../share/rpcs3/GuiConfigs/"; +#endif + res.append(gui::utils::get_dir_entries(platformStylesheetDir, nameFilter)); res.removeDuplicates(); #endif res.sort(Qt::CaseInsensitive);