mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-14 03:16:01 +08:00
Merge pull request #4579 from slic3r/make-dmg-improvements
Improvements to make_dmg.sh
This commit is contained in:
commit
86a728b39b
@ -1,53 +1,55 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Assembles an installation bundle from a built copy of Slic3r.
|
||||
# Requires PAR::Packer to be installed for the version of
|
||||
# perl copied.
|
||||
# Adapted from script written by bubnikv for Prusa3D.
|
||||
# Run from slic3r repo root directory.
|
||||
SLIC3R_VERSION=$(grep "VERSION" xs/src/libslic3r/libslic3r.h | awk -F\" '{print $2}')
|
||||
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $(basename $0) dmg_name"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
WD=$(dirname $0)
|
||||
appname=Slic3r
|
||||
|
||||
# Determine if this is a tagged (release) commit.
|
||||
# Change the build id accordingly.
|
||||
if [ $(git describe &>/dev/null) ]; then
|
||||
TAGGED=true
|
||||
if [ $(git describe --exact-match &>/dev/null) ]; then
|
||||
echo "This is a tagged build"
|
||||
SLIC3R_BUILD_ID=$(git describe)
|
||||
else
|
||||
TAGGED=false
|
||||
SLIC3R_BUILD_ID=${SLIC3R_VERSION}
|
||||
fi
|
||||
if [ -z ${GIT_BRANCH+x} ] && [ -z ${APPVEYOR_REPO_BRANCH+x} ]; then
|
||||
current_branch=$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!')
|
||||
else
|
||||
current_branch="unknown"
|
||||
if [ ! -z ${GIT_BRANCH+x} ]; then
|
||||
echo "Setting to GIT_BRANCH"
|
||||
current_branch=$(echo $GIT_BRANCH | cut -d / -f 2)
|
||||
# Get the current branch
|
||||
if [ -z ${GIT_BRANCH+x} ] && [ -z ${APPVEYOR_REPO_BRANCH+x} ]; then
|
||||
current_branch=$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!')
|
||||
else
|
||||
current_branch="unknown"
|
||||
if [ ! -z ${GIT_BRANCH+x} ]; then
|
||||
echo "Setting to GIT_BRANCH"
|
||||
current_branch=$(echo $GIT_BRANCH | cut -d / -f 2)
|
||||
fi
|
||||
if [ ! -z ${APPVEYOR_REPO_BRANCH+x} ]; then
|
||||
echo "Setting to APPVEYOR_REPO_BRANCH"
|
||||
current_branch=$APPVEYOR_REPO_BRANCH
|
||||
fi
|
||||
fi
|
||||
if [ ! -z ${APPVEYOR_REPO_BRANCH+x} ]; then
|
||||
echo "Setting to APPVEYOR_REPO_BRANCH"
|
||||
current_branch=$APPVEYOR_REPO_BRANCH
|
||||
|
||||
if [ "$current_branch" == "master" ]; then
|
||||
echo "This is a build of the master branch"
|
||||
SLIC3R_VERSION=$(grep "VERSION" xs/src/libslic3r/libslic3r.h | awk -F\" '{print $2}')
|
||||
SLIC3R_BUILD_ID=${SLIC3R_VERSION}-$(git rev-parse --short HEAD)
|
||||
else
|
||||
echo "This is a build of a non-master branch"
|
||||
appname=Slic3r-${current_branch}
|
||||
SLIC3R_BUILD_ID=${current_branch}-$(git rev-parse --short HEAD)
|
||||
fi
|
||||
fi
|
||||
|
||||
dmgfile=slic3r-${SLIC3R_BUILD_ID}.dmg
|
||||
echo "DMG filename: ${dmgfile}"
|
||||
|
||||
# If we're on a branch, add the branch name to the app name.
|
||||
if [ "$current_branch" == "master" ]; then
|
||||
appname=Slic3r
|
||||
dmgfile=slic3r-${SLIC3R_BUILD_ID}-${1}.dmg
|
||||
else
|
||||
appname=Slic3r-$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!')
|
||||
dmgfile=slic3r-${SLIC3R_BUILD_ID}-${1}-$(git symbolic-ref HEAD | sed 's!refs\/heads\/!!').dmg
|
||||
fi
|
||||
|
||||
rm -rf $WD/_tmp
|
||||
mkdir -p $WD/_tmp
|
||||
|
||||
|
||||
# OSX Application folder shenanigans.
|
||||
appfolder="$WD/${appname}.app"
|
||||
macosfolder=$appfolder/Contents/MacOS
|
||||
@ -104,10 +106,9 @@ echo "Copying perl from $PERL_BIN"
|
||||
cp -f $PERL_BIN $macosfolder/perl-local
|
||||
${PP_BIN} \
|
||||
-M $(grep -v "^#" ${WD}/../common/coreperl | xargs | awk 'BEGIN { OFS=" -M "}; {$1=$1; print $0}') \
|
||||
-B -p -e "print 123" -o $WD/_tmp/test.par
|
||||
unzip -o $WD/_tmp/test.par -d $WD/_tmp/
|
||||
-B -p -e "print 123" -o $WD/_tmp/bundle.par
|
||||
unzip -o $WD/_tmp/bundle.par -d $WD/_tmp/
|
||||
cp -rf $WD/_tmp/lib/* $macosfolder/local-lib/lib/perl5/
|
||||
rm -rf $WD/_tmp
|
||||
|
||||
echo "Cleaning bundle"
|
||||
rm -rf $macosfolder/local-lib/bin
|
||||
@ -140,23 +141,31 @@ make_plist
|
||||
|
||||
echo $PkgInfoContents >$appfolder/Contents/PkgInfo
|
||||
|
||||
if [[ -e "${KEYCHAIN_FILE}" ]]; then
|
||||
KEYCHAIN_FILE_=${KEYCHAIN_FILE:-}
|
||||
if [ ! -z $KEYCHAIN_FILE_ ]; then
|
||||
echo "Signing app..."
|
||||
chmod -R +w $macosfolder/*
|
||||
security list-keychains -s "${KEYCHAIN_FILE}"
|
||||
security default-keychain -s "${KEYCHAIN_FILE}"
|
||||
security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE}"
|
||||
security list-keychains -s "${KEYCHAIN_FILE_}"
|
||||
security default-keychain -s "${KEYCHAIN_FILE_}"
|
||||
security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE_}"
|
||||
codesign --sign "${KEYCHAIN_IDENTITY}" --deep "$appfolder"
|
||||
else
|
||||
echo "No KEYCHAIN_FILE env variable; skipping codesign"
|
||||
fi
|
||||
|
||||
echo "Creating dmg file...."
|
||||
hdiutil create -fs HFS+ -srcfolder "$appfolder" -volname "$appname" "$dmgfile"
|
||||
hdiutil create -fs HFS+ -srcfolder "$appfolder" -volname "$appname" "$WD/_tmp/$dmgfile"
|
||||
|
||||
if [[ -e "${KEYCHAIN_FILE}" ]]; then
|
||||
# Compress the DMG image
|
||||
hdiutil convert "$WD/_tmp/$dmgfile" -format UDZO -imagekey zlib-level=9 -o "$dmgfile"
|
||||
|
||||
if [ ! -z $KEYCHAIN_FILE_ ]; then
|
||||
echo "Signing app dmg..."
|
||||
chmod +w $dmgfile
|
||||
security list-keychains -s "${KEYCHAIN_FILE}"
|
||||
security default-keychain -s "${KEYCHAIN_FILE}"
|
||||
security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE}"
|
||||
security list-keychains -s "${KEYCHAIN_FILE_}"
|
||||
security default-keychain -s "${KEYCHAIN_FILE_}"
|
||||
security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_FILE_}"
|
||||
codesign --sign "${KEYCHAIN_IDENTITY}" "$dmgfile"
|
||||
fi
|
||||
|
||||
rm -rf $WD/_tmp
|
||||
|
@ -18,11 +18,7 @@ cat << EOF > $plistfile
|
||||
<key>CFBundleShortVersionString</key>
|
||||
EOF
|
||||
|
||||
if [ $TAGGED ]; then
|
||||
echo " <string>Slic3r $SLIC3R_BUILD_ID</string>" >>$plistfile
|
||||
else
|
||||
echo " <string>Slic3r $SLIC3R_BUILD_ID-$(git rev-parse --short head)</string>" >>$plistfile
|
||||
fi
|
||||
echo " <string>Slic3r $SLIC3R_BUILD_ID</string>" >>$plistfile
|
||||
|
||||
cat << EOF >> $plistfile
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
Loading…
x
Reference in New Issue
Block a user