X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=platform%2Fosx%2Fmake_dmg.sh;h=be918f0c962083eb77da52b7af4b1b3892386df6;hb=74c008c57fb48291c6701b9b1ab24eb3fc90840f;hp=9603c95641a047de9f339b74f8ff08f766ca783c;hpb=c39b290f02f49b68a3eb928fe1109cc7f6bf59eb;p=dcpomatic.git diff --git a/platform/osx/make_dmg.sh b/platform/osx/make_dmg.sh index 9603c9564..be918f0c9 100644 --- a/platform/osx/make_dmg.sh +++ b/platform/osx/make_dmg.sh @@ -1,9 +1,8 @@ #!/bin/bash # -SYNTAX="make_dmg.sh " -# where is arm-intel-64, intel-32-64 or arm64 +SYNTAX="make_dmg.sh " # -# e.g. make_dmg.sh /Users/carl/osx-environment /Users/carl/cdist arm-intel-64 foo@bar.net opensesame +# e.g. make_dmg.sh /Users/carl/osx-environment /Users/carl/cdist 10.9 11.0 foo@bar.net opensesame # Don't set -e here as egrep (used a few times) returns 1 if no matches # were found. @@ -14,15 +13,10 @@ version=`git describe --tags --abbrev=0 | sed -e "s/v//"` DMG_SIZE=256 ENV=$1 ROOT=$2 -TYPE=$3 -APPLE_ID=$4 -APPLE_PASSWORD=$5 - -if [ "$TYPE" != "arm-intel-64" -a "$TYPE" != "intel-32-64" -a "$TYPE" != "arm64" ]; then - echo $SYNTAX - echo "where is arm-intel-64, intel-32-64 or arm64" - exit 1 -fi +INTEL_SDK=$3 +ARM_SDK=$4 +APPLE_ID=$5 +APPLE_PASSWORD=$6 # This is our work area for making up the .dmgs mkdir -p build/platform/osx @@ -35,117 +29,47 @@ cat < entitlements.plist com.apple.security.cs.disable-library-validation + com.apple.security.cs.allow-dyld-environment-variables + EOF function copy { - case $TYPE in - arm-intel-64) - for f in $1/arm64/$2; do - if [ -h $f ]; then - ln -s $(readlink $f) "$3/`basename $f`" - else - g=`echo $f | sed -e "s/\/arm64\//\/x86_64\//g"` - mkdir -p "$3" - lipo -create $f $g -output "$3/`basename $f`" - fi - done - ;; - intel-32-64) - for f in $1/i386/$2; do + for f in $1/arm64/$2; do if [ -h $f ]; then - ln -s $(readlink $f) "$3/`basename $f`" + ln -s $(readlink $f) "$3/`basename $f`" else - g=`echo $f | sed -e "s/\/i386\//\/x86_64\//g"` - mkdir -p "$3" - lipo -create $f $g -output "$3/`basename $f`" + g=`echo $f | sed -e "s/\/arm64\//\/x86_64\//g"` + mkdir -p "$3" + lipo -create $f $g -output "$3/`basename $f`" fi - done - ;; - arm64) - if [ -h $1/$2 ]; then - ln -s $(readlink $1/$2) "$3/`basename $f`" - else - cp $1/$2 "$3" - fi - ;; - esac + done } function copy_lib_root { - case $TYPE in - arm-intel-64) - for f in $ROOT/arm64/lib/$1*.dylib; do - if [ -h $f ]; then - ln -s $(readlink $f) "$2/`basename $f`" - else - g=`echo $f | sed -e "s/\/arm64\//\/x86_64\//g"` - mkdir -p "$2" - lipo -create $f $g -output "$2/`basename $f`" - fi - done - ;; - intel-32-64) - for f in $ROOT/intel-32-64/lib/$1*.dylib; do - if [ -h $f ]; then - ln -s $(readlink $f) "$2/`basename $f`" - else - g=`echo $f | sed -e "s/\/i386\//\/x86_64\//g"` - mkdir -p "$2" - lipo -create $f $g -output "$2/`basename $f`" - fi - done - ;; - arm64) - for f in $ROOT/lib/$1*.dylib; do + for f in $ROOT/arm64/lib/$1*.dylib; do if [ -h $f ]; then - ln -s $(readlink $f) "$2/`basename $f`" + ln -s $(readlink $f) "$2/`basename $f`" else - mkdir -p "$2" - cp $f "$2" + g=`echo $f | sed -e "s/\/arm64\//\/x86_64\//g"` + mkdir -p "$2" + lipo -create $f $g -output "$2/`basename $f`" fi - done - ;; - esac + done to_relink="$to_relink|$1" } function copy_lib_env { - case $TYPE in - arm-intel-64) - for f in $ENV/arm64/lib/$1*.dylib; do - if [ -h $f ]; then - ln -s $(readlink $f) "$2/`basename $f`" - else - g=`echo $f | sed -e "s/\/arm64\//\/x86_64\//g"` - mkdir -p "$2" - lipo -create $f $g -output "$2/`basename $f`" - fi - done - ;; - intel-32-64) - for f in $ENV/i386/lib/$1*.dylib; do + for f in $ENV/arm64/$ARM_SDK/lib/$1*.dylib; do if [ -h $f ]; then - ln -s $(readlink $f) "$2/`basename $f`" + ln -s $(readlink $f) "$2/`basename $f`" else - g=`echo $f | sed -e "s/\/i386\//\/x86_64\//g"` - mkdir -p "$2" - lipo -create $f $g -output "$2/`basename $f`" + g=`echo $f | sed -e "s/\/arm64\//\/x86_64\//g"` + mkdir -p "$2" + lipo -create $f $g -output "$2/`basename $f`" fi - done - ;; - arm64) - for f in $ENV/arm64/lib/$1*.dylib; do - if [ -h $f ]; then - ln -s $(readlink $f) "$2/`basename $f`" - else - mkdir -p "$2" - cp $f "$2" - fi - done - ;; - esac + done to_relink="$to_relink|$1" } @@ -214,22 +138,17 @@ function copy_libs { copy_lib_env libvorbis "$dest" copy_lib_env libogg "$dest" copy_lib_env libxerces-c "$dest" + copy_lib_env libcrypto "$dest" + copy_lib_env libssl "$dest" + copy_lib_env libfribidi "$dest" + copy_lib_env libgio "$dest" + copy_lib_env libz "$dest" } # @param #1 directory to copy to function copy_resources { local dest="$1" - case $TYPE in - arm-intel-64) - local prefix=$ROOT/x86_64 - ;; - intel-32-64) - local prefix=$ROOT/x86_64 - ;; - arm64) - local prefix=$ROOT - ;; - esac + local prefix=$ROOT/x86_64 cp $prefix/src/dcpomatic/graphics/osx/dcpomatic_small.png "$dest" cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2.icns "$dest" cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_kdm.icns "$dest" @@ -293,7 +212,7 @@ function copy_resources { # i18n: wxWidgets .mo files for lang in de es fr it sv nl ru pl da cs; do mkdir "$dest/$lang" - cp $ENV/x86_64/share/locale/$lang/LC_MESSAGES/wxstd.mo "$dest/$lang" + cp $ENV/x86_64/$INTEL_SDK/share/locale/$lang/LC_MESSAGES/wxstd.mo "$dest/$lang" done } @@ -303,19 +222,13 @@ function relink_relative { local linkers=("$@") for obj in "${linkers[@]}"; do - deps=`otool -L "$obj" | awk '{print $1}' | egrep "($to_relink)" | egrep "($ENV|$ROOT|boost|libicu)"` + deps=`otool -L "$obj" | awk '{print $1}' | egrep "($to_relink)" | egrep "($ENV|$ROOT|boost|libicu|libssh)"` changes="" for dep in $deps; do base=`basename $dep` - if [ "$TYPE" == "universal" ]; then - # $dep will be a path within x86_64/; make i386 and arm64 paths too - dep_i386=`echo $dep | sed -e "s/\/x86_64\//\/i386\//g"` - changes="$changes -change $dep @executable_path/../Frameworks/$base -change $dep_i386 @executable_path/../Frameworks/$base" + # $dep will be a path within x86_64; make arm64 path too dep_arm64=`echo $dep | sed -e "s/\/x86_64\//\/arm64\//g"` changes="$changes -change $dep @executable_path/../Frameworks/$base -change $dep_arm64 @executable_path/../Frameworks/$base" - else - changes="$changes -change $dep @executable_path/../Frameworks/$base" - fi done if test "x$changes" != "x"; then install_name_tool $changes -id `basename "$obj"` "$obj" @@ -332,11 +245,11 @@ function relink_absolute { local linkers=("$@") for obj in "${linkers[@]}"; do - deps=`otool -L "$obj" | awk '{print $1}' | egrep "($to_relink)" | egrep "($ENV|$ROOT|boost|libicu)"` - for dep in $deps; do - base=`basename $dep` - install_name_tool -change "$dep" "$target"/$base -id `basename "$obj"` "$obj" - done + deps=`otool -L "$obj" | awk '{print $1}' | egrep "($to_relink)" | egrep "($ENV|$ROOT|boost|libicu|libssh)"` + for dep in $deps; do + base=`basename $dep` + install_name_tool -change "$dep" "$target"/$base -id `basename "$obj"` "$obj" + done done } @@ -473,19 +386,7 @@ function setup { copy_resources "$approot/Resources" } -case $TYPE in - arm-intel-64) - # copy() writes the universal binary to arm64 - prefix=$ROOT/arm64 - ;; - intel-32-64) - # copy() writes the universal binary to i386 - prefix=$ROOT/i386 - ;; - arm64) - prefix=$ROOT - ;; -esac +prefix=$ROOT/arm64 # DCP-o-matic main setup "DCP-o-matic 2.app"