Move macOS from .zip to .dmg distribution (#169)

This commit is contained in:
Ryan McGrath
2020-11-13 16:44:17 -08:00
committed by GitHub
parent 07cbdf07ed
commit 9012cd433c
7 changed files with 53 additions and 15 deletions

View File

@@ -307,9 +307,9 @@ jobs:
run: |
git fetch --prune --unshallow
echo "GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
echo "GIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "GIT_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
echo "CURR_DATE=$(date +%Y-%m-%d)" >> $GITHUB_ENV
echo "GIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "GIT_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
echo "CURR_DATE=$(date +%Y-%m-%d)" >> $GITHUB_ENV
- name: "Install 10.14 SDK"
if: success()
shell: bash
@@ -335,7 +335,8 @@ jobs:
pkgconfig \
libao \
sound-touch \
hidapi
hidapi \
create-dmg
- name: "Cache wxWidgets 3.1.3"
uses: actions/cache@v1
env:
@@ -367,12 +368,24 @@ jobs:
shell: bash
working-directory: ${{ github.workspace }}
run: |
FILE_NAME=${{ env.CURR_DATE }}-${{ env.GIT_HASH }}-${{ env.GIT_TAG }}-macOS-netplay.tar.gz
FILE_NAME=${{ env.CURR_DATE }}-${{ env.GIT_HASH }}-${{ env.GIT_TAG }}-macOS-netplay.dmg
echo "FILE_NAME=$(FILE_NAME)" >> $GITHUB_ENV
cp -Rf Data/Sys build/Binaries/Slippi\ Dolphin.app/Contents/Resources/
mkdir artifact
cd ./build/Binaries/
zip -r "${FILE_NAME}" Slippi\ Dolphin.app
mv "${FILE_NAME}" ../../artifact/
create-dmg --no-internet-enable \
--volname "Slippi Dolphin Installer" \
--volicon "Data/slippi_dmg_icon.icns" \
--background "Data/slippi_dmg_background.png" \
--text-size 14 \
--window-pos 200 120 \
--window-size 590 610 \
--icon-size 100 \
--app-drop-link 440 196 \
--icon "Slippi Dolphin.app" 140 196 \
--hide-extension "Slippi Dolphin.app" \
"${FILE_NAME}" \
"./build/Binaries/"
mv "${FILE_NAME}" artifact/
- name: "Publish"
if: success()
uses: actions/upload-artifact@v2-preview

View File

@@ -53,7 +53,9 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT ANDROID)
endif()
if(APPLE)
option(OSX_USE_DEFAULT_SEARCH_PATH "Don't prioritize system library paths" OFF)
option(MACOS_USE_DEFAULT_SEARCH_PATH "Don't prioritize system library paths" OFF)
option(MACOS_CODE_SIGNING "Enable codesigning" OFF)
set(MACOS_CODE_SIGNING_IDENTITY "The identity used for codesigning." CACHE STRING "")
set(CMAKE_FIND_FRAMEWORK LAST)
set(CMAKE_FIND_APPBUNDLE LAST)
endif()
@@ -284,7 +286,7 @@ if(ENABLE_LTO)
endif()
if(APPLE)
if(NOT OSX_USE_DEFAULT_SEARCH_PATH)
if(NOT MACOS_USE_DEFAULT_SEARCH_PATH)
# Hack up the path to prioritize the path to built-in OS libraries to
# increase the chance of not depending on a bunch of copies of them
# installed by MacPorts, Fink, Homebrew, etc, and ending up copying

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
Data/slippi_dmg_icon.icns Normal file

Binary file not shown.

View File

@@ -61,7 +61,13 @@ void* AllocateExecutableMemory(size_t size, bool low)
if (low && (!map_hint))
map_hint = (char*)RoundPage(512 * 1024 * 1024); /* 0.5 GB rounded up to the next page */
#endif
void* ptr = mmap(map_hint, size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE
int flags = MAP_ANON | MAP_PRIVATE;
#ifdef __APPLE__
flags |= MAP_JIT;
#endif
void* ptr = mmap(map_hint, size, PROT_READ | PROT_WRITE | PROT_EXEC, flags
#if defined(_M_X86_64) && defined(MAP_32BIT)
| (low ? MAP_32BIT : 0)
#endif

View File

@@ -211,10 +211,11 @@ if(wxWidgets_FOUND)
)
endif()
# Install bundle into systemwide /Applications directory.
install(DIRECTORY ${BUNDLE_PATH} DESTINATION /Applications
USE_SOURCE_PERMISSIONS
)
if(MACOS_CODE_SIGNING)
add_custom_command(TARGET ${DOLPHIN_EXE}
POST_BUILD COMMAND
/usr/bin/codesign -f -s "${MACOS_CODE_SIGNING_IDENTITY}" --deep --options runtime --entitlements ${CMAKE_SOURCE_DIR}/Source/Core/DolphinWX/Entitlements.plist "${BUNDLE_PATH_NO_QUOTES}")
endif()
else()
install(TARGETS ${DOLPHIN_EXE} RUNTIME DESTINATION ${bindir})
endif()

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The below is based on work done by OatmealDome for upstream mainline Dolphin. -->
<!-- Required for JIT usage -->
<key>com.apple.security.cs.allow-jit</key>
<true/>
<!-- Needed for GameCube microphone emulation -->
<key>com.apple.security.device.audio-input</key>
<true/>
<!-- TODO: What is using AppleEvents? -->
<key>com.apple.security.automation.apple-events</key>
<true/>
</dict>
</plist>