create_packages.mac 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #!/bin/sh
  2. # The new package will be saved here
  3. PACK_DIR=$(pwd)/darwin/release
  4. # Temp dir for creating *.dmg package
  5. BUILD_PACK_DIR=/var/tmp/doublecmd-$(date +%y.%m.%d)
  6. # Read version number
  7. DC_MAJOR=$(grep 'MajorVersionNr' ../src/doublecmd.lpi | grep -o '[0-9.]\+')
  8. DC_MINOR=$(grep 'MinorVersionNr' ../src/doublecmd.lpi | grep -o '[0-9.]\+' || echo 0)
  9. DC_MICRO=$(grep 'RevisionNr' ../src/doublecmd.lpi | grep -o '[0-9.]\+' || echo 0)
  10. DC_VER=$DC_MAJOR.$DC_MINOR.$DC_MICRO
  11. # Create temp dir for building
  12. BUILD_DC_TMP_DIR=/var/tmp/doublecmd-$DC_VER
  13. # Export from Git
  14. rm -rf $BUILD_DC_TMP_DIR
  15. mkdir $BUILD_DC_TMP_DIR
  16. git -C ../ checkout-index -a -f --prefix=$BUILD_DC_TMP_DIR/
  17. # Save revision number
  18. DC_REVISION=$(linux/update-revision.sh ../ $BUILD_DC_TMP_DIR)
  19. # Set processor architecture
  20. if [ -z $CPU_TARGET ]; then
  21. export CPU_TARGET=$(fpc -iTP)
  22. fi
  23. export CPU_TARGET=`echo $CPU_TARGET|tr '[:upper:]' '[:lower:]'`
  24. # Set widgetset
  25. if [ -z $lcl ]; then
  26. export lcl=cocoa
  27. fi
  28. # Set minimal Mac OS X target version
  29. if [ -z $MACOSX_DEPLOYMENT_TARGET ]; then
  30. if [ $CPU_TARGET = "aarch64" ]; then
  31. export MACOSX_DEPLOYMENT_TARGET=11.0
  32. else
  33. export MACOSX_DEPLOYMENT_TARGET=10.11
  34. fi
  35. fi
  36. # Copy libraries
  37. cp -a darwin/lib/$CPU_TARGET/*.dylib $BUILD_DC_TMP_DIR/
  38. cp -a darwin/lib/$CPU_TARGET/$lcl/*.dylib $BUILD_DC_TMP_DIR/
  39. cd $BUILD_DC_TMP_DIR
  40. # Build all components of Double Commander
  41. ./build.sh release
  42. # Update application bundle version
  43. defaults write $(pwd)/doublecmd.app/Contents/Info CFBundleVersion $DC_REVISION
  44. defaults write $(pwd)/doublecmd.app/Contents/Info CFBundleShortVersionString $DC_VER
  45. plutil -convert xml1 $(pwd)/doublecmd.app/Contents/Info.plist
  46. chmod 644 $(pwd)/doublecmd.app/Contents/Info.plist
  47. # Create *.dmg package
  48. mkdir -p $BUILD_PACK_DIR
  49. install/darwin/install.sh $BUILD_PACK_DIR
  50. pushd $BUILD_PACK_DIR
  51. if [ "$lcl" = "qt" ]; then
  52. macdeployqt doublecmd.app
  53. fi
  54. mv doublecmd.app 'Double Commander.app'
  55. codesign --deep --force --verify --verbose --sign '-' 'Double Commander.app'
  56. popd
  57. install/darwin/create-dmg/create-dmg \
  58. --volname "Double Commander" \
  59. --volicon "$BUILD_PACK_DIR/.VolumeIcon.icns" \
  60. --background "$BUILD_PACK_DIR/.background/bg.jpg" \
  61. --window-pos 200 200 \
  62. --window-size 680 366 \
  63. --text-size 16 \
  64. --icon-size 128 \
  65. --icon "Double Commander.app" 110 120 \
  66. --app-drop-link 360 120 \
  67. --icon "install.txt" 566 123 \
  68. --icon ".background" 100 500 \
  69. "$PACK_DIR/doublecmd-$DC_VER-$DC_REVISION.$lcl.$CPU_TARGET.dmg" \
  70. "$BUILD_PACK_DIR/"
  71. # Clean DC build dir
  72. rm -rf $BUILD_DC_TMP_DIR
  73. rm -rf $BUILD_PACK_DIR