Mac deployment

- Use the SDL2 framework wholesale instead of manually extracting dylib and headers
- Run install_name_tool on the remaining dylibs so they use the correct load path
- Add generate-dmg.sh for creating packaged Mac builds
This commit is contained in:
Cameron Gutman 2018-07-29 03:38:59 -07:00
parent cda80b319e
commit 79d5e35306
74 changed files with 891 additions and 3 deletions

View File

@ -37,8 +37,8 @@ win32 {
LIBS += ws2_32.lib winmm.lib dxva2.lib ole32.lib
}
macx {
INCLUDEPATH += $$PWD/../libs/mac/include
LIBS += -L$$PWD/../libs/mac/lib
INCLUDEPATH += $$PWD/../libs/mac/include $$PWD/../libs/mac/Frameworks/SDL2.framework/Versions/A/Headers
LIBS += -L$$PWD/../libs/mac/lib -F$$PWD/../libs/mac/Frameworks
}
unix:!macx {
@ -60,7 +60,7 @@ win32 {
CONFIG += ffmpeg
}
macx {
LIBS += -lssl -lcrypto -lSDL2 -lavcodec.58 -lavutil.56
LIBS += -lssl -lcrypto -lavcodec.58 -lavutil.56 -framework SDL2
LIBS += -lobjc -framework VideoToolbox -framework AVFoundation -framework CoreVideo -framework CoreGraphics -framework CoreMedia -framework AppKit
CONFIG += ffmpeg
}

View File

@ -0,0 +1 @@
Versions/Current/Headers

View File

@ -0,0 +1 @@
Versions/Current/Resources

View File

@ -0,0 +1 @@
Versions/Current/SDL2

View File

@ -0,0 +1,46 @@
<?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>
<key>BuildMachineOSBuild</key>
<string>17C88</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>SDL2</string>
<key>CFBundleGetInfoString</key>
<string>http://www.libsdl.org</string>
<key>CFBundleIdentifier</key>
<string>org.libsdl.SDL2</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Simple DirectMedia Layer</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>2.0.8</string>
<key>CFBundleSignature</key>
<string>SDLX</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>2.0.8</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>9C40b</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>17C76</string>
<key>DTSDKName</key>
<string>macosx10.13</string>
<key>DTXcode</key>
<string>0920</string>
<key>DTXcodeBuild</key>
<string>9C40b</string>
</dict>
</plist>

View File

@ -0,0 +1,792 @@
<?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>
<key>files</key>
<dict>
<key>Resources/Info.plist</key>
<data>
dts8ape5zBg3+8u8BQ5kWqp9cC8=
</data>
</dict>
<key>files2</key>
<dict>
<key>Headers/SDL.h</key>
<dict>
<key>hash</key>
<data>
wiqwnVgtbgjGPAOFejxz8yw7geU=
</data>
<key>hash2</key>
<data>
LLwzMAHn2OsCr2SVR7M71KeQf+TiJpHk/KKojzQdRlI=
</data>
</dict>
<key>Headers/SDL_assert.h</key>
<dict>
<key>hash</key>
<data>
zWoE6/P7ZWAYr4J+EVgDAK+kot8=
</data>
<key>hash2</key>
<data>
tuS18C7A11akqH9MWT0WWCb6q7kcF97Ui5OFwNtSF/k=
</data>
</dict>
<key>Headers/SDL_atomic.h</key>
<dict>
<key>hash</key>
<data>
/q15zvR2djPgTRkySENYqzisn64=
</data>
<key>hash2</key>
<data>
n9rGA8zXFxasUnN0ytgLLWmW2CDCtKBeGJZcfB+nfRc=
</data>
</dict>
<key>Headers/SDL_audio.h</key>
<dict>
<key>hash</key>
<data>
9uJv81fH9Op/f3sF7/GVuNYQNOc=
</data>
<key>hash2</key>
<data>
KDokTSV3kZuHCQFFrRum3VoTP1QSW2xAghjceoIArXY=
</data>
</dict>
<key>Headers/SDL_bits.h</key>
<dict>
<key>hash</key>
<data>
yp8Jj93ZE224v1+u++cOexlp9RY=
</data>
<key>hash2</key>
<data>
kQTBxFYnOjKSlti4H7pAYZWdkH0BpQ9Eq54E/r/nlVY=
</data>
</dict>
<key>Headers/SDL_blendmode.h</key>
<dict>
<key>hash</key>
<data>
kgTnzOrp0kqeI8lzDgQyT/gCGiM=
</data>
<key>hash2</key>
<data>
d/8B0iLh4aFeoaPEFqQ4C6x4ISlDJCKrybaKuHCJHL4=
</data>
</dict>
<key>Headers/SDL_clipboard.h</key>
<dict>
<key>hash</key>
<data>
qq1r82AS7fHG8G94+jvL41iKEyA=
</data>
<key>hash2</key>
<data>
+r0LOXHGRf2Q9+FkqRU6i++1zEzsE5sWXxxMGrsSyKk=
</data>
</dict>
<key>Headers/SDL_config.h</key>
<dict>
<key>hash</key>
<data>
nJnfliCMDJUfOG8t4QYt5U9tFBY=
</data>
<key>hash2</key>
<data>
qkVvxnI+XRMTIdbzQ9tV+ERRc75r/EzWu0qRTgt5K5c=
</data>
</dict>
<key>Headers/SDL_config_macosx.h</key>
<dict>
<key>hash</key>
<data>
D0LXp0FibaaLSE6877hbyqf2Jb8=
</data>
<key>hash2</key>
<data>
pCQLXwJ6HaGZiG5vr9njJtgNcIV9p0mxcSJtYoj147A=
</data>
</dict>
<key>Headers/SDL_copying.h</key>
<dict>
<key>hash</key>
<data>
0DKOkPvRlLo00X7iE2fL4i8XBww=
</data>
<key>hash2</key>
<data>
nHJ8cj/FeSfLoRm5gRiDk73eyYlKn7u1BfbqkB2ofLg=
</data>
</dict>
<key>Headers/SDL_cpuinfo.h</key>
<dict>
<key>hash</key>
<data>
2wleDfJFmCBrEssrE9rcuaiqOLQ=
</data>
<key>hash2</key>
<data>
MEpF0mFQFLhuTV+5uSB++q8tT2z5heESxyP1HuzuKxc=
</data>
</dict>
<key>Headers/SDL_endian.h</key>
<dict>
<key>hash</key>
<data>
WmJrxu+b1MkjtE6ttCymwH4EVC0=
</data>
<key>hash2</key>
<data>
77hv0QIqlra/8gcQF81aAwP21/ZAANKiIaJRV1QK8mk=
</data>
</dict>
<key>Headers/SDL_error.h</key>
<dict>
<key>hash</key>
<data>
HMprigJ3u4PqQ7B+gD1UUbTSrJ8=
</data>
<key>hash2</key>
<data>
errosoVYCD45UvQVzL4Lmfq4eCQg92a6xUZ062DGEL4=
</data>
</dict>
<key>Headers/SDL_events.h</key>
<dict>
<key>hash</key>
<data>
ptgRA0IBsCg5za/lwhTOPGNmekY=
</data>
<key>hash2</key>
<data>
lwISPqzee6nV4HCHaMzZCVJJAtFZmoi8cYlJkY41wKA=
</data>
</dict>
<key>Headers/SDL_filesystem.h</key>
<dict>
<key>hash</key>
<data>
9rIKoCtsAONdgfT/4QKm3a56hV0=
</data>
<key>hash2</key>
<data>
l5nBvMglAIFEWf357KMyQ+E7cr4GqO9XNwevA04+VmQ=
</data>
</dict>
<key>Headers/SDL_gamecontroller.h</key>
<dict>
<key>hash</key>
<data>
sUaSBwOprX7A696W6u2oOtIne+Y=
</data>
<key>hash2</key>
<data>
VZDstHk/V+tZik3q3xnDCAG3AfA+BoHk9lB406mKtxU=
</data>
</dict>
<key>Headers/SDL_gesture.h</key>
<dict>
<key>hash</key>
<data>
d80fR6I92r+G26xckkQzTRj/tj4=
</data>
<key>hash2</key>
<data>
/5+tOQWQ9raopqBCExlH9ClAA/fVAfEBIrd/WlpaqIE=
</data>
</dict>
<key>Headers/SDL_haptic.h</key>
<dict>
<key>hash</key>
<data>
95rNclZzbsuV6pyeG8cbIETgS84=
</data>
<key>hash2</key>
<data>
O4RUmC9HMqsjAf22Ru6z5j9HaYTsc7SxOnzOXPR3kz0=
</data>
</dict>
<key>Headers/SDL_hints.h</key>
<dict>
<key>hash</key>
<data>
UjEgXfZiLUmQTh9G+Bkx8Y1Ov6k=
</data>
<key>hash2</key>
<data>
DqFPmBXNg9BovdIAlipnBKZo5mcQJCrLmhyIM/O+tvU=
</data>
</dict>
<key>Headers/SDL_joystick.h</key>
<dict>
<key>hash</key>
<data>
97SJSCx+xjRHUQ6ilndhP8TZ110=
</data>
<key>hash2</key>
<data>
xYWL+BS5f9NGr7eeP+vL0kD5K6O99PXgOWLT2Bx2dRQ=
</data>
</dict>
<key>Headers/SDL_keyboard.h</key>
<dict>
<key>hash</key>
<data>
RsaE9DMLq9lFsYokvdaQ8nhIkfY=
</data>
<key>hash2</key>
<data>
tpZGEHU3TKCozcYf4MA9gA5bXNPSxx9rqqBaPttgr+4=
</data>
</dict>
<key>Headers/SDL_keycode.h</key>
<dict>
<key>hash</key>
<data>
9nIqgM67nCJUdjV3iiiviT8DFhk=
</data>
<key>hash2</key>
<data>
SpMclG+epmPQibi3fNsQe1lBUxZPJOOu4DfQjpTZYgw=
</data>
</dict>
<key>Headers/SDL_loadso.h</key>
<dict>
<key>hash</key>
<data>
m+OEcfHbykTuEo6P3/y/kuV1xjk=
</data>
<key>hash2</key>
<data>
Yg3OrZpF17uC69TwprPyrpn3+su3YAaaA1hTNXAHxLw=
</data>
</dict>
<key>Headers/SDL_log.h</key>
<dict>
<key>hash</key>
<data>
HcUUwymYqVSfgz2LdtuUqZSwjUY=
</data>
<key>hash2</key>
<data>
j4F34jvgNTEcHQQoPbBBugi4RKQLhGM+x4ndXdtDc0E=
</data>
</dict>
<key>Headers/SDL_main.h</key>
<dict>
<key>hash</key>
<data>
7I0GPDiLKlavuXuoepYsl2mS6CI=
</data>
<key>hash2</key>
<data>
qwXROmpXppMPodetUGE0s/7HHmwfu3taLUeiiu+APk0=
</data>
</dict>
<key>Headers/SDL_messagebox.h</key>
<dict>
<key>hash</key>
<data>
MEB/oCw7dyinbrBmQQqh46/uRVk=
</data>
<key>hash2</key>
<data>
DSuDS/nAzfEi2kO06DEpxRLj5V1++p2DYYA9Oou8ewQ=
</data>
</dict>
<key>Headers/SDL_mouse.h</key>
<dict>
<key>hash</key>
<data>
I2UksqoB5v6RX64Ddwea9dW0sO0=
</data>
<key>hash2</key>
<data>
gFMH6bBzvJCff8F7FMWlP6o6TydFmiXEu0daWp166wk=
</data>
</dict>
<key>Headers/SDL_mutex.h</key>
<dict>
<key>hash</key>
<data>
H6Q1bWPDKu2RsALoLzTBzPTrPkk=
</data>
<key>hash2</key>
<data>
WKU8g7bVD3KpQEgvXuUGrPcG5hgg+LwQBgzLQCeSVTg=
</data>
</dict>
<key>Headers/SDL_name.h</key>
<dict>
<key>hash</key>
<data>
doLASBj4oiSiP6MW9wQblnyPN1E=
</data>
<key>hash2</key>
<data>
M0b8pslMMsWZp1KDVUdqX7ml3DKUVcwiTcfwGbhopvA=
</data>
</dict>
<key>Headers/SDL_opengl.h</key>
<dict>
<key>hash</key>
<data>
ZN9vVzyxx542ZCZ4nmASJKJ7qFM=
</data>
<key>hash2</key>
<data>
dazK6AC8BOZXW9m9761qsuoqe3eJozPIbSc1YEY3UVE=
</data>
</dict>
<key>Headers/SDL_opengl_glext.h</key>
<dict>
<key>hash</key>
<data>
nqPX1ObCVYyVzW3VbD3C/1vaTRE=
</data>
<key>hash2</key>
<data>
IULBL/m+rBc3UQPqu68w6FDM/Mda58oybFnlyn3OkjE=
</data>
</dict>
<key>Headers/SDL_opengles.h</key>
<dict>
<key>hash</key>
<data>
aVEa5N2CHg93ZxdDuKfDtFnCbU8=
</data>
<key>hash2</key>
<data>
3CmcA5B4ydtkVin3NvNmYVHfgnhJJAVYNVw1YKM0Mko=
</data>
</dict>
<key>Headers/SDL_opengles2.h</key>
<dict>
<key>hash</key>
<data>
yQ5nSugeN94hMSNhsIOmlAstJhY=
</data>
<key>hash2</key>
<data>
8H2lt37zXZs68UfBlqDGqSJTQ2+Slu7qywggJ2mIosI=
</data>
</dict>
<key>Headers/SDL_opengles2_gl2.h</key>
<dict>
<key>hash</key>
<data>
g4y04zPFy1H/qujSNGRd0vB7ClQ=
</data>
<key>hash2</key>
<data>
9GAwK0cg8YPrZHWVqMGpyVwKFz3Ay9VHiyz70jzWltA=
</data>
</dict>
<key>Headers/SDL_opengles2_gl2ext.h</key>
<dict>
<key>hash</key>
<data>
bTlnL+42kbi+n/gH//X2p0pqeuM=
</data>
<key>hash2</key>
<data>
5404JOHXH4pGO60gR/uLhz9zW6fKy9jvdMw5i1WTcpo=
</data>
</dict>
<key>Headers/SDL_opengles2_gl2platform.h</key>
<dict>
<key>hash</key>
<data>
ByFMXJFtjcRglS/e0+DujyjC3dM=
</data>
<key>hash2</key>
<data>
wlKRTsmTMrnniYqSvQklJfb9VF07J0MDpqzYOcfiDDY=
</data>
</dict>
<key>Headers/SDL_opengles2_khrplatform.h</key>
<dict>
<key>hash</key>
<data>
NLpJq9uBqjOpWhXISOQHPnTp/XQ=
</data>
<key>hash2</key>
<data>
djHeDyzmR0e/2JNIbqpBqgi56MXlxlAbgcBFxuvwSyo=
</data>
</dict>
<key>Headers/SDL_pixels.h</key>
<dict>
<key>hash</key>
<data>
q2Uas2PGwUNo30Wiqomvrb03mp4=
</data>
<key>hash2</key>
<data>
fpczDM4z7VLJW6FMvRTygnypORPdk2q89S1kCbS2fpM=
</data>
</dict>
<key>Headers/SDL_platform.h</key>
<dict>
<key>hash</key>
<data>
aM0ptLXVxYx4yXLsNYOssy/jx9Y=
</data>
<key>hash2</key>
<data>
R6MDdJ2ZUd9FGKReGdJE6YyHwqczb99jK9/IDW59AmI=
</data>
</dict>
<key>Headers/SDL_power.h</key>
<dict>
<key>hash</key>
<data>
NqkQCWzmodWGdUFUZmzR9B/TApc=
</data>
<key>hash2</key>
<data>
VkJkbp+5Wd4WYDemJiu8R/emdH4PZSNPweoPmzRkfxM=
</data>
</dict>
<key>Headers/SDL_quit.h</key>
<dict>
<key>hash</key>
<data>
eOEJzybg3UBfe83rKNfky9XAVGM=
</data>
<key>hash2</key>
<data>
mN/T7PjHVtVce+/m7tIWIH8p8lylLWPuJAkCsbEvjhg=
</data>
</dict>
<key>Headers/SDL_rect.h</key>
<dict>
<key>hash</key>
<data>
B7oWq3VOxrWbVn0YV8xpvXG6dic=
</data>
<key>hash2</key>
<data>
dCsZcEfdmcr1RuOycWAtHnnQs5BWk8lw0Ubnv/aUwG4=
</data>
</dict>
<key>Headers/SDL_render.h</key>
<dict>
<key>hash</key>
<data>
ATenWUmKg6AEbv2SbCy9JfT8jCw=
</data>
<key>hash2</key>
<data>
EYiKPX5wRIcWkCyROlT59wuiDupZ6yp0+YsDWOrhtnQ=
</data>
</dict>
<key>Headers/SDL_revision.h</key>
<dict>
<key>hash</key>
<data>
XBn2NI8Qm53MeZGaXVB3fQrs0uc=
</data>
<key>hash2</key>
<data>
FHG6Lqi1wMmjow+JjxKYy/LAoqP+iDH8QYuJS1zr6T4=
</data>
</dict>
<key>Headers/SDL_rwops.h</key>
<dict>
<key>hash</key>
<data>
ULSy/1QoNQhBu3kk75qXo30Wcvs=
</data>
<key>hash2</key>
<data>
KewlZ14FJ6CfLjd7EDc1KlVSiUhIt2P9d3p2VEJuUUA=
</data>
</dict>
<key>Headers/SDL_scancode.h</key>
<dict>
<key>hash</key>
<data>
FAcbPIsuPOYbsldZL4m0AFUeoW4=
</data>
<key>hash2</key>
<data>
5VaZC9IfMuNgz3h6OJn9Q/IGB/+cpymxIrjkluCWzOo=
</data>
</dict>
<key>Headers/SDL_shape.h</key>
<dict>
<key>hash</key>
<data>
S5Ty+gKktVyifkoYT0K7E48JqdI=
</data>
<key>hash2</key>
<data>
LVwSnfZBuKL1bW2zy4rt0vRPmH2/ZxfmP0xB9pLVEOE=
</data>
</dict>
<key>Headers/SDL_stdinc.h</key>
<dict>
<key>hash</key>
<data>
qBTB0Yqh+34vD3n3dN9ry9GwqJM=
</data>
<key>hash2</key>
<data>
TDMriI0PPYF73lvh6suExzpMldCmX1SkLgg+wkBqt7A=
</data>
</dict>
<key>Headers/SDL_surface.h</key>
<dict>
<key>hash</key>
<data>
bssTKTIF4Yw/3a6fyF7GhaVrdU0=
</data>
<key>hash2</key>
<data>
zRF/b8bCqjClZnbPorqjhlWw9aujM9RwnVemHyiC2yM=
</data>
</dict>
<key>Headers/SDL_system.h</key>
<dict>
<key>hash</key>
<data>
n2WodCV+WpbfpFSKUUKpB/i5ZPw=
</data>
<key>hash2</key>
<data>
3W0Z/Fdwbc7dTyR+v4g6eVE58XcEYLTzDGO+RMwcmJc=
</data>
</dict>
<key>Headers/SDL_syswm.h</key>
<dict>
<key>hash</key>
<data>
QoebSqgb1XslKPBwMiUOM6daVKo=
</data>
<key>hash2</key>
<data>
rCqmdvdibhT5MBOnvKCT0gK7Howb5uLewC321yLYr5U=
</data>
</dict>
<key>Headers/SDL_thread.h</key>
<dict>
<key>hash</key>
<data>
fXCWQD4MIniqvdB6pWVwlxNS9jk=
</data>
<key>hash2</key>
<data>
18iJ1yFzOTeiM30JwK3GMlbgUqzNDIQiw3ZLLr3M+XQ=
</data>
</dict>
<key>Headers/SDL_timer.h</key>
<dict>
<key>hash</key>
<data>
qfzyWhIh36SK6BAcdd50D/MfdGo=
</data>
<key>hash2</key>
<data>
5Qe92nVkUnHbxgbGwxkyglvVKajhfgVhxPei6dhr4c0=
</data>
</dict>
<key>Headers/SDL_touch.h</key>
<dict>
<key>hash</key>
<data>
yyJt6piMAcoFWhFqsHk9mo3MtaI=
</data>
<key>hash2</key>
<data>
9mQ2V937DAO6OjcQFMboFrnJEiqdk+2uHBzdvMYUnd0=
</data>
</dict>
<key>Headers/SDL_types.h</key>
<dict>
<key>hash</key>
<data>
oVg7CzABdDKtxCWINHaUvBRbRZ0=
</data>
<key>hash2</key>
<data>
8uZym5ly46CZ4VQZCz/Y/cH4THoDS8kGqrvB+Ux/254=
</data>
</dict>
<key>Headers/SDL_version.h</key>
<dict>
<key>hash</key>
<data>
nKLee2vSNZZK9p94Up9o87OoiDE=
</data>
<key>hash2</key>
<data>
F3dpo9XlvebIS2NLJ1ovH+W7fG3bzb01F8OKUeqd+U0=
</data>
</dict>
<key>Headers/SDL_video.h</key>
<dict>
<key>hash</key>
<data>
UFZPU1U3CDog3RBKdd5wu9LFQZk=
</data>
<key>hash2</key>
<data>
6/OCq92BIQnGHBLmlGX4nUNnfLM7LzPoMp+lPlYY4ew=
</data>
</dict>
<key>Headers/SDL_vulkan.h</key>
<dict>
<key>hash</key>
<data>
eLdIezOR2pV1ai5rLBrtiR3NAok=
</data>
<key>hash2</key>
<data>
iCB8avj2P0+ZkjVGfTchu5BAd7BJ+LeC1fJ9BU+80IE=
</data>
</dict>
<key>Headers/begin_code.h</key>
<dict>
<key>hash</key>
<data>
6RX1yuMtg6N9G2iCtCjjKzPCkuU=
</data>
<key>hash2</key>
<data>
JQ71zTwAp3EzI22aBP3w80YYEcxNBRF8/0DkqO39oDo=
</data>
</dict>
<key>Headers/close_code.h</key>
<dict>
<key>hash</key>
<data>
IDKa63p9RAIkSpPXA0mU/dzgBWQ=
</data>
<key>hash2</key>
<data>
oF0I0dcQDvLcuEIgqx9wEQiuqHR5KLoq1zhL/AK5geg=
</data>
</dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash</key>
<data>
dts8ape5zBg3+8u8BQ5kWqp9cC8=
</data>
<key>hash2</key>
<data>
ZCgx1szeVwObsPiq6VoZh8Q9ym7l+7WXzv0HTSoFT0U=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1 @@
A

Binary file not shown.

Binary file not shown.

BIN
libs/mac/lib/libcrypto.dylib Normal file → Executable file

Binary file not shown.

BIN
libs/mac/lib/libssl.dylib Normal file → Executable file

Binary file not shown.

Binary file not shown.

46
scripts/generate-dmg.sh Executable file
View File

@ -0,0 +1,46 @@
BUILD_CONFIG=$1
fail()
{
echo "$1" 1>&2
exit 1
}
if [ "$BUILD_CONFIG" != "Debug" ] && [ "$BUILD_CONFIG" != "Release" ]; then
fail "Invalid build configuration"
fi
BUILD_ROOT=$PWD/build
SOURCE_ROOT=$PWD
BUILD_FOLDER=$BUILD_ROOT/build-$BUILD_CONFIG
INSTALLER_FOLDER=$BUILD_ROOT/installer-$BUILD_CONFIG
echo Cleaning output directories
rm -rf $BUILD_FOLDER
rm -rf $INSTALLER_FOLDER
mkdir $BUILD_ROOT
mkdir $BUILD_FOLDER
mkdir $INSTALLER_FOLDER
echo Configuring the project
pushd $BUILD_FOLDER
qmake $SOURCE_ROOT/moonlight-qt.pro || fail "Qmake failed!"
popd
echo Compiling Moonlight in $BUILD_CONFIG configuration
pushd $BUILD_FOLDER
make $(echo "$BUILD_CONFIG" | tr '[:upper:]' '[:lower:]') || fail "Make failed!"
popd
echo Copying dylib dependencies
mkdir $BUILD_FOLDER/app/Moonlight.app/Contents/lib
cp $SOURCE_ROOT/libs/mac/lib/*.dylib $BUILD_FOLDER/app/Moonlight.app/Contents/lib/
echo Copying frameworks dependencies
mkdir $BUILD_FOLDER/app/Moonlight.app/Contents/Frameworks
cp -R $SOURCE_ROOT/libs/mac/Frameworks/ $BUILD_FOLDER/app/Moonlight.app/Contents/Frameworks/
echo Creating DMG
EXTRA_ARGS=
if [ "$BUILD_CONFIG" == "Debug" ]; then EXTRA_ARGS=-use-debug-libs; fi
macdeployqt $BUILD_FOLDER/app/Moonlight.app -dmg $EXTRA_ARGS -qmldir=$SOURCE_ROOT/app/gui -appstore-compliant