summaryrefslogtreecommitdiff
path: root/java/genrule.go
diff options
context:
space:
mode:
author Colin Cross <ccross@android.com> 2017-12-05 09:28:08 -0800
committer Colin Cross <ccross@android.com> 2017-12-06 03:55:20 +0000
commit5425090a4f006fb0de0a98fbd0dad66706e1638e (patch)
treecc4702674014d3826752d25ce31cbf0f69046abe /java/genrule.go
parent9cf27db425bd693ab17603bef740f2411363c3df (diff)
Add java_genrules to use jars as inputs and outputs
Add a java_genrule that has the right multilib flags to be a dependency of a java rule. Make java libraries implement SourceFileProducer so that their classes jar can be used as an input to a java_genrule. Allow libs and static_libs dependencies to be a java_genrule. Test: TestJarGenrules Change-Id: Ib1b31ef9c0b7e72eeed2c9ecc4ce8a1088e0b1c9
Diffstat (limited to 'java/genrule.go')
-rw-r--r--java/genrule.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/java/genrule.go b/java/genrule.go
new file mode 100644
index 000000000..80b703055
--- /dev/null
+++ b/java/genrule.go
@@ -0,0 +1,35 @@
+// Copyright 2017 Google Inc. All rights reserved.
+//
+// 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.
+
+package java
+
+import (
+ "android/soong/android"
+ "android/soong/genrule"
+)
+
+func init() {
+ android.RegisterModuleType("java_genrule", genRuleFactory)
+}
+
+// java_genrule is a genrule that can depend on other java_* objects.
+// The cmd may be run multiple times, once for each of the different host/device
+// variations.
+func genRuleFactory() android.Module {
+ module := genrule.NewGenRule()
+
+ android.InitAndroidArchModule(module, android.HostAndDeviceSupported, android.MultilibCommon)
+
+ return module
+}