aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Peter Schmitt <schmitt@google.com>2015-05-20 20:24:57 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-05-21 09:50:42 +0000
commit828c5441b0cb4af1435c9c20d21a5ebc6da83ec7 (patch)
tree6ce8789d35a4f14112956ccf5ffc5d31fa3fbfbb /src/main/java/com/google
parentb66898e44d79ef67f856eaeae711bb461564a3c1 (diff)
*** 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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaLibraryRule.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaRuleClasses.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaConfigurationLoader.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaImportBaseRule.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JvmConfigurationLoader.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java22
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java30
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java51
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