aboutsummaryrefslogtreecommitdiff
path: root/getosxvars.sh
diff options
context:
space:
mode:
authorBen Marsh <[email protected]>2019-10-22 09:07:59 -0400
committerBen Marsh <[email protected]>2019-10-22 09:07:59 -0400
commitbd0027e737c6512397f841c22786274ed74b927f (patch)
treef7ffbdb8f3741bb7f24635616cc189cba5cb865c /getosxvars.sh
downloadshave-and-a-haircut-bd0027e737c6512397f841c22786274ed74b927f.tar.xz
shave-and-a-haircut-bd0027e737c6512397f841c22786274ed74b927f.zip
Adding Shave-and-a-Haircut 9.6
Diffstat (limited to 'getosxvars.sh')
-rw-r--r--getosxvars.sh234
1 files changed, 234 insertions, 0 deletions
diff --git a/getosxvars.sh b/getosxvars.sh
new file mode 100644
index 0000000..cadae4d
--- /dev/null
+++ b/getosxvars.sh
@@ -0,0 +1,234 @@
+#!/bin/sh
+
+# Shave and a Haircut
+# (c) 2019 Epic Games
+# US Patent 6720962
+
+# This script sets environment and shell variables to values appropriate for
+# building Shave for the version of Maya pointed to by the MAYA_LOCATION
+# envariable.
+#
+# Environment and shell variable settings are inherited by child scripts
+# (i.e. those called from the script in which they were defined) but are not
+# inherited by the parent script (i.e. the script which called the one in which the
+# variables were defined). For this reason you must *source* this script into a
+# script high enough in your calling tree such the variables will be available to
+# all those scripts which need it.
+#
+#
+# Environment Variables Defined
+# -----------------------------
+#
+# DEVELOPER_DIR - Points to the directory containing the version of Xcode tools
+# required by this version of Maya.
+# Ex: /Applications/Xcode5.0.2.app/Contents/Developer
+#
+# SDKROOT - Points to the OS X SDK for the version of OS X targetted by this
+# version of Maya.
+# Ex: /Applications/Xcode5.0.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOS10.8.sdk
+#
+# MACOSX_DEPLOYMENT_TARGET
+# - The lowest version of OS X on which this build of Shave is
+# intended to be used. For simplicity we always set this to the
+# same version of OS X as in SDKROOT.
+# Ex: 10.8
+#
+#
+# Shell Variables Defined
+# -----------------------
+#
+# mayaVersion - The full X.Y version number for Maya.
+# Ex: 2016.5
+#
+# Note that most versions of Maya don't have minor number, in
+# which case the dot and the minor number will be missing.
+# Ex: 2016
+#
+# mayaMajor - The major version number for Maya (i.e. the part before the dot).
+# Ex: 2016
+#
+# mayaMinor - The minor version number for Maya (i.e. the part after the dot).
+# Ex: 5
+#
+# Note that most Maya versions do not have a minor number, in which
+# case this variable will contain 0.
+#
+# mayaShared - Path to the directory containing those 3rd party Maya
+# scripts and plugins which are to be shared among all users
+# on the system.
+# Ex: /Users/Shared/Autodesk/maya/2016
+#
+# fullShaveVersion
+# - The full Shave version string, including release number.
+# Ex: 9.0v16
+
+# shaveVersion - The Shave version number, excluding release number.
+# Ex: 9.0
+#
+# shaveMajor - The major version number from the Shave version string.
+# Ex: 9
+#
+# shaveMinor - The minor version number from the Shave version string.
+# Ex: 0
+#
+# release - The release number from the Shave version string.
+# Ex: 16
+#
+# pkgname - The name of the Shave package before it is compressed.
+# Ex: shaveHaircut_Maya2015_0-9.0v16.mpkg
+#
+# pmaker - Full path to the PackageMaker command.
+#
+# splitforks - Full path to the SplitForks command.
+#
+#
+# This script may define some other variables in the course of its execution, but
+# those should not be relied upon as they may be changed or removed in a future
+# version.
+#
+if [ "${MAYA_LOCATION}" = "" ]; then
+ echo "MAYA_LOCATION is not defined"
+ exit 1
+fi
+
+# Maya and its scripts expect MAYA_LOCATION to point to the Maya.app/Contents
+# folder while we expect it to point to the folder containing Maya.app.
+# If the user has the version expected by Maya defined, let's redefine it to
+# what our scripts expect.
+#
+mayaLocation=`echo ${MAYA_LOCATION} | sed 's?/Maya\.app.*$??'`
+export MAYA_LOCATION=${mayaLocation}
+
+
+# Get the Maya version number.
+#
+versionInfo=(`utils/getMayaAPIVersion.sh`)
+mayaVersion=${versionInfo[1]}
+mayaMajor=${versionInfo[2]}
+mayaMinor=${versionInfo[3]}
+
+if [ "${mayaMajor}" = "" ]; then
+ # getMayaAPIVersions.sh will have already reported the error.
+ exit 1
+fi
+
+if [ ${mayaMajor} -lt 2017 ]; then
+ echo "Shave does not support Maya ${mayaVersion} on OSX."
+ exit 1
+fi
+
+mayaShared=/Users/Shared/Autodesk/maya/${mayaVersion}
+
+# Get the plugin version and release from the shaveVersion.mel file.
+#
+shaveVersion=`grep "return" scripts/shaveVersion.mel | sed 's/^[^"]*"\([^v"]*\)[v"].*$/\1/'`
+shaveMajor=`echo $shaveVersion | sed 's/\..*$//'`
+shaveMinor=`echo $shaveVersion | sed 's/^[^.]*\.\([^.]*\).*$/\1/'`
+
+release=`grep "return" scripts/shaveVersion.mel | sed 's/^[^v]*v\([^"]*\)".*$/\1/'`
+
+fullShaveVersion=${shaveVersion}v${release}
+
+pkgName=shaveHaircut_Maya${mayaMajor}_${mayaMinor}-${fullShaveVersion}.mpkg
+
+# Set DEVELOPER_DIR to the appropriate version of Xcode and SDKROOT to the
+# appropriate SDK.
+#
+# 2018: El Capitan 10.11.6, Xcode 7.3.1, SDK 10.11
+# 2017: Yosemite 10.10.5, Xcode 6.1.1, SDK 10.10?
+#
+# Old versions of Xcode are expected to be found in /Applications/XcodeA.B.app
+# For example, on El Capitan /Applications/Xcode.app may contain the default
+# 7.3.1 version of Xcode but version 6.1.1 should be in /Applications/Xcode6.1.1.app
+#
+# Upgrading to a new version of Xcode will normally delete the older version, so
+# remember to copy the old version into its numbered directory before doing the
+# upgrade.
+#
+if [ ${mayaMajor} -eq 2018 ]; then
+ xcodeVersion=7.3.1
+ sdk=10.11
+elif [ ${mayaMajor} -eq 2017 ]; then
+ xcodeVersion=6.1
+ sdk=10.10
+else
+ echo "getosxvars.sh: Maya version ${mayaMajor} not supported." >&2
+ echo ""
+ exit
+fi
+
+curXcodeVersion=0
+
+# If there's a version of Xcode installed, see what it is.
+if xcodebuild -version >/dev/null 2>&1; then
+ curXcodeVersion=`xcodebuild -version | grep '^Xcode' | sed 's/^[^0-9]*//'`
+fi
+
+if [ "${curXcodeVersion}" = "${xcodeVersion}" ]; then
+ xcodePath=`xcode-select -print-path`
+else
+ # Look for an Xcode folder in /Applications with the right version number.
+ # This is not an Apple standard, just something we do for Shave.
+ xcodePath=/Applications/Xcode${xcodeVersion}.app/Contents/Developer
+
+ if [ ! -d ${xcodePath} ]; then
+ echo "getosxvars.sh: Could not find Xcode ${xcodeVersion} for Maya ${mayaMajor}." >& 2
+ echo ""
+ exit
+ fi
+fi
+
+export DEVELOPER_DIR=${xcodePath}
+
+sdkPath=${xcodePath}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${sdk}.sdk
+
+if [ ! -d ${sdkPath} ]; then
+ # Try the older path format.
+ sdkPath=${xcodePath}/SDKs/MacOSX${sdk}.sdk
+
+ if [ ! -d ${sdkPath} ]; then
+ echo "getosxvars.sh: Cannot find OS X SDK ${sdk} for Maya ${mayaMajor}." >& 2
+ echo ""
+ exit
+ fi
+fi
+
+export SDKROOT=${sdkPath}
+
+# llvm is a bit stupid in that even if you specify an SDK version, such as 10.6, if
+# you don't also specify a target OS X version then the compiler and linker will
+# attempt to use features which may only be available in the currently running
+# version of the operating system. So we must explicitly specify the target version
+# as well.
+#
+export MACOSX_DEPLOYMENT_TARGET=${sdk}
+
+# Figure out where PackageMaker is hiding.
+#
+if [ -d /Applications/PackageMaker.app ]; then
+ pmaker=/Applications/PackageMaker.app/Contents/MacOS/PackageMaker
+elif [ -d /Applications/Utilities/PackageMaker.app ]; then
+ pmaker=/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
+elif [ -d /Developer/Applications/Utilities/PackageMaker.app ]; then
+ pmaker=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
+elif [ -d /Developer/Applications/PackageMaker.app ]; then
+ pmaker=/Developer/Applications/PackageMaker.app/Contents/MacOS/PackageMaker
+else
+ echo "getosxvars.sh: Could not find PackageMaker command." >& 2
+ echo ""
+ exit
+fi
+
+# Figure out where SplitForks is hiding.
+#
+if [ -x /usr/bin/SplitForks ]; then
+ splitforks=/usr/bin/SplitForks
+elif [ -x /Developer/Tools/SplitForks ]; then
+ splitforks=/Developer/Tools/SplitForks
+else
+ echo "getosxvars.sh: Could not find SplitForks command." >& 2
+ echo ""
+ exit
+fi
+
+