diff options
author | 2015-05-20 20:24:57 +0000 | |
---|---|---|
committer | 2015-05-21 09:50:42 +0000 | |
commit | 828c5441b0cb4af1435c9c20d21a5ebc6da83ec7 (patch) | |
tree | 6ce8789d35a4f14112956ccf5ffc5d31fa3fbfbb /src/main/java/com/google/devtools/build/lib | |
parent | b66898e44d79ef67f856eaeae711bb461564a3c1 (diff) |
Rollback of commit b66898e44d79ef67f856eaeae711bb461564a3c1.
*** Reason for rollback ***
This was accidentally submitted (why did tappresubmit not complain about no LGTM?!)
*** Original change description ***
Allow objc_{library,binary} to depend on cc_library.
This is an early version of support for this feature, likely still missing
a number of edge cases. However the basic functionality should work.
To allow a dependency from objc to cc, the following flags will have to be
passed to bazel:
--experimental_enable_objc_cc_deps --experimental_disable_java --cpu=ios_i386 --crosstool_top=//tools/objc/crosstool:crosstool
The feature is also compatible with --ios_multi_cpus, with the familiar
values f...
***
--
MOS_MIGRATED_REVID=94118959
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
16 files changed, 31 insertions, 149 deletions
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 4720ad2ab5..eef56df17d 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,8 +25,6 @@ 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.JavaConfiguration; /** * Common attributes for Java rules. @@ -36,7 +34,6 @@ public final class BazelJavaLibraryRule implements RuleDefinition { public RuleClass build(Builder builder, final RuleDefinitionEnvironment env) { return builder - .requiresConfigurationFragments(JavaConfiguration.class, CppConfiguration.class) /* <!-- #BLAZE_RULE(java_library).IMPLICIT_OUTPUTS --> <ul> <li><code>lib<var>name</var>.jar</code>: A Java archive containing the class files.</li> diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java index f0b4140b79..eac26d85f6 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java @@ -37,9 +37,7 @@ import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; import com.google.devtools.build.lib.packages.RuleClass.PackageNameConstraint; import com.google.devtools.build.lib.packages.TriState; -import com.google.devtools.build.lib.rules.java.JavaConfiguration; import com.google.devtools.build.lib.rules.java.JavaSemantics; -import com.google.devtools.build.lib.rules.java.Jvm; import com.google.devtools.build.lib.util.FileTypeSet; import com.google.devtools.build.lib.vfs.PathFragment; @@ -67,9 +65,6 @@ public class BazelJavaRuleClasses { @Override public RuleClass build(Builder builder, RuleDefinitionEnvironment env) { return builder - // Fail analysis if --disable_java is enabled. - .failIfMissingConfigurationFragment() - .requiresConfigurationFragments(JavaConfiguration.class, Jvm.class) .add(attr("$ijar", LABEL).cfg(HOST).exec().value(env.getLabel("//tools/defaults:ijar"))) .setPreferredDependencyPredicate(JavaSemantics.JAVA_SOURCE) .build(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfigurationLoader.java index 0edf18be9a..3d83a926a4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfigurationLoader.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfigurationLoader.java @@ -13,7 +13,6 @@ // limitations under the License. package com.google.devtools.build.lib.rules.java; -import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.analysis.RedirectChaser; @@ -48,10 +47,6 @@ public class JavaConfigurationLoader implements ConfigurationFragmentFactory { throws InvalidConfigurationException { JavaOptions javaOptions = buildOptions.get(JavaOptions.class); - if (javaOptions.disableJava) { - return null; - } - Label javaToolchain = RedirectChaser.followRedirects(env, javaOptions.javaToolchain, "java_toolchain"); return create(javaOptions, javaToolchain, cpuSupplier.getJavaCpu(buildOptions, env)); @@ -61,10 +56,9 @@ public class JavaConfigurationLoader implements ConfigurationFragmentFactory { public Class<? extends Fragment> creates() { return JavaConfiguration.class; } - - @VisibleForTesting + public JavaConfiguration create(JavaOptions javaOptions, Label javaToolchain, String javaCpu) - throws InvalidConfigurationException { + throws InvalidConfigurationException { boolean generateJavaDeps = javaOptions.javaDeps || javaOptions.experimentalJavaClasspath != JavaClasspathMode.OFF; diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java index 286ccce776..5cbfe13dad 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java @@ -27,7 +27,6 @@ import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; -import com.google.devtools.build.lib.rules.cpp.CppConfiguration; /** * A base rule for building the java_import rule. @@ -37,7 +36,6 @@ public class JavaImportBaseRule implements RuleDefinition { @Override public RuleClass build(Builder builder, RuleDefinitionEnvironment environment) { return builder - .requiresConfigurationFragments(JavaConfiguration.class, CppConfiguration.class) .add(attr(":host_jdk", LABEL) .cfg(HOST) .value(JavaSemantics.HOST_JDK)) diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java index f94eaf57ec..d35c0ef4cb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java @@ -288,12 +288,6 @@ public class JavaOptions extends FragmentOptions { help = "Check the listed constraint.") public List<String> checkedConstraints; - @Option(name = "experimental_disable_java", - defaultValue = "false", - category = "undocumented", - help = "Disables java support entirely.") - public boolean disableJava; - @Override public FragmentOptions getHost(boolean fallback) { JavaOptions host = (JavaOptions) getDefault(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java index 1b035e0cd2..a68dcd46d2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java @@ -82,9 +82,6 @@ public interface JavaSemantics { new LateBoundLabel<BuildConfiguration>(JAVA_TOOLCHAIN_LABEL) { @Override public Label getDefault(Rule rule, BuildConfiguration configuration) { - if (!configuration.hasFragment(JavaConfiguration.class)) { - return null; - } return configuration.getFragment(JavaConfiguration.class).getToolchainLabel(); } }; @@ -135,9 +132,6 @@ public interface JavaSemantics { new LateBoundLabel<BuildConfiguration>(JDK_LABEL) { @Override public Label getDefault(Rule rule, BuildConfiguration configuration) { - if (!configuration.hasFragment(Jvm.class)) { - return null; - } return configuration.getFragment(Jvm.class).getJvmLabel(); } }; @@ -154,9 +148,6 @@ public interface JavaSemantics { @Override public Label getDefault(Rule rule, BuildConfiguration configuration) { - if (!configuration.hasFragment(Jvm.class)) { - return null; - } return configuration.getFragment(Jvm.class).getJvmLabel(); } }; @@ -169,9 +160,6 @@ public interface JavaSemantics { new LateBoundLabel<BuildConfiguration>() { @Override public Label getDefault(Rule rule, BuildConfiguration configuration) { - if (!configuration.hasFragment(JavaConfiguration.class)) { - return null; - } return configuration.getFragment(JavaConfiguration.class).getJavaLauncherLabel(); } }; diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java index 837ffb4626..4a45461ecd 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java @@ -45,7 +45,6 @@ public final class JavaToolchainRule implements RuleDefinition { @Override public RuleClass build(Builder builder, RuleDefinitionEnvironment env) { return builder.setUndocumented() - .requiresConfigurationFragments(JavaConfiguration.class) /* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(source_version) --> The Java source version (e.g., '6' or '7'). It specifies which set of code structures are allowed in the Java source code. diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JvmConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/rules/java/JvmConfigurationLoader.java index 3cf01b2191..a19461ae7f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JvmConfigurationLoader.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JvmConfigurationLoader.java @@ -66,11 +66,6 @@ public final class JvmConfigurationLoader implements ConfigurationFragmentFactor public Jvm create(ConfigurationEnvironment env, BuildOptions buildOptions) throws InvalidConfigurationException { JavaOptions javaOptions = buildOptions.get(JavaOptions.class); - - if (javaOptions.disableJava) { - return null; - } - String javaHome = javaOptions.javaBase; String cpu = cpuSupplier.getJavaCpu(buildOptions, env); if (cpu == null) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java b/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java index b59bbe30c9..9d165b561d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java @@ -29,8 +29,6 @@ import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.RunfilesSupport; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; -import com.google.devtools.build.lib.rules.cpp.CcLinkParamsProvider; -import com.google.devtools.build.lib.rules.cpp.CppCompilationContext; import com.google.devtools.build.lib.rules.objc.CompilationSupport.ExtraLinkArgs; import com.google.devtools.build.lib.rules.objc.ObjcCommon.CompilationAttributes; import com.google.devtools.build.lib.rules.objc.ObjcCommon.ResourceAttributes; @@ -171,10 +169,6 @@ abstract class BinaryLinkingTargetFactory implements RuleConfiguredTargetFactory .setCompilationArtifacts(compilationArtifacts) .addDefines(ruleContext.getTokenizedStringListAttr("defines")) .addDepObjcProviders(ruleContext.getPrerequisites("deps", Mode.TARGET, ObjcProvider.class)) - .addDepCcHeaderProviders( - ruleContext.getPrerequisites("deps", Mode.TARGET, CppCompilationContext.class)) - .addDepCcLinkProviders( - ruleContext.getPrerequisites("deps", Mode.TARGET, CcLinkParamsProvider.class)) .addDepObjcProviders( ruleContext.getPrerequisites("bundles", Mode.TARGET, ObjcProvider.class)) .addNonPropagatedDepObjcProviders( diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java index 803090bf87..2c8220b203 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java @@ -49,7 +49,6 @@ import com.google.devtools.build.lib.analysis.actions.CustomCommandLine; import com.google.devtools.build.lib.analysis.actions.FileWriteAction; import com.google.devtools.build.lib.analysis.actions.SpawnAction; import com.google.devtools.build.lib.collect.nestedset.NestedSet; -import com.google.devtools.build.lib.rules.cpp.LinkerInputs; import com.google.devtools.build.lib.rules.objc.ObjcCommon.CompilationAttributes; import com.google.devtools.build.lib.rules.objc.XcodeProvider.Builder; import com.google.devtools.build.lib.shell.ShellUtils; @@ -79,8 +78,6 @@ final class CompilationSupport { static final ImmutableList<String> CLANG_COVERAGE_FLAGS = ImmutableList.of("-fprofile-arcs", "-ftest-coverage", "-fprofile-dir=./coverage_output"); - private static final String FRAMEWORK_SUFFIX = ".framework"; - /** * Iterable wrapper providing strong type safety for arguments to binary linking. */ @@ -285,37 +282,27 @@ final class CompilationSupport { Artifact linkedBinary = ObjcRuleClasses.intermediateArtifacts(ruleContext).singleArchitectureBinary(); - ImmutableList<Artifact> ccLibraries = ccLibraries(objcProvider); ruleContext.registerAction( ObjcRuleClasses.spawnOnDarwinActionBuilder() .setMnemonic("ObjcLink") .setShellCommand(ImmutableList.of("/bin/bash", "-c")) - .setCommandLine( - linkCommandLine(extraLinkArgs, objcProvider, linkedBinary, dsymBundle, ccLibraries)) + .setCommandLine(linkCommandLine(extraLinkArgs, objcProvider, linkedBinary, dsymBundle)) .addOutput(linkedBinary) .addOutputs(dsymBundle.asSet()) .addTransitiveInputs(objcProvider.get(LIBRARY)) .addTransitiveInputs(objcProvider.get(IMPORTED_LIBRARY)) .addTransitiveInputs(objcProvider.get(FRAMEWORK_FILE)) - .addInputs(ccLibraries) .addInputs(extraLinkInputs) .build(ruleContext)); } - private ImmutableList<Artifact> ccLibraries(ObjcProvider objcProvider) { - ImmutableList.Builder<Artifact> ccLibraryBuilder = ImmutableList.builder(); - for (LinkerInputs.LibraryToLink libraryToLink : objcProvider.get(ObjcProvider.CC_LIBRARY)) { - ccLibraryBuilder.add(libraryToLink.getArtifact()); - } - return ccLibraryBuilder.build(); - } + private static final String FRAMEWORK_SUFFIX = ".framework"; private CommandLine linkCommandLine(ExtraLinkArgs extraLinkArgs, - ObjcProvider objcProvider, Artifact linkedBinary, Optional<Artifact> dsymBundle, - ImmutableList<Artifact> ccLibraries) { + ObjcProvider objcProvider, Artifact linkedBinary, Optional<Artifact> dsymBundle) { ObjcConfiguration objcConfiguration = ObjcRuleClasses.objcConfiguration(ruleContext); - CustomCommandLine.Builder commandLine = CustomCommandLine.builder(); + final CustomCommandLine.Builder commandLine = CustomCommandLine.builder(); if (objcProvider.is(USES_CPP)) { commandLine @@ -335,7 +322,6 @@ final class CompilationSupport { .addExecPath("-o", linkedBinary) .addExecPaths(objcProvider.get(LIBRARY)) .addExecPaths(objcProvider.get(IMPORTED_LIBRARY)) - .addExecPaths(ccLibraries) .add(dylibPaths(objcProvider)) .addBeforeEach("-force_load", Artifact.toExecPaths(objcProvider.get(FORCE_LOAD_LIBRARY))) .add(extraLinkArgs) diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java index 6fa5ff9c26..9d9d1735bb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java @@ -129,16 +129,6 @@ public class ObjcCommandLineOptions extends FragmentOptions { help = "Whether to add include path entries for every individual proto file.") public boolean perProtoIncludes; - @Option(name = "experimental_enable_objc_cc_deps", - defaultValue = "false", - category = "undocumented", - help = "Allows objc_* rules to depend on cc_library and causes any objc dependencies to be " - + "built with --cpu set to \"ios_<--ios_cpu>\" for any values in --ios_multi_cpu. For " - + "most values of ios_cpu this means that this option requires the use of " - + "--experimental_disable_java as java does not support these new --cpu values. Note " - + "that this may affect genrules if they depend on java make variables.") - public boolean enableCcDeps; - // This option exists because two configurations are not allowed to have the same cache key // (partially derived from options). Since we have multiple transitions (see // getPotentialSplitTransitions below) that may result in the same configuration values at runtime diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java index e311bc3473..e3ed076467 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java @@ -18,7 +18,6 @@ import static com.google.devtools.build.lib.rules.objc.ObjcProvider.ASSET_CATALO import static com.google.devtools.build.lib.rules.objc.ObjcProvider.BREAKPAD_FILE; import static com.google.devtools.build.lib.rules.objc.ObjcProvider.BUNDLE_FILE; import static com.google.devtools.build.lib.rules.objc.ObjcProvider.BUNDLE_IMPORT_DIR; -import static com.google.devtools.build.lib.rules.objc.ObjcProvider.CC_LIBRARY; import static com.google.devtools.build.lib.rules.objc.ObjcProvider.DEFINE; import static com.google.devtools.build.lib.rules.objc.ObjcProvider.FLAG; import static com.google.devtools.build.lib.rules.objc.ObjcProvider.FORCE_LOAD_FOR_XCODEGEN; @@ -58,8 +57,6 @@ import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.rules.cpp.CcCommon; -import com.google.devtools.build.lib.rules.cpp.CcLinkParamsProvider; -import com.google.devtools.build.lib.rules.cpp.CppCompilationContext; import com.google.devtools.build.lib.util.FileType; import com.google.devtools.build.lib.util.RegexFilter; import com.google.devtools.build.lib.vfs.PathFragment; @@ -240,8 +237,6 @@ public final class ObjcCommon { private Iterable<Artifact> extraImportLibraries = ImmutableList.of(); private Optional<Artifact> linkedBinary = Optional.absent(); private Optional<Artifact> breakpadFile = Optional.absent(); - private Iterable<CppCompilationContext> depCcHeaderProviders = ImmutableList.of(); - private Iterable<CcLinkParamsProvider> depCcLinkProviders = ImmutableList.of(); Builder(RuleContext context) { this.context = Preconditions.checkNotNull(context); @@ -359,22 +354,6 @@ public final class ObjcCommon { return this; } - /** - * Sets information from {@code cc_library} dependencies to be used during compilation. - */ - public Builder addDepCcHeaderProviders(Iterable<CppCompilationContext> depCcHeaderProviders) { - this.depCcHeaderProviders = Iterables.concat(this.depCcHeaderProviders, depCcHeaderProviders); - return this; - } - - /** - * Sets information from {@code cc_library} dependencies to be used during linking. - */ - public Builder addDepCcLinkProviders(Iterable<CcLinkParamsProvider> depCcLinkProviders) { - this.depCcLinkProviders = Iterables.concat(this.depCcLinkProviders, depCcLinkProviders); - return this; - } - ObjcCommon build() { Iterable<BundleableFile> bundleImports = BundleableFile.bundleImportsFromRule(context); @@ -394,15 +373,6 @@ public final class ObjcCommon { .addTransitiveAndPropagate(depObjcProviders) .addTransitiveWithoutPropagating(directDepObjcProviders); - for (CppCompilationContext headerProvider : depCcHeaderProviders) { - // TODO(bazel-team): Also account for custom include settings to go into header search paths - objcProvider.addTransitiveAndPropagate(HEADER, headerProvider.getDeclaredIncludeSrcs()); - } - for (CcLinkParamsProvider linkProvider : depCcLinkProviders) { - objcProvider.addTransitiveAndPropagate( - CC_LIBRARY, linkProvider.getCcLinkParams(true, false).getLibraries()); - } - if (compilationAttributes.isPresent()) { CompilationAttributes attributes = compilationAttributes.get(); ObjcConfiguration objcConfiguration = ObjcRuleClasses.objcConfiguration(context); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java index 522a35b7ce..38c07190d1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java @@ -24,8 +24,6 @@ import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; -import com.google.devtools.build.lib.rules.cpp.CcLinkParamsProvider; -import com.google.devtools.build.lib.rules.cpp.CppCompilationContext; import com.google.devtools.build.lib.rules.objc.ObjcCommon.CompilationAttributes; import com.google.devtools.build.lib.rules.objc.ObjcCommon.ResourceAttributes; @@ -70,10 +68,6 @@ public class ObjcLibrary implements RuleConfiguredTargetFactory { ruleContext.getPrerequisites("bundles", Mode.TARGET, ObjcProvider.class)) .addNonPropagatedDepObjcProviders(ruleContext.getPrerequisites("non_propagated_deps", Mode.TARGET, ObjcProvider.class)) - .addDepCcHeaderProviders( - ruleContext.getPrerequisites("deps", Mode.TARGET, CppCompilationContext.class)) - .addDepCcLinkProviders( - ruleContext.getPrerequisites("deps", Mode.TARGET, CcLinkParamsProvider.class)) .setIntermediateArtifacts(ObjcRuleClasses.intermediateArtifacts(ruleContext)) .setAlwayslink(alwayslink) .addExtraImportLibraries(extraImportLibraries) diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java index e2fc6e9363..ce344cf44b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java @@ -27,7 +27,6 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.rules.cpp.LinkerInputs; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.xcode.xcodegen.proto.XcodeGenProtos.TargetControl; @@ -160,7 +159,7 @@ public final class ObjcProvider implements TransitiveInfoProvider { public static final Key<Bundling> NESTED_BUNDLE = new Key<>(STABLE_ORDER); /** - * Artifact containing information on debug symbols. + * Artifact containing information on debug symbols */ public static final Key<Artifact> DEBUG_SYMBOLS = new Key<>(STABLE_ORDER); @@ -186,11 +185,6 @@ public final class ObjcProvider implements TransitiveInfoProvider { public static final Key<Artifact> STRINGS = new Key<>(STABLE_ORDER); /** - * Linking information from cc dependencies. - */ - public static final Key<LinkerInputs.LibraryToLink> CC_LIBRARY = new Key<>(LINK_ORDER); - - /** * Flags that apply to a transitive build dependency tree. Each item in the enum corresponds to a * flag. If the item is included in the key {@link #FLAG}, then the flag is considered set. */ diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java index 9e5b824b67..4844892d1e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java @@ -606,8 +606,7 @@ public class ObjcRuleClasses { "objc_import", "objc_framework", "objc_proto_library", - "j2objc_library", - "cc_library"); + "j2objc_library"); @Override public RuleClass build(Builder builder, RuleDefinitionEnvironment env) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java index 0f9869af05..289b3b9379 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java @@ -37,7 +37,6 @@ import com.google.devtools.build.lib.analysis.actions.CustomCommandLine; import com.google.devtools.build.lib.analysis.actions.SpawnAction; import com.google.devtools.build.lib.analysis.actions.TemplateExpansionAction; import com.google.devtools.build.lib.analysis.actions.TemplateExpansionAction.Substitution; -import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; @@ -224,30 +223,29 @@ public final class ReleaseBundlingSupport { .add("-c") .add( "VERSION=\"$(" - + "grep \"^" + BuildInfo.BUILD_EMBED_LABEL + "\" " + buildInfo - .getExecPathString() - + " | cut -d' ' -f2- | sed -e 's#\"#\\\"#g')\" && " - + "cat >" + getGeneratedVersionPlist().getExecPathString() + " <<EOF\n" - + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" - + "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" " - + "\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n" - + "<plist version=\"1.0\">\n" - + "<dict>\n" - + "EOF\n" - - + "if [[ -n \"${VERSION}\" ]]; then\n" - + " for KEY in CFBundleVersion CFBundleShortVersionString; do\n" - + " echo \" <key>${KEY}</key>\n\" >> " - + getGeneratedVersionPlist().getExecPathString() + "\n" - + " echo \" <string>${VERSION}</string>\n\" >> " - + getGeneratedVersionPlist().getExecPathString() + "\n" - + " done\n" - + "fi\n" - - + "cat >>" + getGeneratedVersionPlist().getExecPathString() + " <<EOF\n" - + "</dict>\n" - + "</plist>\n" - + "EOF\n" + + "grep \"^" + BuildInfo.BUILD_EMBED_LABEL + "\" " + buildInfo.getExecPathString() + + " | cut -d' ' -f2- | sed -e 's#\"#\\\"#g')\" && " + + "cat >" + getGeneratedVersionPlist().getExecPathString() + " <<EOF\n" + + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + + "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" " + + "\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n" + + "<plist version=\"1.0\">\n" + + "<dict>\n" + + "EOF\n" + + + "if [[ -n \"${VERSION}\" ]]; then\n" + + " for KEY in CFBundleVersion CFBundleShortVersionString; do\n" + + " echo \" <key>${KEY}</key>\n\" >> " + + getGeneratedVersionPlist().getExecPathString() + "\n" + + " echo \" <string>${VERSION}</string>\n\" >> " + + getGeneratedVersionPlist().getExecPathString() + "\n" + + " done\n" + + "fi\n" + + + "cat >>" + getGeneratedVersionPlist().getExecPathString() + " <<EOF\n" + + "</dict>\n" + + "</plist>\n" + + "EOF\n" ) .build()) .addInput(buildInfo) @@ -820,9 +818,6 @@ public final class ReleaseBundlingSupport { private void setArchitectureOptions(BuildOptions splitOptions, String iosCpu) { splitOptions.get(ObjcCommandLineOptions.class).iosSplitCpu = iosCpu; splitOptions.get(ObjcCommandLineOptions.class).iosCpu = iosCpu; - if (splitOptions.get(ObjcCommandLineOptions.class).enableCcDeps) { - splitOptions.get(BuildConfiguration.Options.class).cpu = "ios_" + iosCpu; - } } @Override |