X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=platform%2Fosx%2Fmake_dmg.sh;h=be918f0c962083eb77da52b7af4b1b3892386df6;hb=74c008c57fb48291c6701b9b1ab24eb3fc90840f;hp=a6755e918a6613273b88d81a83009471b258cb45;hpb=bed96d486f85a9fa5171e2cdaa3858581d631b3a;p=dcpomatic.git diff --git a/platform/osx/make_dmg.sh b/platform/osx/make_dmg.sh index a6755e918..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 universal or thin +SYNTAX="make_dmg.sh " # -# e.g. make_dmg.sh /Users/carl/osx-environment /Users/carl/cdist universal 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" != "universal" -a "$TYPE" != "thin" ]; then - echo $SYNTAX - echo "where is universal or thin" - 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,84 +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 - universal) - for f in $1/32/$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/\/32\//\/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 - ;; - thin) - 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 - universal) - for f in $ROOT/32/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 - g=`echo $f | sed -e "s/\/32\//\/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 - ;; - thin) - for f in $ROOT/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" } function copy_lib_env { - case $TYPE in - universal) - for f in $ENV/32/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/\/32\//\/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 - ;; - thin) - for f in $ENV/64/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" } @@ -181,19 +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 - universal) - local prefix=$ROOT/32 - ;; - thin) - 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" @@ -257,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/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 } @@ -267,17 +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 64/; make a 32/ path too - dep32=`echo $dep | sed -e "s/\/64\//\/32\//g"` - changes="$changes -change $dep @executable_path/../Frameworks/$base -change $dep32 @executable_path/../Frameworks/$base" - else - changes="$changes -change $dep @executable_path/../Frameworks/$base" - fi + # $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" done if test "x$changes" != "x"; then install_name_tool $changes -id `basename "$obj"` "$obj" @@ -294,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 } @@ -435,14 +386,7 @@ function setup { copy_resources "$approot/Resources" } -case $TYPE in - universal) - prefix=$ROOT/32 - ;; - thin) - prefix=$ROOT - ;; -esac +prefix=$ROOT/arm64 # DCP-o-matic main setup "DCP-o-matic 2.app"