From ca4e13ac57d5c4c44cc4e4618522799cfde96ab3 Mon Sep 17 00:00:00 2001 From: Michael Thvedt Date: Thu, 18 Jun 2015 17:56:11 +0000 Subject: Move J2ObjCLibrary and supporting classes to Bazel, and enable J2ObJC in Bazel. -- MOS_MIGRATED_REVID=96324830 --- .../lib/bazel/rules/BazelRuleClassProvider.java | 8 +- .../lib/bazel/rules/java/BazelJavaLibraryRule.java | 7 + .../lib/rules/java/J2ObjcCommandLineOptions.java | 50 ++++ .../build/lib/rules/java/J2ObjcConfiguration.java | 130 ++++++++++ .../build/lib/rules/java/JavaImportBaseRule.java | 4 + .../lib/rules/objc/BazelJ2ObjcLibraryRule.java | 55 ++++ .../build/lib/rules/objc/CompilationSupport.java | 1 + .../build/lib/rules/objc/J2ObjcAspect.java | 282 +++++++++++++++++++++ .../lib/rules/objc/J2ObjcCommandLineOptions.java | 48 ---- .../build/lib/rules/objc/J2ObjcConfiguration.java | 128 ---------- .../build/lib/rules/objc/J2ObjcLibrary.java | 110 ++++++++ .../lib/rules/objc/J2ObjcLibraryBaseRule.java | 79 ++++++ 12 files changed, 724 insertions(+), 178 deletions(-) create mode 100644 src/main/java/com/google/devtools/build/lib/rules/java/J2ObjcCommandLineOptions.java create mode 100644 src/main/java/com/google/devtools/build/lib/rules/java/J2ObjcConfiguration.java create mode 100644 src/main/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryRule.java create mode 100644 src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java delete mode 100644 src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcCommandLineOptions.java delete mode 100644 src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java create mode 100644 src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java create mode 100644 src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryBaseRule.java diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java index dabf2fe27c..dfbcc4244a 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java @@ -80,6 +80,8 @@ import com.google.devtools.build.lib.rules.cpp.CppConfiguration; import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader; import com.google.devtools.build.lib.rules.cpp.CppOptions; import com.google.devtools.build.lib.rules.genquery.GenQueryRule; +import com.google.devtools.build.lib.rules.java.J2ObjcCommandLineOptions; +import com.google.devtools.build.lib.rules.java.J2ObjcConfiguration; import com.google.devtools.build.lib.rules.java.JavaConfiguration; import com.google.devtools.build.lib.rules.java.JavaConfigurationLoader; import com.google.devtools.build.lib.rules.java.JavaCpuSupplier; @@ -88,13 +90,13 @@ import com.google.devtools.build.lib.rules.java.JavaOptions; import com.google.devtools.build.lib.rules.java.JavaToolchainRule; import com.google.devtools.build.lib.rules.java.Jvm; import com.google.devtools.build.lib.rules.java.JvmConfigurationLoader; +import com.google.devtools.build.lib.rules.objc.BazelJ2ObjcLibraryRule; import com.google.devtools.build.lib.rules.objc.ExperimentalIosTestRule; import com.google.devtools.build.lib.rules.objc.IosApplicationRule; import com.google.devtools.build.lib.rules.objc.IosDeviceRule; import com.google.devtools.build.lib.rules.objc.IosExtensionBinaryRule; import com.google.devtools.build.lib.rules.objc.IosExtensionRule; -import com.google.devtools.build.lib.rules.objc.J2ObjcCommandLineOptions; -import com.google.devtools.build.lib.rules.objc.J2ObjcConfiguration; +import com.google.devtools.build.lib.rules.objc.J2ObjcLibraryBaseRule; import com.google.devtools.build.lib.rules.objc.ObjcBinaryRule; import com.google.devtools.build.lib.rules.objc.ObjcBuildInfoFactory; import com.google.devtools.build.lib.rules.objc.ObjcBundleLibraryRule; @@ -329,6 +331,8 @@ public class BazelRuleClassProvider { builder.addRuleDefinition(new IosApplicationRule()); builder.addRuleDefinition(new IosExtensionBinaryRule()); builder.addRuleDefinition(new IosExtensionRule()); + builder.addRuleDefinition(new J2ObjcLibraryBaseRule()); + builder.addRuleDefinition(new BazelJ2ObjcLibraryRule()); builder.addRuleDefinition(new BazelExtraActionRule()); builder.addRuleDefinition(new BazelActionListenerRule()); diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaLibraryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaLibraryRule.java index acc91733ac..6e7f85a8a9 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaLibraryRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaLibraryRule.java @@ -25,6 +25,10 @@ import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.bazel.rules.java.BazelJavaRuleClasses.JavaRule; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; +import com.google.devtools.build.lib.rules.cpp.CppConfiguration; +import com.google.devtools.build.lib.rules.java.J2ObjcConfiguration; +import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider; +import com.google.devtools.build.lib.rules.java.JavaConfiguration; import com.google.devtools.build.lib.rules.java.JavaSourceInfoProvider; /** @@ -35,6 +39,8 @@ public final class BazelJavaLibraryRule implements RuleDefinition { public RuleClass build(Builder builder, final RuleDefinitionEnvironment env) { return builder + .requiresConfigurationFragments( + JavaConfiguration.class, CppConfiguration.class, J2ObjcConfiguration.class) /*