| #!/bin/bash |
| # setup_env |
| # Script for pulling down the MOTODEV plugins source, all dependencies, and building |
| # If building on Windows with Cygwin or MingGW/Git Bash, use forward slash format |
| |
| |
| |
| # Required parameters |
| # ===== BEGIN ===== |
| |
| # Insert your build base here. This is where files will be downloaded and build |
| export BUILD_BASE_PATH=/home/username/work/build_test |
| |
| # This is the path to the downloaded Eclipse installation |
| export ECLIPSE_BASE_PATH=$BUILD_BASE_PATH/env/eclipse |
| |
| # Target OS. (WINDOWS, LINUX) |
| #export BUILD_TARGET="WINDOWS" |
| export BUILD_TARGET="LINUX" |
| |
| # ===== END ===== |
| # Required parameters |
| |
| |
| |
| # It's OK if this fails due to existing |
| mkdir $BUILD_BASE_PATH |
| cd $BUILD_BASE_PATH |
| mkdir ./env |
| mkdir ./env/code |
| #mkdir ./env/code/android |
| #mkdir ./env/code/android/makefile |
| #mkdir ./env/code/android/src |
| #mkdir ./env/eclipse |
| mkdir ./input |
| mkdir ./input/repository |
| mkdir ./input/repository/base |
| |
| |
| # These will come from eclipse git repos |
| mkdir ./input/repository/base/REPO_ECLIPSE_PLATFORM |
| mkdir ./input/repository/base/REPO_BIRT |
| mkdir ./input/repository/base/REPO_DATATOOLS |
| mkdir ./input/repository/base/REPO_EMF_XSD_SDO |
| mkdir ./input/repository/base/REPO_GEF |
| mkdir ./input/repository/base/REPO_JDT |
| mkdir ./input/repository/base/REPO_PDE |
| mkdir ./input/repository/base/REPO_WTP |
| mkdir ./input/repository/base/REPO_EGIT |
| mkdir ./input/repository/base/REPO_MYLYN |
| |
| # This will come from eclipse svn |
| mkdir ./input/repository/base/REPO_MAT |
| |
| # This will come from an archive or Eclipse git |
| mkdir ./input/repository/base/REPO_SEQUOYAH |
| |
| # This will come from Google |
| mkdir ./input/repository/base/REPO_ADT |
| |
| # These are set to get the revision used by MOTODEV. In some cases, it |
| # may be necessary to get the HEAD by removing the -b parameter |
| cd ./input/repository/base |
| |
| if [ -f "REPO_ECLIPSE_PLATFORM.zip" ]; |
| then |
| echo "REPO_ECLIPSE_PLATFORM.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/org.eclipse.platform.source-4.2.zip > REPO_ECLIPSE_PLATFORM.zip; |
| fi |
| |
| if [ -f "REPO_BIRT.zip" ]; |
| then |
| echo "REPO_BIRT.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/birt/downloads/drops/R-R1-4_2_0-201206131143/birt-updatesite-4_2_0.zip > REPO_BIRT.zip; |
| fi |
| |
| if [ -f "REPO_DATATOOLS.zip" ]; |
| then |
| echo "REPO_DATATOOLS.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/datatools/downloads/1.10/dtp-sdk_1.10.zip > REPO_DATATOOLS.zip; |
| fi |
| |
| if [ -f "REPO_EMF_XSD_SDO.zip" ]; |
| then |
| echo "REPO_EMF_XSD_SDO.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/modeling/emf/emf/downloads/drops/2.8.0/R201206080554/emf-xsd-Update-2.8.0.zip > REPO_EMF_XSD_SDO.zip; |
| fi |
| |
| if [ -f "REPO_GEF.zip" ]; |
| then |
| echo "REPO_GEF.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/tools/gef/downloads/drops/3.8.0/R201206112118/GEF-ALL-3.8.0.zip > REPO_GEF.zip; |
| fi |
| |
| if [ -f "REPO_JDT.zip" ]; |
| then |
| echo "REPO_JDT.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/org.eclipse.jdt.source-4.2.zip > REPO_JDT.zip; |
| fi |
| |
| if [ -f "REPO_PDE.zip" ]; |
| then |
| echo "REPO_PDE.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/org.eclipse.pde.source-4.2.zip > REPO_PDE.zip; |
| fi |
| |
| if [ -f "REPO_WTP.zip" ]; |
| then |
| echo "REPO_WTP.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/webtools/downloads/drops/R3.4.0/R-3.4.0-20120612174739/wtp4x-repo-R-3.4.0-20120612174739.zip > REPO_WTP.zip; |
| fi |
| |
| if [ -f "REPO_MAT.zip" ]; |
| then |
| echo "REPO_MAT.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/mat/1.1.1/MemoryAnalyzer-1.1.1.201108240735.zip > REPO_MAT.zip; |
| fi |
| |
| if [ -f "REPO_SEQUOYAH.zip" ]; |
| then |
| echo "REPO_SEQUOYAH.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/sequoyah/downloads/drops/2.1/2.1.1.N20120718-0509/org.eclipse.sequoyah.feature.2.1.1.N20120718-0509.zip > REPO_SEQUOYAH.zip; |
| fi |
| |
| if [ -f "REPO_EGIT.zip" ]; |
| then |
| echo "REPO_EGIT.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/egit/updates-2.0/org.eclipse.egit.repository-2.0.0.201206130900-r.zip > REPO_EGIT.zip; |
| fi |
| |
| if [ -f "REPO_MYLYN.zip" ]; |
| then |
| echo "REPO_MYLYN.zip exists. Skipping."; |
| else |
| curl http://ftp.osuosl.org/pub/eclipse/mylyn/drops/3.8.0/v20120612-0600/mylyn-3.8.0.v20120612-0600.zip > REPO_MYLYN.zip; |
| fi |
| |
| if [ -f "REPO_ADT.zip" ]; |
| then |
| echo "REPO_ADT.zip exists. Skipping."; |
| else |
| curl http://dl.google.com/android/ADT-20.0.3.zip > REPO_ADT.zip; |
| fi |
| |
| # call unzip -q if it exists on all the downloaded repos |
| # unzip -q REPO_EGIT.zip -d ./REPO_EGIT |
| if ! [ -f "./REPO_ECLIPSE_PLATFORM/artifacts.jar" ]; |
| then |
| unzip -q REPO_ECLIPSE_PLATFORM.zip -d ./REPO_ECLIPSE_PLATFORM; |
| fi |
| |
| if ! [ -f "./REPO_BIRT/artifacts.jar" ]; |
| then |
| unzip -q REPO_BIRT.zip -d ./REPO_BIRT; |
| fi |
| |
| if ! [ -f "./REPO_EMF_XSD_SDO/artifacts.jar" ]; |
| then |
| unzip -q REPO_EMF_XSD_SDO.zip -d ./REPO_EMF_XSD_SDO; |
| fi |
| |
| if ! [ -f "./REPO_JDT/artifacts.jar" ]; |
| then |
| unzip -q REPO_JDT.zip -d ./REPO_JDT; |
| fi |
| |
| if ! [ -f "./REPO_PDE/artifacts.jar" ]; |
| then |
| unzip -q REPO_PDE.zip -d ./REPO_PDE; |
| fi |
| |
| if ! [ -f "./REPO_WTP/artifacts.jar" ]; |
| then |
| unzip -q REPO_WTP.zip -d ./REPO_WTP; |
| fi |
| |
| if ! [ -f "./REPO_MAT/artifacts.jar" ]; |
| then |
| unzip -q REPO_MAT.zip -d ./REPO_MAT; |
| fi |
| |
| if ! [ -f "./REPO_SEQUOYAH/artifacts.jar" ]; |
| then |
| unzip -q REPO_SEQUOYAH.zip -d ./REPO_SEQUOYAH; |
| fi |
| |
| if ! [ -f "./REPO_EGIT/artifacts.jar" ]; |
| then |
| unzip -q REPO_EGIT.zip -d ./REPO_EGIT; |
| fi |
| |
| if ! [ -f "./REPO_MYLYN/artifacts.jar" ]; |
| then |
| unzip -q REPO_MYLYN.zip -d ./REPO_MYLYN; |
| fi |
| |
| if ! [ -f "./REPO_ADT/site.xml" ]; |
| then |
| unzip -q REPO_ADT.zip -d ./REPO_ADT; |
| fi |
| |
| # Get the MOTODEV plugins code |
| cd $BUILD_BASE_PATH |
| cd ./env/code |
| git clone https://android.googlesource.com/platform/tools/motodev.git |
| mv motodev/ android |
| |
| # Get the eclipse SDK + delta pack |
| cd $BUILD_BASE_PATH |
| if [ "$BUILD_TARGET" == "WINDOWS" ]; |
| then |
| if [ -f "eclipse-SDK-4.2-win32-x86_64.zip" ]; |
| then |
| echo "eclipse-SDK-4.2-win32-x86_64.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/eclipse-SDK-4.2-win32-x86_64.zip > eclipse-SDK-4.2-win32-x86_64.zip; |
| fi |
| |
| if ! [ -f "./env/eclipse/artifacts.xml" ]; |
| then |
| unzip -q eclipse-SDK-4.2-win32-x86_64.zip -d ./env; |
| fi |
| elif [ "$BUILD_TARGET" == "LINUX" ]; |
| then |
| if [ -f "eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz" ]; |
| then |
| echo "eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz exists. Skipping."; |
| else |
| curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz > eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz; |
| fi |
| |
| if ! [ -f "./env/eclipse/artifacts.xml" ]; |
| then |
| tar -xcf eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz -C ./env |
| fi |
| fi |
| |
| if [ -f "eclipse-4.2-delta-pack.zip" ]; |
| then |
| echo "eclipse-4.2-delta-pack.zip exists. Skipping."; |
| else |
| curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/eclipse-4.2-delta-pack.zip > eclipse-4.2-delta-pack.zip; |
| fi |
| |
| unzip -q -o eclipse-4.2-delta-pack.zip -d ./env |
| |
| # These two are in an incompatible format |
| cd $BUILD_BASE_PATH |
| mkdir ./TEMP |
| |
| if ! [ -f "$BUILD_BASE_PATH/TEMP/REPO_DATATOOLS/eclipse/notice.html" ]; |
| then |
| unzip -q ./input/repository/base/REPO_DATATOOLS.zip -d ./TEMP/REPO_DATATOOLS; |
| fi |
| |
| if ! [ -f "$BUILD_BASE_PATH/input/repository/base/REPO_DATATOOLS/artifacts.jar" ]; |
| then |
| java -jar $ECLIPSE_BASE_PATH/plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file://$BUILD_BASE_PATH/input/repository/base/REPO_DATATOOLS -artifactRepository file://$BUILD_BASE_PATH/input/repository/base/REPO_DATATOOLS -source $BUILD_BASE_PATH/TEMP/REPO_DATATOOLS/eclipse -compress -publishArtifacts ; |
| fi |
| |
| if ! [ -f "$BUILD_BASE_PATH/TEMP/REPO_GEF/eclipse/plugins/org.eclipse.gef_3.8.0.201206112118.jar" ]; |
| then |
| unzip -q ./input/repository/base/REPO_GEF.zip -d ./TEMP/REPO_GEF ; |
| fi |
| |
| if ! [ -f "$BUILD_BASE_PATH/input/repository/base/REPO_GEF/artifacts.jar" ]; |
| then |
| java -jar $ECLIPSE_BASE_PATH/plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file://$BUILD_BASE_PATH/input/repository/base/REPO_GEF -artifactRepository file://$BUILD_BASE_PATH/input/repository/base/REPO_GEF -source $BUILD_BASE_PATH/TEMP/REPO_GEF/eclipse -compress -publishArtifacts ; |
| fi |
| |
| # Now that everything is in place, create these two variables |
| export ADT_JAR_FILENAME=`ls input/repository/base/REPO_ADT/plugins | grep eclipse.adt_ | sed "s/.jar//"` |
| export DDMS_JAR_FILENAME=`ls input/repository/base/REPO_ADT/plugins | grep eclipse.ddms_ | sed "s/.jar//"` |
| |
| # Run the eclipse to build the plugins |
| $ECLIPSE_BASE_PATH/eclipse -nosplash -application org.eclipse.ant.core.antRunner -data $BUILD_BASE_PATH/env/workspace_product -buildfile $BUILD_BASE_PATH/env/code/android/makefile/studioBuild.xml -debug |
| # Add these items to the build command line if you want a log file |
| #-logger org.apache.tools.ant.XmlLogger -logfile $BUILD_BASE_PATH/log.xml |
| |