diff --git a/MacOS/package b/MacOS/package index 46957e4..d3db5df 100755 --- a/MacOS/package +++ b/MacOS/package @@ -4,58 +4,75 @@ SCRIPT_DIR=$(realpath $(dirname ${BASH_SOURCE[0]})) source "${SCRIPT_DIR}/../base" -# Build arguments -FRAMEWORK="net6.0" -RUNTIME="osx-x64" -PROJECTS=("OpenTabletDriver.Daemon" "OpenTabletDriver.UX.MacOS") - -# Directories -PKG_DIR="${SCRIPT_DIR}/OpenTabletDriver.app" -OUT_DIR="${PKG_DIR}/Contents/MacOS" - -# Package -PKG_ICONS_FILE="${PKG_DIR}/Contents/Resources/Icon.icns" -PKG_TARBALL_FILE="${SCRIPT_DIR}/OpenTabletDriver.${RUNTIME}.tar.gz" - -clean() { - clean_target "${PKG_TARBALL_FILE}" "Cleaning up existing builds..." - clean_target "${OUT_DIR}" "Cleaning up build directory..." -} +RUNTIMES=("osx-x64" "osx-arm64") -build() { - print "Building OpenTabletDriver..." - for project in ${PROJECTS[@]}; do - dotnet publish "${SRC_DIR}/${project}"\ - --runtime ${RUNTIME} \ - --configuration Release \ - --self-contained true \ - --framework ${FRAMEWORK} \ - --output ${OUT_DIR} \ - /p:PublishTrimmed=false \ - /p:VersionSuffix="${VERSION_SUFFIX}" - done -} +package_with() { + # Build arguments + FRAMEWORK="net6.0" + RUNTIME=$1 + PROJECTS=("OpenTabletDriver.Daemon" "OpenTabletDriver.UX.MacOS") + + # Directories + SRC_PKG_DIR="${SCRIPT_DIR}/OpenTabletDriver.app" + RUNTIME_DIR="${SCRIPT_DIR}/${RUNTIME}" + PKG_DIR="${RUNTIME_DIR}/OpenTabletDriver.app" + OUT_DIR="${PKG_DIR}/Contents/MacOS" + + # Package + PKG_TARBALL_FILE="${SCRIPT_DIR}/OpenTabletDriver.${RUNTIME}.tar.gz" + + clean() { + clean_target "${PKG_TARBALL_FILE}" "Cleaning up existing builds..." + clean_target "${RUNTIME_DIR}" "Cleaning up build directory..." + } + + build() { + print "Building ${RUNTIME} OpenTabletDriver..." + mkdir -p "${PKG_DIR}" + cp -r "${SRC_PKG_DIR}" "${RUNTIME_DIR}" + for project in ${PROJECTS[@]}; do + dotnet publish "${SRC_DIR}/${project}"\ + --runtime ${RUNTIME} \ + --configuration Release \ + --self-contained true \ + --framework ${FRAMEWORK} \ + --output ${OUT_DIR} \ + /p:PublishTrimmed=false \ + /p:VersionSuffix="${VERSION_SUFFIX}" \ + /p:MacIsBuildingBundle=true #prevent eto from generating app bundle since we are bundling ourselves + done + } + + package() { + clean_debug "${OUT_DIR}" -package() { - clean_debug "${OUT_DIR}" + if type -p codesign + then + print "Signing ${RUNTIME} MacOS App..." + codesign -s - -f --deep "${PKG_DIR}" + else + print "Skipping signing ${RUNTIME} MacOS App..." + fi - print "Copying MacOS assets..." - cp -v "${SRC_DIR}/OpenTabletDriver.UX.MacOS/Icon.icons" "${PKG_ICONS_FILE}" + create_tarball "${PKG_DIR}" "${PKG_TARBALL_FILE}" - create_tarball "${PKG_DIR}" "${PKG_TARBALL_FILE}" + print "Packaging ${RUNTIME} complete." + } - print "Packaging complete." + case $2 in + "clean") clean ;; + "prepare") prepare ;; + "build") build ;; + "package") package ;; + *) + clean + prepare + build + package + ;; + esac } -case $1 in - "clean") clean ;; - "prepare") prepare ;; - "build") build ;; - "package") package ;; - *) - clean - prepare - build - package - ;; -esac +for runtime in ${RUNTIMES[@]}; do + package_with $runtime $1 +done diff --git a/base b/base index a9a86ce..cd10c1a 100755 --- a/base +++ b/base @@ -55,7 +55,7 @@ create_tarball() { print "Creating '${2}' from '${1}'" cd $(dirname "${2}") - tar -zcvf "${2}" "$(basename ${1})" + tar -zcvf "${2}" -C $(dirname "${1}") "$(basename ${1})" } generate_rules() {