Move the osx-packaging script inside the launcher xcode project

This commit is contained in:
Paul Chote
2010-04-17 02:00:26 +12:00
parent df521bc9ed
commit 47ccd80b14
7 changed files with 54 additions and 34 deletions

View File

@@ -92,7 +92,4 @@ seqed: $(seqed_TARGET)
mapcvtr: $(mapcvtr_TARGET) mapcvtr: $(mapcvtr_TARGET)
all: $(fileformats_TARGET) $(gl_TARGET) $(game_TARGET) $(ra_TARGET) $(cnc_TARGET) $(aftermath_TARGET) $(ra_ng_TARGET) $(seqed_TARGET) $(mapcvtr_TARGET) all: $(fileformats_TARGET) $(gl_TARGET) $(game_TARGET) $(ra_TARGET) $(cnc_TARGET) $(aftermath_TARGET) $(ra_ng_TARGET) $(seqed_TARGET) $(mapcvtr_TARGET)
dist-osx:
packaging/osx/package.sh
.DEFAULT: all .DEFAULT: all

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>

View File

@@ -12,7 +12,7 @@
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
DA1241101151F194002EFE2B /* OpenRa.icns in Resources */ = {isa = PBXBuildFile; fileRef = DA12410F1151F194002EFE2B /* OpenRa.icns */; }; DA1241101151F194002EFE2B /* OpenRA.icns in Resources */ = {isa = PBXBuildFile; fileRef = DA12410F1151F194002EFE2B /* OpenRA.icns */; };
DA28A92A117878EC00342835 /* mods.plist in Resources */ = {isa = PBXBuildFile; fileRef = DA28A929117878EC00342835 /* mods.plist */; }; DA28A92A117878EC00342835 /* mods.plist in Resources */ = {isa = PBXBuildFile; fileRef = DA28A929117878EC00342835 /* mods.plist */; };
DAAB5C7911536D6500DCCB80 /* Settings.m in Sources */ = {isa = PBXBuildFile; fileRef = DAAB5C7811536D6500DCCB80 /* Settings.m */; }; DAAB5C7911536D6500DCCB80 /* Settings.m in Sources */ = {isa = PBXBuildFile; fileRef = DAAB5C7811536D6500DCCB80 /* Settings.m */; };
DAFD657B11520799001F4C97 /* launcher.ini in Resources */ = {isa = PBXBuildFile; fileRef = DAFD657A11520799001F4C97 /* launcher.ini */; }; DAFD657B11520799001F4C97 /* launcher.ini in Resources */ = {isa = PBXBuildFile; fileRef = DAFD657A11520799001F4C97 /* launcher.ini */; };
@@ -31,7 +31,7 @@
8990E7AE1151C0F20089C198 /* Controller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Controller.m; sourceTree = "<group>"; }; 8990E7AE1151C0F20089C198 /* Controller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Controller.m; sourceTree = "<group>"; };
8D1107310486CEB800E47090 /* OpenRA-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "OpenRA-Info.plist"; sourceTree = "<group>"; }; 8D1107310486CEB800E47090 /* OpenRA-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "OpenRA-Info.plist"; sourceTree = "<group>"; };
8D1107320486CEB800E47090 /* OpenRA.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenRA.app; sourceTree = BUILT_PRODUCTS_DIR; }; 8D1107320486CEB800E47090 /* OpenRA.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenRA.app; sourceTree = BUILT_PRODUCTS_DIR; };
DA12410F1151F194002EFE2B /* OpenRa.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = OpenRa.icns; sourceTree = "<group>"; }; DA12410F1151F194002EFE2B /* OpenRA.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = OpenRA.icns; sourceTree = "<group>"; };
DA28A929117878EC00342835 /* mods.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = mods.plist; sourceTree = "<group>"; }; DA28A929117878EC00342835 /* mods.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = mods.plist; sourceTree = "<group>"; };
DAAB5C7711536D6500DCCB80 /* Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Settings.h; sourceTree = "<group>"; }; DAAB5C7711536D6500DCCB80 /* Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Settings.h; sourceTree = "<group>"; };
DAAB5C7811536D6500DCCB80 /* Settings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Settings.m; sourceTree = "<group>"; }; DAAB5C7811536D6500DCCB80 /* Settings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Settings.m; sourceTree = "<group>"; };
@@ -113,7 +113,7 @@
children = ( children = (
DAFD657A11520799001F4C97 /* launcher.ini */, DAFD657A11520799001F4C97 /* launcher.ini */,
8D1107310486CEB800E47090 /* OpenRA-Info.plist */, 8D1107310486CEB800E47090 /* OpenRA-Info.plist */,
DA12410F1151F194002EFE2B /* OpenRa.icns */, DA12410F1151F194002EFE2B /* OpenRA.icns */,
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
1DDD58140DA1D0A300B32029 /* MainMenu.xib */, 1DDD58140DA1D0A300B32029 /* MainMenu.xib */,
DA28A929117878EC00342835 /* mods.plist */, DA28A929117878EC00342835 /* mods.plist */,
@@ -176,7 +176,7 @@
files = ( files = (
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */, 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */,
DA1241101151F194002EFE2B /* OpenRa.icns in Resources */, DA1241101151F194002EFE2B /* OpenRA.icns in Resources */,
DAFD657B11520799001F4C97 /* launcher.ini in Resources */, DAFD657B11520799001F4C97 /* launcher.ini in Resources */,
DA28A92A117878EC00342835 /* mods.plist in Resources */, DA28A92A117878EC00342835 /* mods.plist in Resources */,
); );
@@ -196,8 +196,8 @@
outputPaths = ( outputPaths = (
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/bash;
shellScript = "cd ../../../\n#make clean\n#make all\n#make dist-osx\ncp -r OpenRA.app ${TARGET_BUILD_DIR}/OpenRA.app/Contents/Resources/"; shellScript = "./package.sh\ncp -r build/game/OpenRA.app ${TARGET_BUILD_DIR}/OpenRA.app/Contents/Resources/";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */

View File

@@ -3,20 +3,10 @@
# Creates a .app bundle for OpenRA game, and a command line app for OpenRa server # Creates a .app bundle for OpenRA game, and a command line app for OpenRa server
# All dependencies are packaged inside the game bundle # All dependencies are packaged inside the game bundle
# List of game files to copy into the app bundle # ASSUMPTIONS:
GAME_FILES="OpenRA shaders maps FreeSans.ttf FreeSansBold.ttf titles.ttf" # - Mono version is 2.6.3
# - pkg-config is installed via Fink
# List of mods to include # - Fink is installed in /sw
MODS="ra cnc"
# Files/directories to include
MODS_INCLUDE_FILES="find mods/$m ! -name \"*.mdb\" ! -name \"packages\""
# dylibs referred to by dlls in the gac; won't show up to otool
GAC_DYLIBS="/Library/Frameworks/Mono.framework/Versions/2.6.3/lib/libMonoPosixHelper.dylib /Library/Frameworks/Mono.framework/Versions/2.6.3/lib/libgdiplus.dylib "
# Remove old app bundle
rm -r OpenRA.app
# Recursively modify and copy the mono files depended on by OpenRA into the app bundle # Recursively modify and copy the mono files depended on by OpenRA into the app bundle
function patch_mono { function patch_mono {
@@ -39,31 +29,64 @@ function patch_mono {
} }
function copy_mods { function copy_mods {
for m in $MODS; do for m in $MODS; do
mkdir -p "OpenRA.app/Contents/Resources/mods/$m" mkdir -p ${BUILD_DIR}"OpenRA.app/Contents/Resources/mods/$m"
#for f in $( find mods/$m \! -name "*.mdb" \! -name "packages"); do #for f in $( find mods/$m \! -name "*.mdb" \! -name "packages"); do
#for f in `$MODS_INCLUDE_FILES`; do #for f in `$MODS_INCLUDE_FILES`; do
cp -R "mods/$m/" "OpenRA.app/Contents/Resources/mods/$m/" cp -R "mods/$m/" ${BUILD_DIR}"OpenRA.app/Contents/Resources/mods/$m/"
#done #done
done done
} }
# Setup environment for mkbundle
# Force 32-bit build and set the pkg-config path for mono.pc # Force 32-bit build and set the pkg-config path for mono.pc
export AS="as -arch i386" export AS="as -arch i386"
export CC="gcc -arch i386 -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk" export CC="gcc -arch i386 -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk"
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig/ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig/
export PATH=/sw/bin:/sw/sbin:$PATH
# List of game files to copy into the app bundle
GAME_FILES="shaders maps FreeSans.ttf FreeSansBold.ttf titles.ttf"
# List of mods to include
MODS="ra cnc aftermath ra-ng"
# Files/directories to include
MODS_INCLUDE_FILES="find mods/$m ! -name \"*.mdb\" ! -name \"packages\""
# dylibs referred to by dlls in the gac; won't show up to otool
GAC_DYLIBS="/Library/Frameworks/Mono.framework/Versions/2.6.3/lib/libMonoPosixHelper.dylib /Library/Frameworks/Mono.framework/Versions/2.6.3/lib/libgdiplus.dylib "
# Binaries to compile into our executable
DEPS="OpenRA.Game.exe OpenRA.Gl.dll OpenRA.FileFormats.dll thirdparty/Tao/Tao.Cg.dll thirdparty/Tao/Tao.Cg.dll.config thirdparty/Tao/Tao.OpenGl.dll thirdparty/Tao/Tao.OpenGl.dll.config thirdparty/Tao/Tao.OpenAl.dll thirdparty/Tao/Tao.OpenAl.dll.config thirdparty/Tao/Tao.FreeType.dll thirdparty/Tao/Tao.FreeType.dll.config thirdparty/Tao/Tao.Sdl.dll thirdparty/Tao/Tao.Sdl.dll.config "
DEPS_LOCAL="OpenRA.Game.exe OpenRA.Gl.dll OpenRA.FileFormats.dll Tao.Cg.dll Tao.OpenGl.dll Tao.OpenAl.dll Tao.FreeType.dll Tao.Sdl.dll"
# Create clean build dir
BUILD_DIR=`pwd`/build/game/
rm -rf $BUILD_DIR
mkdir $BUILD_DIR
# Copy deps into build dir
cp -r OpenRA.app $BUILD_DIR
cd ../../../
cp $DEPS $BUILD_DIR
cd $BUILD_DIR
# Package the game binary # Package the game binary
mkbundle --deps --static -z -o OpenRA OpenRA.Game.exe OpenRA.Gl.dll OpenRA.FileFormats.dll thirdparty/Tao/Tao.Cg.dll thirdparty/Tao/Tao.OpenGl.dll thirdparty/Tao/Tao.OpenAl.dll thirdparty/Tao/Tao.FreeType.dll thirdparty/Tao/Tao.Sdl.dll mkbundle --deps --static -z -o OpenRA $DEPS_LOCAL
rm $DEPS_LOCAL
rm *.config
mv OpenRA OpenRA.app/Contents/Resources/
# Copy game files into our game bundle template # Copy game files into our game bundle template
cp -R packaging/osx/OpenRA.app . cd ../../../../../
cp -R $GAME_FILES OpenRA.app/Contents/Resources/ cp -R $GAME_FILES ${BUILD_DIR}OpenRA.app/Contents/Resources/
copy_mods copy_mods
cd $BUILD_DIR
# Copy frameworks into our game bundle template # Copy frameworks into our game bundle template
mkdir OpenRA.app/Contents/Frameworks/
patch_mono OpenRA.app/Contents/Resources/OpenRA patch_mono OpenRA.app/Contents/Resources/OpenRA
# The dylibs referenced by dll.configs in the gac don't show up to otool: patch them manually # The dylibs referenced by dll.configs in the gac don't show up to otool: patch them manually