summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorCorwin McKnight <lioneltabre@gmail.com>2016-05-03 23:25:53 -0700
committerCorwin McKnight <lioneltabre@gmail.com>2016-05-05 17:03:53 -0700
commit0368fc3837ac35ed227f64fe1d4efeba90e05191 (patch)
treead2dc950a0cf49768e22898d6c316fabe6c836fb /Source/Core
parentb7795044bbfc71bf57370ab02ff1346434484ffc (diff)
[Qt]: Enable Qt on Mac OSX.
* Enables Qt on OSX * Makes it look pretty
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/DolphinQt2/CMakeLists.txt45
-rw-r--r--Source/Core/DolphinQt2/Info.plist.in80
-rw-r--r--Source/Core/DolphinQt2/MainWindow.cpp1
3 files changed, 125 insertions, 1 deletions
diff --git a/Source/Core/DolphinQt2/CMakeLists.txt b/Source/Core/DolphinQt2/CMakeLists.txt
index 965c58af80..322e74c3cc 100644
--- a/Source/Core/DolphinQt2/CMakeLists.txt
+++ b/Source/Core/DolphinQt2/CMakeLists.txt
@@ -29,4 +29,47 @@ set(DOLPHINQT2_BINARY dolphin-emu-qt2)
add_executable(${DOLPHINQT2_BINARY} ${SRCS} ${UI_HEADERS})
target_link_libraries(${DOLPHINQT2_BINARY} ${LIBS} Qt5::Widgets)
-install(TARGETS ${DOLPHINQT2_BINARY} RUNTIME DESTINATION ${bindir})
+if(APPLE)
+ # Note: This is copied from DolphinQt, based on the DolphinWX version.
+
+ include(BundleUtilities)
+ set(BUNDLE_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${DOLPHINQT2_BINARY}.app)
+
+ # Ask for an application bundle.
+ set_target_properties(${DOLPHINQT2_BINARY} PROPERTIES
+ MACOSX_BUNDLE true
+ MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in
+ )
+
+ # get rid of any old copies
+ file (REMOVE_RECURSE ${BUNDLE_PATH}/Contents/Resources/Sys)
+ if(NOT SKIP_POSTPROCESS_BUNDLE)
+ # Fix up the bundle after it is finished.
+ # There does not seem to be an easy way to run CMake commands post-build,
+ # so we invoke CMake again on a generated script.
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/postprocess_bundle.cmake "
+ include(BundleUtilities)
+ message(\"Fixing up application bundle: ${BUNDLE_PATH}\")
+ message(\"(Note: This is only necessary to produce a redistributable binary.\")
+ message(\"To skip, pass -DSKIP_POSTPROCESS_BUNDLE=1 to cmake.)\")
+ set(BU_CHMOD_BUNDLE_ITEMS ON)
+ execute_process(COMMAND ${CMAKE_SOURCE_DIR}/Tools/deploy-mac.py -p platforms/libqcocoa.dylib \"${BUNDLE_PATH}\")
+ file(INSTALL ${CMAKE_SOURCE_DIR}/Data/Sys
+ DESTINATION ${BUNDLE_PATH}/Contents/Resources
+ )
+ ")
+ add_custom_command(TARGET ${DOLPHINQT2_BINARY} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -P postprocess_bundle.cmake
+ )
+ else()
+ add_custom_command(OUTPUT ${BUNDLE_PATH}/Contents/Resources/Sys
+ COMMAND ln -nfs ${CMAKE_SOURCE_DIR}/Data/Sys ${BUNDLE_PATH}/Contents/Resources/Sys
+ VERBATIM
+ )
+ add_custom_target(CopyDataIntoBundleQt ALL
+ DEPENDS ${BUNDLE_PATH}/Contents/Resources/Sys
+ )
+ endif()
+else()
+ install(TARGETS ${DOLPHINQT2_BINARY} RUNTIME DESTINATION ${bindir})
+endif()
diff --git a/Source/Core/DolphinQt2/Info.plist.in b/Source/Core/DolphinQt2/Info.plist.in
new file mode 100644
index 0000000000..7b567a54d4
--- /dev/null
+++ b/Source/Core/DolphinQt2/Info.plist.in
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDocumentTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>ciso</string>
+ <string>dol</string>
+ <string>elf</string>
+ <string>gcm</string>
+ <string>gcz</string>
+ <string>iso</string>
+ <string>wad</string>
+ <string>wbfs</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>Dolphin.icns</string>
+ <key>CFBundleTypeName</key>
+ <string>Nintendo GC/Wii file</string>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ </dict>
+ </array>
+ <key>CFBundleExecutable</key>
+ <string>dolphin-emu-qt2</string>
+ <key>CFBundleIconFile</key>
+ <string>Resources/Dolphin.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>org.dolphin-emu.dolphin</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleLocalizations</key>
+ <array>
+ <string>ar</string>
+ <string>ca</string>
+ <string>cs</string>
+ <string>de</string>
+ <string>el</string>
+ <string>en</string>
+ <string>es</string>
+ <string>fa</string>
+ <string>fr</string>
+ <string>he</string>
+ <string>hu</string>
+ <string>it</string>
+ <string>ja</string>
+ <string>ko</string>
+ <string>nb</string>
+ <string>nl</string>
+ <string>pl</string>
+ <string>pt</string>
+ <string>pt_BR</string>
+ <string>ru</string>
+ <string>sr</string>
+ <string>sv</string>
+ <string>tr</string>
+ <string>zh_CN</string>
+ <string>zh_TW</string>
+ </array>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>${DOLPHIN_WC_DESCRIBE}</string>
+ <key>CFBundleLongVersionString</key>
+ <string>${DOLPHIN_WC_REVISION}</string>
+ <key>CFBundleVersion</key>
+ <string>${DOLPHIN_VERSION_MAJOR}.${DOLPHIN_VERSION_MINOR}</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>Licensed under GPL version 2 or later (GPLv2+)</string>
+ <key>LSMinimumSystemVersion</key>
+ <string>${OSX_MIN_VERSION}</string>
+ <key>NSHighResolutionCapable</key>
+ <true/>
+ <key>CSResourcesFileMapped</key>
+ <true/>
+</dict>
+</plist> \ No newline at end of file
diff --git a/Source/Core/DolphinQt2/MainWindow.cpp b/Source/Core/DolphinQt2/MainWindow.cpp
index 7fc7286b06..204ea66029 100644
--- a/Source/Core/DolphinQt2/MainWindow.cpp
+++ b/Source/Core/DolphinQt2/MainWindow.cpp
@@ -23,6 +23,7 @@ MainWindow::MainWindow() : QMainWindow(nullptr)
{
setWindowTitle(tr("Dolphin"));
setWindowIcon(QIcon(Resources::GetMisc(Resources::LOGO_SMALL)));
+ setUnifiedTitleAndToolBarOnMac(true);
CreateComponents();