From db311f5b24d0eb0edc78eae3c459325ed1358f72 Mon Sep 17 00:00:00 2001 From: Andrew Cain Date: Fri, 18 Oct 2019 21:00:43 +1000 Subject: [PATCH] NEW: Add deploy for native applications --- deploy/deploy.sh | 11 +++++ deploy/help.sh | 39 +++++++++++++++ deploy/native/lang_details.sh | 3 ++ deploy/native/skm_deploy_native.sh | 14 ++++++ deploy/native/skm_deploy_native_mac.sh | 66 ++++++++++++++++++++++++++ 5 files changed, 133 insertions(+) create mode 100755 deploy/deploy.sh create mode 100644 deploy/help.sh create mode 100755 deploy/native/lang_details.sh create mode 100755 deploy/native/skm_deploy_native.sh create mode 100755 deploy/native/skm_deploy_native_mac.sh diff --git a/deploy/deploy.sh b/deploy/deploy.sh new file mode 100755 index 0000000..82c4b0b --- /dev/null +++ b/deploy/deploy.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +APP_PATH=`echo $0 | awk '{split($0,patharr,"/"); idx=1; while(patharr[idx+1] != "") { if (patharr[idx] != "/") {printf("%s/", patharr[idx]); idx++ }} }'` +APP_PATH=`cd "$APP_PATH"; pwd` + +if [ -f "${APP_PATH}/$1/skm_deploy_$1.sh" ]; then + "${APP_PATH}/$1/skm_deploy_$1.sh" $* +else + "$APP_PATH/help.sh" + exit 1 +fi diff --git a/deploy/help.sh b/deploy/help.sh new file mode 100644 index 0000000..6cfa94a --- /dev/null +++ b/deploy/help.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +APP_PATH=`echo $0 | awk '{split($0,patharr,"/"); idx=1; while(patharr[idx+1] != "") { if (patharr[idx] != "/") {printf("%s/", patharr[idx]); idx++ }} }'` +APP_PATH=`cd "$APP_PATH"; pwd` + +SKM_PATH=`cd "$APP_PATH/.."; pwd` + +source "${SKM_PATH}/tools/set_sk_env_vars.sh" + +if [ "$1" = "-s" ] ; then + echo " deploy Package your SplashKit program for deployment to others." +else + bold=$(tput bold) + normal=$(tput sgr0) + + echo "OVERVIEW: package your program so it can be deployed elsewhere" + echo + echo "USAGE: skm deploy [language]" + echo + echo "Perform necessary steps to create a build of your SplashKit program that can be distributed to others." + echo + echo "LANGUAGES:" + echo + echo "You can create projects for the following languages:" + echo + + for i in `find "$APP_PATH" -maxdepth 1 -type d | sort` + do + if [ -f "$i/lang_details.sh" ]; then + "$i/lang_details.sh" + fi + done + + echo + echo "Example usage:" + echo " Deploy MyGame executable." + echo " ${bold}skm deploy native MyGame${normal}" +fi + diff --git a/deploy/native/lang_details.sh b/deploy/native/lang_details.sh new file mode 100755 index 0000000..31659cd --- /dev/null +++ b/deploy/native/lang_details.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +echo " native Deploy a standard executable SplashKit project (eg c++/Pascal)" diff --git a/deploy/native/skm_deploy_native.sh b/deploy/native/skm_deploy_native.sh new file mode 100755 index 0000000..1483c59 --- /dev/null +++ b/deploy/native/skm_deploy_native.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +APP_PATH=`echo $0 | awk '{split($0,patharr,"/"); idx=1; while(patharr[idx+1] != "") { if (patharr[idx] != "/") {printf("%s/", patharr[idx]); idx++ }} }'` +APP_PATH=`cd "$APP_PATH"; pwd` + +SKM_PATH=`cd "$APP_PATH/../.."; pwd` + +source "${SKM_PATH}/tools/set_sk_env_vars.sh" + +if [ "$SK_OS" = "macos" ]; then + "${APP_PATH}"/skm_deploy_native_mac.sh $1 $2 +else + cp -r -n "${APP_PATH}/files/" -T . +fi diff --git a/deploy/native/skm_deploy_native_mac.sh b/deploy/native/skm_deploy_native_mac.sh new file mode 100755 index 0000000..f5514e9 --- /dev/null +++ b/deploy/native/skm_deploy_native_mac.sh @@ -0,0 +1,66 @@ +#!/bin/sh + +APP_PATH=`echo $0 | awk '{split($0,patharr,"/"); idx=1; while(patharr[idx+1] != "") { if (patharr[idx] != "/") {printf("%s/", patharr[idx]); idx++ }} }'` +APP_PATH=`cd "$APP_PATH"; pwd` + +SKM_PATH=`cd "$APP_PATH/../.."; pwd` + +source "${SKM_PATH}/tools/set_sk_env_vars.sh" + +CURRENT_PATH=`pwd` +GAME_NAME=${CURRENT_PATH##*/} + +GAMEAPP_PATH="./deploy/${GAME_NAME}.app" +if [ -d "${GAMEAPP_PATH}" ]; then + rm -rf "${GAMEAPP_PATH}" +fi + +if [ ! -d "./deploy" ]; then + mkdir ./deploy +fi + +echo "Creating Mac Application Bundle" + +mkdir "${GAMEAPP_PATH}" +mkdir "${GAMEAPP_PATH}/Contents" +mkdir "${GAMEAPP_PATH}/Contents/MacOS" +mkdir "${GAMEAPP_PATH}/Contents/Frameworks" + +echo "Copying Resources" +if [ -d "./Resources" ]; then + cp -r -n "./Resources" "${GAMEAPP_PATH}/Contents/" +fi + +echo "Copying executable" +cp "$2" "${GAMEAPP_PATH}/Contents/MacOS/" +cp "$SKM_PATH/lib/macos/libSplashKit.dylib" "${GAMEAPP_PATH}/Contents/MacOS/" + +echo "Adding meta-data" +echo "\ +\ +\ +\ + CFBundleDevelopmentRegion\ + English\ + CFBundleExecutable\ + $2\ + CFBundleIconFile\ + ${ICON}\ + CFBundleIdentifier\ + io.splashkit.${GAME_NAME}\ + CFBundleInfoDictionaryVersion\ + 6.0\ + CFBundleName\ + ${GAME_NAME}\ + CFBundlePackageType\ + APPL\ + CFBundleSignature\ + SPLA\ + CFBundleVersion\ + 1.0\ + CSResourcesFileMapped\ + \ +\ +" >> "${GAMEAPP_PATH}/Contents/Info.plist" + +echo "APPLSPLA" >> "${GAMEAPP_PATH}/Contents/PkgInfo"