aboutsummaryrefslogtreecommitdiffstats
path: root/eclipse
diff options
context:
space:
mode:
authorSiva Velusamy <vsiva@google.com>2014-06-12 17:12:13 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-06-12 03:32:07 +0000
commit61e54e2039bb2544e14bf9d09171d4efc2387c05 (patch)
treef8cc6046851219edd4d8df9071c335db2ccca004 /eclipse
parenta6e9f7b2fc87932fdb0bf23c12b6ceb8c7d832eb (diff)
parent2a5a1dfb16cf0818f4ea588edd99d665423923da (diff)
downloadsdk-61e54e2039bb2544e14bf9d09171d4efc2387c05.zip
sdk-61e54e2039bb2544e14bf9d09171d4efc2387c05.tar.gz
sdk-61e54e2039bb2544e14bf9d09171d4efc2387c05.tar.bz2
Merge "Cleanup ADT build scripts: remove makefile" into idea133
Diffstat (limited to 'eclipse')
-rw-r--r--eclipse/build.gradle130
-rw-r--r--eclipse/maven.mk23
-rwxr-xr-xeclipse/scripts/build_adt.sh10
3 files changed, 88 insertions, 75 deletions
diff --git a/eclipse/build.gradle b/eclipse/build.gradle
index 18c8642..46405a9 100644
--- a/eclipse/build.gradle
+++ b/eclipse/build.gradle
@@ -1,72 +1,88 @@
-// Build script used to copy non OSGI dependencies into each ADT plugin's libs folder
+// Script used to build ADT plugins, IDE and monitor
+// There are 2 major tasks done by this plugin:
+// copydeps: copies tools/base, tools/swt and prebuilt jars into plugins' libs folder
+// buildEclipse: builds Eclipse by running Tycho from the commandline
//
-// Usage: $ gradle -q copydeps
+// Usage: $ ANDROID_SRC/tools/gradlew -i -b /path/to/this/build.gradle copydeps|buildEclipse
+
+// get tools/base version
+apply from: "../../tools/buildSrc/base/version.gradle"
repositories {
maven { url '../../prebuilts/tools/common/m2/repository' }
maven { url '../../out/repo' }
}
-configurations {
- compile
-}
-
ext {
- // the current version of tools/base and tools/swt
- toolsVersion = "22.9.1"
-
// list of plugins whose manifest should be examined to identify dependencies
- adtPlugins = new File('plugins').listFiles().findAll { it.name.startsWith("com.android") }
+ adtPlugins = new File(projectDir, 'plugins').listFiles().findAll { it.name.startsWith("com.android") }
+
+ //
+ def eclipseBuildDeps = new File(projectDir, "../../prebuilts/eclipse-build-deps").getCanonicalFile()
+ targetComponents = [
+ "platform": new File(eclipseBuildDeps, "platform/org.eclipse.platform-4.2.2.zip"),
+ "cdt" : new File(eclipseBuildDeps, "cdt/cdt-master-8.0.2.zip"),
+ "emf" : new File(eclipseBuildDeps, "emf/emf-xsd-Update-2.9.1.zip"),
+ "jdt" : new File(eclipseBuildDeps, "jdt/org.eclipse.jdt.source-4.2.2.zip"),
+ "wtp" : new File(eclipseBuildDeps, "wtp/wtp-repo-R-3.3.2-20120210195245.zip"),
+ "gef" : new File(eclipseBuildDeps, "gef/GEF-Update-3.9.1.zip"),
+ "pde" : new File(eclipseBuildDeps, "pde/org.eclipse.pde-3.8.zip"),
+ "egit" : new File(eclipseBuildDeps, "egit/org.eclipse.egit.repository-2.2.0.201212191850-r.zip"),
+ ]
}
// a mapping from the library names as used inside the plugin's MANIFEST.MF to the Maven artifact id
def artifacts = [
// tools/base and tools/swt dependencies
- 'manifest-merger' : "com.android.tools.build:manifest-merger:$ext.toolsVersion",
- 'ddmlib' : "com.android.tools.ddms:ddmlib:$ext.toolsVersion",
- 'ddmuilib' : "com.android.tools.ddms:ddmuilib:$ext.toolsVersion",
- 'layoutlib-api' : "com.android.tools.layoutlib:layoutlib-api:$ext.toolsVersion",
- 'lint-api' : "com.android.tools.lint:lint-api:$ext.toolsVersion",
- 'lint-checks' : "com.android.tools.lint:lint-checks:$ext.toolsVersion",
- 'asset-studio' : "com.android.tools:asset-studio:$ext.toolsVersion",
- 'common' : "com.android.tools:common:$ext.toolsVersion",
- 'dvlib' : "com.android.tools:dvlib:$ext.toolsVersion",
- 'hierarchyviewer2lib' : "com.android.tools:hierarchyviewer2lib:$ext.toolsVersion",
- 'ninepatch' : "com.android.tools:ninepatch:$ext.toolsVersion",
- 'rule-api' : "com.android.tools:rule-api:$ext.toolsVersion",
- 'sdk-common' : "com.android.tools:sdk-common:$ext.toolsVersion",
- 'sdklib' : "com.android.tools:sdklib:$ext.toolsVersion",
- 'sdkstats' : "com.android.tools:sdkstats:$ext.toolsVersion",
- 'sdkuilib' : "com.android.tools:sdkuilib:$ext.toolsVersion",
- 'swtmenubar' : "com.android.tools:swtmenubar:$ext.toolsVersion",
- 'testutils' : "com.android.tools:testutils:$ext.toolsVersion",
- 'traceview' : "com.android.tools:traceview:$ext.toolsVersion",
- 'uiautomatorviewer' : "com.android.tools:uiautomatorviewer:$ext.toolsVersion",
+ 'manifest-merger' : "com.android.tools.build:manifest-merger:$ext.baseVersion",
+ 'ddmlib' : "com.android.tools.ddms:ddmlib:$ext.baseVersion",
+ 'ddmuilib' : "com.android.tools.ddms:ddmuilib:$ext.baseVersion",
+ 'layoutlib-api' : "com.android.tools.layoutlib:layoutlib-api:$ext.baseVersion",
+ 'lint-api' : "com.android.tools.lint:lint-api:$ext.baseVersion",
+ 'lint-checks' : "com.android.tools.lint:lint-checks:$ext.baseVersion",
+ 'asset-studio' : "com.android.tools:asset-studio:$ext.baseVersion",
+ 'common' : "com.android.tools:common:$ext.baseVersion",
+ 'dvlib' : "com.android.tools:dvlib:$ext.baseVersion",
+ 'hierarchyviewer2lib' : "com.android.tools:hierarchyviewer2lib:$ext.baseVersion",
+ 'ninepatch' : "com.android.tools:ninepatch:$ext.baseVersion",
+ 'rule-api' : "com.android.tools:rule-api:$ext.baseVersion",
+ 'sdk-common' : "com.android.tools:sdk-common:$ext.baseVersion",
+ 'sdklib' : "com.android.tools:sdklib:$ext.baseVersion",
+ 'sdkstats' : "com.android.tools:sdkstats:$ext.baseVersion",
+ 'sdkuilib' : "com.android.tools:sdkuilib:$ext.baseVersion",
+ 'swtmenubar' : "com.android.tools:swtmenubar:$ext.baseVersion",
+ 'testutils' : "com.android.tools:testutils:$ext.baseVersion",
+ 'traceview' : "com.android.tools:traceview:$ext.baseVersion",
+ 'uiautomatorviewer' : "com.android.tools:uiautomatorviewer:$ext.baseVersion",
// prebuilts
- 'lombok-ast-0.2.2' : 'com.android.tools.external.lombok:lombok-ast:0.2.2',
'ant-glob' : 'com.android.tools.external:ant-glob:1.0',
- 'liblzf-1.0' : 'com.android.tools.external:liblzf:1.0',
- 'host-libprotobuf-java-2.3.0-lite' : 'com.android.tools.external:libprotobuf-java-lite:2.3.0',
- 'propertysheet' : 'com.android.tools.external:propertysheet:1.0',
- 'guava-15.0' : 'com.google.guava:guava:15.0',
+ 'asm-4.0' : 'org.ow2.asm:asm:4.0',
+ 'asm-analysis-4.0' : 'org.ow2.asm:asm-analysis:4.0',
+ 'asm-tree-4.0' : 'org.ow2.asm:asm-tree:4.0',
'commons-codec-1.4' : 'commons-codec:commons-codec:1.4',
- 'commons-logging-1.1.1' : 'commons-logging:commons-logging:1.1.1',
- 'jcommon-1.0.12' : 'jfree:jcommon:1.0.12',
- 'jfreechart-swt-1.0.9' : 'jfree:jfreechart-swt:1.0.9',
- 'jfreechart-1.0.9' : 'jfree:jfreechart:1.0.9',
- 'kxml2-2.3.0' : 'net.sf.kxml:kxml2:2.3.0',
'commons-compress-1.0' : 'org.apache.commons:commons-compress:1.8.1',
+ 'commons-logging-1.1.1' : 'commons-logging:commons-logging:1.1.1',
+ 'easymock' : 'org.easymock:easymock:2.4',
+ 'freemarker-2.3.20' : 'org.freemarker:freemarker:2.3.20',
+ 'guava-15.0' : 'com.google.guava:guava:15.0',
+ 'host-libprotobuf-java-2.3.0-lite' : 'com.android.tools.external:libprotobuf-java-lite:2.3.0',
'httpclient-4.1.1' : 'org.apache.httpcomponents:httpclient:4.1.1',
'httpcore-4.1' : 'org.apache.httpcomponents:httpcore:4.1',
'httpmime-4.1' : 'org.apache.httpcomponents:httpmime:4.1',
- 'freemarker-2.3.20' : 'org.freemarker:freemarker:2.3.20',
- 'asm-analysis-4.0' : 'org.ow2.asm:asm-analysis:4.0',
- 'asm-tree-4.0' : 'org.ow2.asm:asm-tree:4.0',
- 'asm-4.0' : 'org.ow2.asm:asm:4.0',
- 'easymock' : 'org.easymock:easymock:2.4',
+ 'jcommon-1.0.12' : 'jfree:jcommon:1.0.12',
+ 'jfreechart-1.0.9' : 'jfree:jfreechart:1.0.9',
+ 'jfreechart-swt-1.0.9' : 'jfree:jfreechart-swt:1.0.9',
+ 'kxml2-2.3.0' : 'net.sf.kxml:kxml2:2.3.0',
+ 'liblzf-1.0' : 'com.android.tools.external:liblzf:1.0',
+ 'lombok-ast-0.2.2' : 'com.android.tools.external.lombok:lombok-ast:0.2.2',
+ 'propertysheet' : 'com.android.tools.external:propertysheet:1.0',
]
+configurations {
+ compile
+}
+
dependencies {
compile artifacts.values()
}
@@ -75,8 +91,8 @@ task copydeps << {
// get the resolved dependencies from the compile configuration
def resolvedDependencies = configurations.compile.resolvedConfiguration.firstLevelModuleDependencies
+ // generate a map from "xy.jar" -> "/path/to/xy-1.0.jar"
def artifactMap = [:]
-
resolvedDependencies.each { dependency ->
def dependencyId = dependency.getName()
def artifactName = artifacts.find{ it.value == dependencyId}?.key
@@ -102,12 +118,32 @@ task copydeps << {
}
String destName = artifactMap.get(it)
- logger.info("Copying " + destName + " to " + dest)
+ logger.info("\tCopying " + destName + " to " + dest)
ant.copy(file: destName, tofile: new File(dest, it))
}
}
}
+// unzip eclipse prebuilts into the out folder to create a target platform for the build
+task unzipTargetPlatform << {
+ File targetDir = new File(projectDir, "../../out/host/maven/target").getCanonicalFile()
+ targetDir.mkdirs()
+
+ project.targetComponents.each { String k, File v ->
+ File d = new File(targetDir, k)
+ logger.info("Unzipping " + v.getPath() + " into: " + d.getPath())
+ ant.unzip(src: v, dest: d)
+ }
+}
+
+task buildEclipse(type: Exec, dependsOn: unzipTargetPlatform) {
+ def maven = new File(projectDir, "../../prebuilts/eclipse/maven/apache-maven-3.2.1/bin/mvn").getCanonicalFile()
+ def androidOut = new File(projectDir, "../../out").getCanonicalPath()
+ environment("M2_HOME", maven.getParentFile().getParentFile().getCanonicalPath())
+ workingDir projectDir
+ commandLine maven.getCanonicalPath(), "-s", "settings.xml", "-DforceContextQualifier=M01", "-DANDROID_OUT=$androidOut", "package"
+}
+
private File getArtifact(ResolvedDependency dependency) {
if (dependency.moduleArtifacts.size() != 1) {
String msg = String.format("Each dependency is expected to map to a single jar file, " +
diff --git a/eclipse/maven.mk b/eclipse/maven.mk
deleted file mode 100644
index 9443d1a..0000000
--- a/eclipse/maven.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-PWD=$(shell pwd)
-
-ANDROID_OUT=$(realpath $(PWD)/../../out)
-ECLIPSE_PREBUILTS=$(realpath $(PWD)/../../prebuilts/eclipse)
-ECLIPSE_BUILD_DEPS=$(realpath $(PWD)/../../prebuilts/eclipse-build-deps)
-
-TARGET_DIR=$(ANDROID_OUT)/host/maven/target
-
-all: setup build
-
-setup:
- mkdir -p $(TARGET_DIR)
- unzip -u $(ECLIPSE_BUILD_DEPS)/platform/org.eclipse.platform-4.2.2.zip -d $(TARGET_DIR)/platform
- unzip -u $(ECLIPSE_BUILD_DEPS)/cdt/cdt-master-8.0.2.zip -d $(TARGET_DIR)/cdt
- unzip -u $(ECLIPSE_BUILD_DEPS)/emf/emf-xsd-Update-2.9.1.zip -d $(TARGET_DIR)/emf
- unzip -u $(ECLIPSE_BUILD_DEPS)/jdt/org.eclipse.jdt.source-4.2.2.zip -d $(TARGET_DIR)/jdt
- unzip -u $(ECLIPSE_BUILD_DEPS)/wtp/wtp-repo-R-3.3.2-20120210195245.zip -d $(TARGET_DIR)/wtp
- unzip -u $(ECLIPSE_BUILD_DEPS)/gef/GEF-Update-3.9.1.zip -d $(TARGET_DIR)/gef
- unzip -u $(ECLIPSE_BUILD_DEPS)/pde/org.eclipse.pde-3.8.zip -d $(TARGET_DIR)/pde
- unzip -u $(ECLIPSE_BUILD_DEPS)/egit/org.eclipse.egit.repository-2.2.0.201212191850-r.zip -d $(TARGET_DIR)/egit
-
-build:
- $(ECLIPSE_PREBUILTS)/maven/apache-maven-3.2.1/bin/mvn -s settings.xml -DforceContextQualifier=M01 -DANDROID_OUT=$(ANDROID_OUT) package
diff --git a/eclipse/scripts/build_adt.sh b/eclipse/scripts/build_adt.sh
index 7741da6..2e3b1c2 100755
--- a/eclipse/scripts/build_adt.sh
+++ b/eclipse/scripts/build_adt.sh
@@ -37,15 +37,15 @@ cd "$ANDROID_SRC"/tools
./gradlew --no-daemon publishLocal
# 2. Copy dependent jars into the libs folder of each plugin
-cd "$ANDROID_SRC"/sdk/eclipse
-../../tools/gradlew --no-daemon copydeps
+echo Copying jars to be embedded inside the ADT plugins
+cd "$ANDROID_SRC"
+./tools/gradlew -i -b sdk/eclipse/build.gradle --no-daemon copydeps
# 3. Launch Tycho build
echo Launching Tycho to build ADT plugins and bundle
-cd "$ANDROID_SRC"/sdk/eclipse
-make -f maven.mk
+./tools/gradlew -i -b sdk/eclipse/build.gradle --no-daemon buildEclipse
-echo "## Copying ADT plugins and bundle into destination folder"
+echo Copying ADT plugins and bundle into destination folder
cd "$ANDROID_SRC"
cp -rv out/host/maven/bundles-*/products/*.gz "$DIST"/
cp -rv out/host/maven/bundles-*/products/*.zip "$DIST"/