#!/bin/sh -e ################################################################################ ## ## Licensed to the Apache Software Foundation (ASF) under one or more ## contributor license agreements. See the NOTICE file distributed with ## this work for additional information regarding copyright ownership. ## The ASF licenses this file to You under the Apache License, Version 2.0 ## (the "License"); you may not use this file except in compliance with ## the License. You may obtain a copy of the License at ## ## http://www.apache.org/licenses/LICENSE-2.0 ## ## Unless required by applicable law or agreed to in writing, software ## distributed under the License is distributed on an "AS IS" BASIS, ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ## See the License for the specific language governing permissions and ## limitations under the License. ## ################################################################################ # # Usage: constructFlexForIDE "Apache Flex dir" ["Adobe Flex 4.6 dir"] # # This script should be used to create an Apache Flex SDK for Mac OSX that has the # directory structure that the an IDE that supports Flex, such as Adobe Flash Builder or # JetBrains IntelliJ expects. # # This script can be used with either an Apache Flex binary package or an Apache Flex # source package. In either case you must unzip the package. If you use the source # package you must build the binaries files before running this script. See the # "Building the Source in the Source Distribution" section in the README at the root # for build instructions. # # The Adobe AIR SDK for Mac and the Adobe Flash Player playerglobal.swc are copied into # the Apache Flex directory. The paths in the framework configuration files # are modified to reflect this. You do not need to set up any of the environment # variables mentioned in the README because the locations of all the software are known # in this configuration. # # TextLayoutFormat (TLF), OSMF, swobject, the Adobe embedded font support, # and Adobe BlazeDS integration all come from the Adobe Flex 4.6 SDK. You should # be aware that these components have their own licenses that may or may not be # compatible with the Apache v2 license. See the "Software Dependencies" section # in the README for more license information. # # If the Adobe Flex SDK 4.6 directory is not specified this script will look for it # in the following places, and if not found, will prompt for the directory. # # /Applications/Adobe Flash Builder 4.5/sdks/4.6.0 # /Applications/Adobe Flash Builder 4.6/sdks/4.6.0 # /Applications/Adobe Flash Builder 4.7/sdks/4.6.0 # # The Adobe Flex 4.6 SDK is available here: # http://www.adobe.com/devnet/flex/flex-sdk-download.html # copyFileOrDirectory from ADOBE_FLEX_SDK_DIR to IDE_SDK_DIR # param1 is file or directory to copy copyFileOrDirectory() { f="$1" echo Copying $f dir=`dirname "${IDE_SDK_DIR}/$f"` if [ -f "${ADOBE_FLEX_SDK_DIR}/$f" ] ; then mkdir -p "${dir}" cp -p "${ADOBE_FLEX_SDK_DIR}/$f" "${IDE_SDK_DIR}/$f" fi if [ -d "${ADOBE_FLEX_SDK_DIR}/$f" ] ; then rsync --archive --ignore-existing --force "${ADOBE_FLEX_SDK_DIR}/$f" "${dir}" fi } # Process the parameters. IDE_SDK_DIR="$1" if [ "${IDE_SDK_DIR}" = "" ] ; then echo Usage: $0 "Apache Flex dir" ["Adobe Flex SDK 4.6 dir"] exit 1; fi echo The Apache Flex directory for the IDE is "$IDE_SDK_DIR" # If this is an Apache Flex dir then there should be a NOTICE file. if [ ! -f "${IDE_SDK_DIR}/NOTICE" ] then echo ${IDE_SDK_DIR} does not appear to be an Apache Flex distribution. exit 1; fi # Quick check to see if there are binaries in the Apache distribution. if [ ! -f "${IDE_SDK_DIR}/lib/mxmlc.jar" ] then echo ${IDE_SDK_DIR} does not appear to be a Apache Flex distribution with binaries. echo If this is a source distribution of Apache Flex you must build the binaries first. echo See the README. exit 1; fi # FlashBuilder requires the frameworks/rsls directory. if [ ! -d "${IDE_SDK_DIR}/frameworks/rsls" ] then echo ${IDE_SDK_DIR} does not appear to be a Apache Flex distribution with rsls. echo If this is a source distribution of Apache Flex you must first build the rsls. exit 1; fi if [ "$2" = "" ] then # Look for installed FlashBuilder versions 4.5, 4.6 and 4.7. if [ -d "/Applications/Adobe Flash Builder 4.5/sdks/4.6.0" ] then ADOBE_FLEX_SDK_DIR="/Applications/Adobe Flash Builder 4.5/sdks/4.6.0" elif [ -d "/Applications/Adobe Flash Builder 4.6/sdks/4.6.0" ] then ADOBE_FLEX_SDK_DIR="/Applications/Adobe Flash Builder 4.6/sdks/4.6.0" elif [ -d "/Applications/Adobe Flash Builder 4.7/sdks/4.6.0" ] then ADOBE_FLEX_SDK_DIR="/Applications/Adobe Flash Builder 4.7/sdks/4.6.0" else # Couldn't find default Adobe Flex SDK so ask for it. while [ -z "$ADOBE_FLEX_SDK_DIR" ] do echo 'Enter directory of an Adobe Flex SDK 4.6: \c' read ADOBE_FLEX_SDK_DIR done fi else ADOBE_FLEX_SDK_DIR="$2" fi echo The Adobe Flex directory is "${ADOBE_FLEX_SDK_DIR}" echo # Quick check to see if it is a Flex SDK. if [ ! -f "${ADOBE_FLEX_SDK_DIR}/license-adobesdk.htm" ] then echo ${ADOBE_FLEX_SDK_DIR} does not appear to be an Adobe Flex SDK exit 1; fi # Copy all the AIR SDK files to the IDE SDK. # Copy files first, then directories. echo Copying the AIR SDK files to directory "${IDE_SDK_DIR}" files=( "AIR SDK license.pdf" "AIR SDK Readme.txt" bin/adl.exe bin/adt.bat frameworks/libs/air frameworks/libs/player/11.1 frameworks/projects/air include install/android lib/adt.jar lib/android lib/aot lib/nai lib/win runtimes samples/badge samples/descriptor-sample.xml samples/icons templates/air templates/extensions) for file in "${files[@]}" do copyFileOrDirectory "$file" done # Copy all the third-party files from the Adobe Flex SDK to the IDE SDK. echo echo Copying the third-party files to directory "${IDE_SDK_DIR}" files=( frameworks/libs/osmf.swc frameworks/libs/textLayout.swc frameworks/libs/player/11.1 frameworks/javascript/fabridge/samples/fabridge/swfobject lib/flex-messaging-common.jar lib/afe.jar lib/aglj40.jar lib/flex-fontkit.jar lib/rideau.jar templates/swfobject/swfobject.js) for file in "${files[@]}" do copyFileOrDirectory $file done # Copy config files formatted for IDE to frameworks. echo echo Copying frameworks config files configured for use without environment variables cp -p -v -f "$IDE_SDK_DIR"/ide/flashbuilder/config/*-config.xml "$IDE_SDK_DIR/frameworks"