aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/tools.atree20
-rwxr-xr-xbuild/tools.windows.atree2
-rw-r--r--jobb/Android.mk52
-rw-r--r--manifmerger/Android.mk74
-rw-r--r--manifmerger/build.gradle68
5 files changed, 106 insertions, 110 deletions
diff --git a/build/tools.atree b/build/tools.atree
index 5ace26d..c539743 100644
--- a/build/tools.atree
+++ b/build/tools.atree
@@ -63,15 +63,15 @@ lib/lib64GLES_V2_translator${DLL_EXTENSION} strip tools/lib/lib64GLES_V2_transla
lib/lib64EGL_translator${DLL_EXTENSION} strip tools/lib/lib64EGL_translator${DLL_EXTENSION}
# Java-Based SDK Tools
-bin/ddms tools/ddms
-bin/hierarchyviewer tools/hierarchyviewer
-bin/draw9patch tools/draw9patch
-bin/traceview tools/traceview
-bin/android tools/android
-bin/monkeyrunner tools/monkeyrunner
-bin/lint tools/lint
-bin/uiautomatorviewer tools/uiautomatorviewer
-bin/jobb tools/jobb
+bin/ddms tools/ddms
+bin/hierarchyviewer tools/hierarchyviewer
+bin/draw9patch tools/draw9patch
+bin/traceview tools/traceview
+bin/android tools/android
+bin/monkeyrunner tools/monkeyrunner
+bin/lint tools/lint
+bin/uiautomatorviewer tools/uiautomatorviewer
+prebuilts/devtools/jobb/etc/jobb tools/jobb
# sdk.git Ant templates for project build files
sdk/templates/build.template tools/lib/build.template
@@ -197,6 +197,4 @@ framework/sdklib-tests.jar tests/libtests/sdklib-tests.jar
framework/sdkuilib-tests.jar tests/libtests/sdkuilib-tests.jar
framework/layoutlib_api.jar tests/libtests/layoutlib_api.jar
framework/dvlib-tests.jar tests/libtests/dvlib-tests.jar
-#FIXME breaks build, manifmerger jar files not properly built
-#framework/manifmerger-tests.jar tests/libtests/manifmerger-tests.jar
diff --git a/build/tools.windows.atree b/build/tools.windows.atree
index 00e6474..f936d96 100755
--- a/build/tools.windows.atree
+++ b/build/tools.windows.atree
@@ -40,7 +40,7 @@ rm tools/lint
sdk/lint/cli/etc/lint.bat tools/lint.bat
rm tools/jobb
-sdk/jobb/etc/jobb.bat tools/jobb.bat
+prebuilts/devtools/jobb/etc/jobb.bat tools/jobb.bat
rm tools/emulator
diff --git a/jobb/Android.mk b/jobb/Android.mk
index 9e7805c..3bd93c3 100644
--- a/jobb/Android.mk
+++ b/jobb/Android.mk
@@ -15,17 +15,51 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_JAVA_RESOURCE_DIRS := src
+# The jobb code has moved to tools/base/jobb.
+# The rule below uses the prebuilt jobb.jar if found.
+# If not found, it tries to built it using the tools/base sources.
+#
+# TIP: to regenerate a new prebuilt, simply remove it and rebuilt it:
+# $ rm prebuilts/devtools/jobb.jar
+# $ make jobb
+# $ cd prebuilts/devtools && git commit -a ...
-LOCAL_JAR_MANIFEST := etc/manifest.txt
+LOCAL_MODULE := jobb
+LOCAL_MODULE_TAGS := debug
+LOCAL_JAVA_LIBRARIES := fat32lib
-LOCAL_JAVA_LIBRARIES := \
- fat32lib
+# Note: we need a path relative to this module's path for LOCAL_PREBUILT_JAVA_LIBRARIES
+# and we need a TOPDIR "absolute" path for the make rule. The "../.." part isn't pretty
+# but allows us to satisfy both requirements.
+jobb_rel_jar := ../../prebuilts/devtools/$(LOCAL_MODULE)/$(LOCAL_MODULE)$(COMMON_JAVA_PACKAGE_SUFFIX)
+jobb_abs_jar := $(LOCAL_PATH)/$(jobb_rel_jar)
-LOCAL_MODULE := jobb
-LOCAL_MODULE_TAGS := debug
+# Tools/base project name
+jobb_project_name := jobb
+
+# Build the jar if it doesn't exist
+ifeq (,$(wildcard $(jobb_abs_jar)))
+$(info # Building $(jobb_project_name) prebuilt from tools/base using gradle)
+ifeq (,$(wildcard $(TOPDIR)tools/base))
+$(error Missing tools/base directory. You probably need to run 'repo init -g all,-notdefault,tools' or similar)
+endif
+$(jobb_abs_jar):
+ $(hide)cd $(TOPDIR)tools/base && \
+ ./gradlew :$(jobb_project_name):jar && \
+ src=`./gradlew :$(jobb_project_name):properties | \
+ awk 'BEGIN { N=""; V="" } \
+ /^archivesBaseName:/ { N=$$2 } \
+ /^version:/ { V=$$2 } \
+ END { print N "-" V ".jar" }'` && \
+ cd ../.. && \
+ dst=$(dir $(jobb_abs_jar)) && \
+ mkdir -p $$dst && \
+ cp $(TOPDIR)tools/base/$(jobb_project_name)/build/libs/$$src $(jobb_abs_jar) && \
+ mkdir -p $$dst/etc && \
+ cp $(TOPDIR)tools/base/$(jobb_project_name)/etc/{jobb,jobb.bat} $$dst/etc/
+endif
+
+LOCAL_PREBUILT_JAVA_LIBRARIES := $(jobb_rel_jar)
-include $(BUILD_HOST_JAVA_LIBRARY)
-include $(LOCAL_PATH)/etc/Android.mk
+include $(BUILD_HOST_PREBUILT)
diff --git a/manifmerger/Android.mk b/manifmerger/Android.mk
index 28dbe82..d4fe7ab 100644
--- a/manifmerger/Android.mk
+++ b/manifmerger/Android.mk
@@ -1,30 +1,62 @@
# Copyright 2011 The Android Open Source Project
#
+# Licensed 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.
+
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(call all-java-files-under,src/main/java)
-LOCAL_JAVA_RESOURCE_DIRS :=
+# The manifest-merger code has moved to tools/base/manifmerger.
+# The rule below uses the prebuilt manifmerger.jar if found.
+# If not found, it tries to built it using the tools/base sources.
+#
+# TIP: to regenerate a new prebuilt, simply remove it and rebuilt it:
+# $ rm prebuilts/devtools/manifestmerger.jar
+# $ make manifmerger
+# $ cd prebuilts/devtools && git commit -a ...
-LOCAL_JAR_MANIFEST := etc/manifest.txt
-LOCAL_JAVA_LIBRARIES := \
- common \
- sdklib
LOCAL_MODULE := manifmerger
LOCAL_MODULE_TAGS := optional
+LOCAL_JAVA_LIBRARIES := common sdklib
+
+# Note: we need a path relative to this module's path for LOCAL_PREBUILT_JAVA_LIBRARIES
+# and we need a TOPDIR "absolute" path for the make rule. The "../.." part isn't pretty
+# but allows us to satisfy both requirements.
+mm_rel_jar := ../../prebuilts/devtools/$(LOCAL_MODULE)/$(LOCAL_MODULE)$(COMMON_JAVA_PACKAGE_SUFFIX)
+mm_abs_jar := $(LOCAL_PATH)/$(mm_rel_jar)
+
+# Tools/base project name
+mm_project_name := manifmerger
+
+# Build the jar if it doesn't exist
+ifeq (,$(wildcard $(mm_abs_jar)))
+$(info # Building $(mm_project_name) prebuilt from tools/base using gradle)
+ifeq (,$(wildcard $(TOPDIR)tools/base))
+$(error Missing tools/base directory. You probably need to run 'repo init -g all,-notdefault,tools' or similar)
+endif
+$(mm_abs_jar):
+ $(hide)cd $(TOPDIR)tools/base && \
+ ./gradlew :$(mm_project_name):jar && \
+ src=`./gradlew :$(mm_project_name):properties | \
+ awk 'BEGIN { N=""; V="" } \
+ /^archivesBaseName:/ { N=$$2 } \
+ /^version:/ { V=$$2 } \
+ END { print N "-" V ".jar" }'` && \
+ cd ../.. && \
+ mkdir -p $(dir $(mm_abs_jar)) && \
+ cp $(TOPDIR)tools/base/$(mm_project_name)/build/libs/$$src $(mm_abs_jar)
+endif
+
+LOCAL_PREBUILT_JAVA_LIBRARIES := $(mm_rel_jar)
+
+include $(BUILD_HOST_PREBUILT)
-include $(BUILD_HOST_JAVA_LIBRARY)
-
-# Build tests
-include $(CLEAR_VARS)
-
-# Only compile source java files in this lib.
-LOCAL_SRC_FILES := $(call all-java-files-under, src/test/java)
-LOCAL_JAVA_RESOURCE_DIRS := src/test/java
-
-LOCAL_MODULE := manifmerger-tests
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_JAVA_LIBRARIES := manifmerger sdklib-tests junit
-
-include $(BUILD_HOST_JAVA_LIBRARY)
diff --git a/manifmerger/build.gradle b/manifmerger/build.gradle
deleted file mode 100644
index 9e9bef2..0000000
--- a/manifmerger/build.gradle
+++ /dev/null
@@ -1,68 +0,0 @@
-dependencies {
- compile project(':common')
- compile project(':sdklib')
- compile 'kxml2:kxml2:2.3.0'
-
- testCompile project(':sdklib').sourceSets.test.output
- testCompile 'junit:junit:3.8.1'
-}
-
-def getVersion() {
- if (project.has("release")) {
- return project.ext.baseVersion
- }
-
- return project.ext.baseVersion + '-SNAPSHOT'
-}
-
-version = getVersion()
-group = 'com.android.tools.build'
-archivesBaseName = 'manifest-merger'
-
-sourceSets {
- main.resources.srcDir 'src/main/java'
- test.resources.srcDir 'src/test/java'
-}
-
-uploadArchives {
- repositories {
- mavenDeployer {
- beforeDeployment { MavenDeployment deployment ->
- if (!project.has("release")) {
- throw new StopExecutionException("uploadArchives must be called with the release.gradle init script")
- }
-
- signing.signPom(deployment)
- }
-
- repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
- authentication(userName: sonatypeUsername, password: sonatypePassword)
- }
-
- pom.project {
- name 'Android Tools Manifest Merger library'
- description 'A Library to merge Android manifests.'
- url 'http://tools.android.com'
- inceptionYear '2007'
-
- licenses {
- license {
- name 'The Apache Software License, Version 2.0'
- url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
- distribution 'repo'
- }
- }
-
- scm {
- url "https://android.googlesource.com/platform/sdk"
- connection "git://android.googlesource.com/platform/sdk.git"
- }
- developers {
- developer {
- name 'The Android Open Source Project'
- }
- }
- }
- }
- }
-}