From d9db4754a5b3d50ac50131d637140c07696567a2 Mon Sep 17 00:00:00 2001 From: Cal Peyser Date: Thu, 1 Sep 2016 17:42:14 +0000 Subject: Adds support for experimental_objc_library.includes -- MOS_MIGRATED_REVID=131965224 --- .../build/lib/rules/cpp/CppConfiguration.java | 49 ++++++++++++---------- .../lib/rules/objc/ExperimentalObjcLibrary.java | 5 +++ 2 files changed, 31 insertions(+), 23 deletions(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java index 87e3e97ca0..d076040987 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java @@ -847,29 +847,32 @@ public class CppConfiguration extends BuildConfiguration.Fragment { toolchainBuilder); } if (!features.contains("include_paths")) { - TextFormat.merge("" - + "feature {" - + " name: 'include_paths'" - + " flag_set {" - + " action: 'preprocess-assemble'" - + " action: 'c-compile'" - + " action: 'c++-compile'" - + " action: 'c++-header-parsing'" - + " action: 'c++-header-preprocessing'" - + " action: 'c++-module-compile'" - + " flag_group {" - + " flag: '-iquote'" - + " flag: '%{quote_include_paths}'" - + " }" - + " flag_group {" - + " flag: '-I%{include_paths}'" - + " }" - + " flag_group {" - + " flag: '-isystem'" - + " flag: '%{system_include_paths}'" - + " }" - + " }" - + "}", + TextFormat.merge( + "" + + "feature {" + + " name: 'include_paths'" + + " flag_set {" + + " action: 'preprocess-assemble'" + + " action: 'c-compile'" + + " action: 'c++-compile'" + + " action: 'c++-header-parsing'" + + " action: 'c++-header-preprocessing'" + + " action: 'c++-module-compile'" + + " action: 'objc-compile'" + + " action: 'objc++-compile'" + + " flag_group {" + + " flag: '-iquote'" + + " flag: '%{quote_include_paths}'" + + " }" + + " flag_group {" + + " flag: '-I%{include_paths}'" + + " }" + + " flag_group {" + + " flag: '-isystem'" + + " flag: '%{system_include_paths}'" + + " }" + + " }" + + "}", toolchainBuilder); } if (!features.contains("fdo_instrument")) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java index 5e0b4835a1..79eff7b041 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java @@ -16,6 +16,8 @@ package com.google.devtools.build.lib.rules.objc; import static com.google.devtools.build.lib.rules.objc.ObjcProvider.DEFINE; import static com.google.devtools.build.lib.rules.objc.ObjcProvider.IMPORTED_LIBRARY; +import static com.google.devtools.build.lib.rules.objc.ObjcProvider.INCLUDE; +import static com.google.devtools.build.lib.rules.objc.ObjcProvider.INCLUDE_SYSTEM; import static com.google.devtools.build.lib.rules.objc.XcodeProductType.LIBRARY_STATIC; import com.google.common.collect.ImmutableList; @@ -107,6 +109,8 @@ public class ExperimentalObjcLibrary implements RuleConfiguredTargetFactory { .addPrecompiledFiles(precompiledFiles) .addDeps(ruleContext.getPrerequisites("deps", Mode.TARGET)) .addCopts(compilationSupport.getCompileRuleCopts()) + .addIncludeDirs(common.getObjcProvider().get(INCLUDE)) + .addSystemIncludeDirs(common.getObjcProvider().get(INCLUDE_SYSTEM)) .addVariableExtension(variablesExtension); if (compilationArtifacts.getArchive().isPresent()) { @@ -172,6 +176,7 @@ public class ExperimentalObjcLibrary implements RuleConfiguredTargetFactory { activatedCrosstoolSelectables.add(CppRuleClasses.MODULE_MAPS); activatedCrosstoolSelectables.add(CppRuleClasses.COMPILE_ACTION_FLAGS_IN_FLAG_SET); activatedCrosstoolSelectables.add(CppRuleClasses.DEPENDENCY_FILE); + activatedCrosstoolSelectables.add(CppRuleClasses.INCLUDE_PATHS); return toolchain.getFeatures().getFeatureConfiguration(activatedCrosstoolSelectables.build()); } -- cgit v1.2.3