Make osx crosstool standalone (working without bazel patches)
This cl promotes //tools/osx/crosstool to be fully specified on its own, without
any blaze patches needed. While at it, I (think I) unified objc and c++ coverage
features. Other than coverage, this cl only adds features that bazel would add
otherwise.
Ping #2420
RELNOTES: ObjC and C++ coverage feature is unified under name 'coverage'
PiperOrigin-RevId: 160633192
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 5468a16..a8e6233 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
@@ -2141,6 +2141,11 @@
}
if (ruleContext.getConfiguration().isCodeCoverageEnabled()) {
requestedFeatures.add(CppRuleClasses.COVERAGE);
+ if (useLLVMCoverageMap) {
+ requestedFeatures.add(CppRuleClasses.LLVM_COVERAGE_MAP_FORMAT);
+ } else {
+ requestedFeatures.add(CppRuleClasses.GCC_COVERAGE_MAP_FORMAT);
+ }
}
return requestedFeatures.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
index 1e6e1b7..4ad604e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java
@@ -330,6 +330,12 @@
*/
public static final String COVERAGE = "coverage";
+ /** Produce artifacts for coverage in llvm coverage mapping format. */
+ public static final String LLVM_COVERAGE_MAP_FORMAT = "llvm_coverage_map_format";
+
+ /** Produce artifacts for coverage in gcc coverage mapping format. */
+ public static final String GCC_COVERAGE_MAP_FORMAT = "gcc_coverage_map_format";
+
/** A string constant for the match-clif feature. */
public static final String MATCH_CLIF = "match_clif";
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java
index aca7f7a..d26eec9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java
@@ -82,11 +82,6 @@
private static final String OBJC_MODULE_FEATURE_NAME = "use_objc_modules";
private static final String NO_ENABLE_MODULES_FEATURE_NAME = "no_enable_modules";
private static final String DEAD_STRIP_FEATURE_NAME = "dead_strip";
- private static final String RUN_COVERAGE_FEATURE_NAME = "run_coverage";
- /** Produce artifacts for coverage in llvm coverage mapping format. */
- private static final String LLVM_COVERAGE_MAP_FORMAT = "llvm_coverage_map_format";
- /** Produce artifacts for coverage in gcc coverage mapping format. */
- private static final String GCC_COVERAGE_MAP_FORMAT = "gcc_coverage_map_format";
/**
* Enabled if this target's rule is not a test rule. Binary stripping should not be applied in
* the link step. TODO(b/36562173): Replace this behavior with a condition on bundle creation.
@@ -483,14 +478,6 @@
&& ruleContext.getPrerequisiteArtifact("pch", Mode.TARGET) != null) {
activatedCrosstoolSelectables.add("pch");
}
- if (configuration.isCodeCoverageEnabled()) {
- activatedCrosstoolSelectables.add(RUN_COVERAGE_FEATURE_NAME);
- }
- if (configuration.isLLVMCoverageMapFormatEnabled()) {
- activatedCrosstoolSelectables.add(LLVM_COVERAGE_MAP_FORMAT);
- } else {
- activatedCrosstoolSelectables.add(GCC_COVERAGE_MAP_FORMAT);
- }
if (!isTestRule) {
activatedCrosstoolSelectables.add(IS_NOT_TEST_TARGET_FEATURE_NAME);
}
diff --git a/tools/osx/crosstool/CROSSTOOL.tpl b/tools/osx/crosstool/CROSSTOOL.tpl
index 5faa884..d416b03 100644
--- a/tools/osx/crosstool/CROSSTOOL.tpl
+++ b/tools/osx/crosstool/CROSSTOOL.tpl
@@ -163,6 +163,9 @@
name: "fastbuild"
}
feature {
+ name: "no_legacy_features"
+ }
+ feature {
name: "opt"
}
feature {
@@ -591,6 +594,94 @@
}
}
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: "clif-match"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-iquote"
+ flag: "%{quote_include_paths}"
+ iterate_over: "quote_include_paths"
+ }
+ flag_group {
+ flag: "-I%{include_paths}"
+ iterate_over: "include_paths"
+ }
+ flag_group {
+ flag: "-isystem"
+ flag: "%{system_include_paths}"
+ iterate_over: "system_include_paths"
+ }
+ }
+ }
+ feature {
+ name: "dependency_file"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c++-header-preprocessing"
+ action: "c++-header-parsing"
+ flag_group {
+ flag: "-MD"
+ flag: "-MF"
+ flag: "%{dependency_file}"
+ }
+ expand_if_all_available: "dependency_file"
+ }
+ }
+ feature {
+ name: "random_seed"
+ flag_set {
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-frandom-seed=%{output_file}"
+ }
+ }
+ }
+ feature {
+ name: "pic"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-fPIC"
+ }
+ expand_if_all_available: "pic"
+ }
+ }
+ feature {
+ name: "per_object_debug_info"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "lto-backend"
+ flag_group {
+ flag: "-gsplit-dwarf"
+ }
+ expand_if_all_available: "per_object_debug_info_file"
+ }
+ }
+ feature {
name: "preprocessor_defines"
flag_set {
action: "preprocess-assemble"
@@ -619,19 +710,112 @@
}
}
feature {
+ name: "fdo_instrument"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-fprofile-generate=%{fdo_instrument_path}"
+ flag: "-fno-data-sections"
+ }
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "fdo_optimize"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fprofile-use=%{fdo_profile_path}"
+ flag: "-Xclang-only=-Wno-profile-instr-unprofiled"
+ flag: "-Xclang-only=-Wno-profile-instr-out-of-date"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "autofdo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fauto-profile=%{fdo_profile_path}"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "lipo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fripa"
+ }
+ }
+ requires {
+ feature: "autofdo"
+ }
+ requires {
+ feature: "fdo_optimize"
+ }
+ requires {
+ feature: "fdo_instrument"
+ }
+ }
+ feature {
name: "coverage"
+ }
+ feature {
+ name: "llvm_coverage_map_format"
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: "-fprofile-instr-generate"
flag: "-fcoverage-mapping"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-instr-generate"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ }
+ feature {
+ name: "gcc_coverage_map_format"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
}
}
flag_set {
@@ -639,10 +823,12 @@
action: "c++-link-dynamic-library"
action: "c++-link-executable"
flag_group {
- flag: "-fprofile-instr-generate"
+ flag: "-lgcov"
}
}
- provides: "profile"
+ requires {
+ feature: "coverage"
+ }
}
feature {
name: "apply_default_compiler_flags"
@@ -835,41 +1021,6 @@
}
}
feature {
- name: "run_coverage"
- }
- feature {
- name: "llvm_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-instr-generate"
- flag: "-fcoverage-mapping"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
- name: "gcc_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-arcs"
- flag: "-ftest-coverage"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -1418,6 +1569,9 @@
name: "fastbuild"
}
feature {
+ name: "no_legacy_features"
+ }
+ feature {
name: "opt"
}
feature {
@@ -1846,6 +2000,94 @@
}
}
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: "clif-match"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-iquote"
+ flag: "%{quote_include_paths}"
+ iterate_over: "quote_include_paths"
+ }
+ flag_group {
+ flag: "-I%{include_paths}"
+ iterate_over: "include_paths"
+ }
+ flag_group {
+ flag: "-isystem"
+ flag: "%{system_include_paths}"
+ iterate_over: "system_include_paths"
+ }
+ }
+ }
+ feature {
+ name: "dependency_file"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c++-header-preprocessing"
+ action: "c++-header-parsing"
+ flag_group {
+ flag: "-MD"
+ flag: "-MF"
+ flag: "%{dependency_file}"
+ }
+ expand_if_all_available: "dependency_file"
+ }
+ }
+ feature {
+ name: "random_seed"
+ flag_set {
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-frandom-seed=%{output_file}"
+ }
+ }
+ }
+ feature {
+ name: "pic"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-fPIC"
+ }
+ expand_if_all_available: "pic"
+ }
+ }
+ feature {
+ name: "per_object_debug_info"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "lto-backend"
+ flag_group {
+ flag: "-gsplit-dwarf"
+ }
+ expand_if_all_available: "per_object_debug_info_file"
+ }
+ }
+ feature {
name: "preprocessor_defines"
flag_set {
action: "preprocess-assemble"
@@ -1874,19 +2116,112 @@
}
}
feature {
+ name: "fdo_instrument"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-fprofile-generate=%{fdo_instrument_path}"
+ flag: "-fno-data-sections"
+ }
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "fdo_optimize"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fprofile-use=%{fdo_profile_path}"
+ flag: "-Xclang-only=-Wno-profile-instr-unprofiled"
+ flag: "-Xclang-only=-Wno-profile-instr-out-of-date"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "autofdo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fauto-profile=%{fdo_profile_path}"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "lipo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fripa"
+ }
+ }
+ requires {
+ feature: "autofdo"
+ }
+ requires {
+ feature: "fdo_optimize"
+ }
+ requires {
+ feature: "fdo_instrument"
+ }
+ }
+ feature {
name: "coverage"
+ }
+ feature {
+ name: "llvm_coverage_map_format"
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: "-fprofile-instr-generate"
flag: "-fcoverage-mapping"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-instr-generate"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ }
+ feature {
+ name: "gcc_coverage_map_format"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
}
}
flag_set {
@@ -1894,10 +2229,12 @@
action: "c++-link-dynamic-library"
action: "c++-link-executable"
flag_group {
- flag: "-fprofile-instr-generate"
+ flag: "-lgcov"
}
}
- provides: "profile"
+ requires {
+ feature: "coverage"
+ }
}
feature {
name: "apply_default_compiler_flags"
@@ -2091,41 +2428,6 @@
}
}
feature {
- name: "run_coverage"
- }
- feature {
- name: "llvm_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-instr-generate"
- flag: "-fcoverage-mapping"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
- name: "gcc_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-arcs"
- flag: "-ftest-coverage"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -2680,6 +2982,9 @@
name: "fastbuild"
}
feature {
+ name: "no_legacy_features"
+ }
+ feature {
name: "opt"
}
feature {
@@ -3108,6 +3413,94 @@
}
}
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: "clif-match"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-iquote"
+ flag: "%{quote_include_paths}"
+ iterate_over: "quote_include_paths"
+ }
+ flag_group {
+ flag: "-I%{include_paths}"
+ iterate_over: "include_paths"
+ }
+ flag_group {
+ flag: "-isystem"
+ flag: "%{system_include_paths}"
+ iterate_over: "system_include_paths"
+ }
+ }
+ }
+ feature {
+ name: "dependency_file"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c++-header-preprocessing"
+ action: "c++-header-parsing"
+ flag_group {
+ flag: "-MD"
+ flag: "-MF"
+ flag: "%{dependency_file}"
+ }
+ expand_if_all_available: "dependency_file"
+ }
+ }
+ feature {
+ name: "random_seed"
+ flag_set {
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-frandom-seed=%{output_file}"
+ }
+ }
+ }
+ feature {
+ name: "pic"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-fPIC"
+ }
+ expand_if_all_available: "pic"
+ }
+ }
+ feature {
+ name: "per_object_debug_info"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "lto-backend"
+ flag_group {
+ flag: "-gsplit-dwarf"
+ }
+ expand_if_all_available: "per_object_debug_info_file"
+ }
+ }
+ feature {
name: "preprocessor_defines"
flag_set {
action: "preprocess-assemble"
@@ -3136,19 +3529,112 @@
}
}
feature {
+ name: "fdo_instrument"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-fprofile-generate=%{fdo_instrument_path}"
+ flag: "-fno-data-sections"
+ }
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "fdo_optimize"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fprofile-use=%{fdo_profile_path}"
+ flag: "-Xclang-only=-Wno-profile-instr-unprofiled"
+ flag: "-Xclang-only=-Wno-profile-instr-out-of-date"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "autofdo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fauto-profile=%{fdo_profile_path}"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "lipo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fripa"
+ }
+ }
+ requires {
+ feature: "autofdo"
+ }
+ requires {
+ feature: "fdo_optimize"
+ }
+ requires {
+ feature: "fdo_instrument"
+ }
+ }
+ feature {
name: "coverage"
+ }
+ feature {
+ name: "llvm_coverage_map_format"
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: "-fprofile-instr-generate"
flag: "-fcoverage-mapping"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-instr-generate"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ }
+ feature {
+ name: "gcc_coverage_map_format"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
}
}
flag_set {
@@ -3156,10 +3642,12 @@
action: "c++-link-dynamic-library"
action: "c++-link-executable"
flag_group {
- flag: "-fprofile-instr-generate"
+ flag: "-lgcov"
}
}
- provides: "profile"
+ requires {
+ feature: "coverage"
+ }
}
feature {
name: "apply_default_compiler_flags"
@@ -3355,41 +3843,6 @@
}
}
feature {
- name: "run_coverage"
- }
- feature {
- name: "llvm_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-instr-generate"
- flag: "-fcoverage-mapping"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
- name: "gcc_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-arcs"
- flag: "-ftest-coverage"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -3945,6 +4398,9 @@
name: "fastbuild"
}
feature {
+ name: "no_legacy_features"
+ }
+ feature {
name: "opt"
}
feature {
@@ -4373,6 +4829,94 @@
}
}
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: "clif-match"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-iquote"
+ flag: "%{quote_include_paths}"
+ iterate_over: "quote_include_paths"
+ }
+ flag_group {
+ flag: "-I%{include_paths}"
+ iterate_over: "include_paths"
+ }
+ flag_group {
+ flag: "-isystem"
+ flag: "%{system_include_paths}"
+ iterate_over: "system_include_paths"
+ }
+ }
+ }
+ feature {
+ name: "dependency_file"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c++-header-preprocessing"
+ action: "c++-header-parsing"
+ flag_group {
+ flag: "-MD"
+ flag: "-MF"
+ flag: "%{dependency_file}"
+ }
+ expand_if_all_available: "dependency_file"
+ }
+ }
+ feature {
+ name: "random_seed"
+ flag_set {
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-frandom-seed=%{output_file}"
+ }
+ }
+ }
+ feature {
+ name: "pic"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-fPIC"
+ }
+ expand_if_all_available: "pic"
+ }
+ }
+ feature {
+ name: "per_object_debug_info"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "lto-backend"
+ flag_group {
+ flag: "-gsplit-dwarf"
+ }
+ expand_if_all_available: "per_object_debug_info_file"
+ }
+ }
+ feature {
name: "preprocessor_defines"
flag_set {
action: "preprocess-assemble"
@@ -4401,19 +4945,112 @@
}
}
feature {
+ name: "fdo_instrument"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-fprofile-generate=%{fdo_instrument_path}"
+ flag: "-fno-data-sections"
+ }
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "fdo_optimize"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fprofile-use=%{fdo_profile_path}"
+ flag: "-Xclang-only=-Wno-profile-instr-unprofiled"
+ flag: "-Xclang-only=-Wno-profile-instr-out-of-date"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "autofdo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fauto-profile=%{fdo_profile_path}"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "lipo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fripa"
+ }
+ }
+ requires {
+ feature: "autofdo"
+ }
+ requires {
+ feature: "fdo_optimize"
+ }
+ requires {
+ feature: "fdo_instrument"
+ }
+ }
+ feature {
name: "coverage"
+ }
+ feature {
+ name: "llvm_coverage_map_format"
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: "-fprofile-instr-generate"
flag: "-fcoverage-mapping"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-instr-generate"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ }
+ feature {
+ name: "gcc_coverage_map_format"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
}
}
flag_set {
@@ -4421,10 +5058,12 @@
action: "c++-link-dynamic-library"
action: "c++-link-executable"
flag_group {
- flag: "-fprofile-instr-generate"
+ flag: "-lgcov"
}
}
- provides: "profile"
+ requires {
+ feature: "coverage"
+ }
}
feature {
name: "apply_default_compiler_flags"
@@ -4618,41 +5257,6 @@
}
}
feature {
- name: "run_coverage"
- }
- feature {
- name: "llvm_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-instr-generate"
- flag: "-fcoverage-mapping"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
- name: "gcc_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-arcs"
- flag: "-ftest-coverage"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -5245,6 +5849,9 @@
name: "fastbuild"
}
feature {
+ name: "no_legacy_features"
+ }
+ feature {
name: "opt"
}
feature {
@@ -5673,6 +6280,94 @@
}
}
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: "clif-match"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-iquote"
+ flag: "%{quote_include_paths}"
+ iterate_over: "quote_include_paths"
+ }
+ flag_group {
+ flag: "-I%{include_paths}"
+ iterate_over: "include_paths"
+ }
+ flag_group {
+ flag: "-isystem"
+ flag: "%{system_include_paths}"
+ iterate_over: "system_include_paths"
+ }
+ }
+ }
+ feature {
+ name: "dependency_file"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c++-header-preprocessing"
+ action: "c++-header-parsing"
+ flag_group {
+ flag: "-MD"
+ flag: "-MF"
+ flag: "%{dependency_file}"
+ }
+ expand_if_all_available: "dependency_file"
+ }
+ }
+ feature {
+ name: "random_seed"
+ flag_set {
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-frandom-seed=%{output_file}"
+ }
+ }
+ }
+ feature {
+ name: "pic"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-fPIC"
+ }
+ expand_if_all_available: "pic"
+ }
+ }
+ feature {
+ name: "per_object_debug_info"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "lto-backend"
+ flag_group {
+ flag: "-gsplit-dwarf"
+ }
+ expand_if_all_available: "per_object_debug_info_file"
+ }
+ }
+ feature {
name: "preprocessor_defines"
flag_set {
action: "preprocess-assemble"
@@ -5701,19 +6396,112 @@
}
}
feature {
+ name: "fdo_instrument"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-fprofile-generate=%{fdo_instrument_path}"
+ flag: "-fno-data-sections"
+ }
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "fdo_optimize"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fprofile-use=%{fdo_profile_path}"
+ flag: "-Xclang-only=-Wno-profile-instr-unprofiled"
+ flag: "-Xclang-only=-Wno-profile-instr-out-of-date"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "autofdo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fauto-profile=%{fdo_profile_path}"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "lipo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fripa"
+ }
+ }
+ requires {
+ feature: "autofdo"
+ }
+ requires {
+ feature: "fdo_optimize"
+ }
+ requires {
+ feature: "fdo_instrument"
+ }
+ }
+ feature {
name: "coverage"
+ }
+ feature {
+ name: "llvm_coverage_map_format"
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: "-fprofile-instr-generate"
flag: "-fcoverage-mapping"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-instr-generate"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ }
+ feature {
+ name: "gcc_coverage_map_format"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
}
}
flag_set {
@@ -5721,10 +6509,12 @@
action: "c++-link-dynamic-library"
action: "c++-link-executable"
flag_group {
- flag: "-fprofile-instr-generate"
+ flag: "-lgcov"
}
}
- provides: "profile"
+ requires {
+ feature: "coverage"
+ }
}
feature {
name: "apply_default_compiler_flags"
@@ -5918,41 +6708,6 @@
}
}
feature {
- name: "run_coverage"
- }
- feature {
- name: "llvm_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-instr-generate"
- flag: "-fcoverage-mapping"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
- name: "gcc_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-arcs"
- flag: "-ftest-coverage"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -6507,6 +7262,9 @@
name: "fastbuild"
}
feature {
+ name: "no_legacy_features"
+ }
+ feature {
name: "opt"
}
feature {
@@ -6935,6 +7693,94 @@
}
}
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: "clif-match"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-iquote"
+ flag: "%{quote_include_paths}"
+ iterate_over: "quote_include_paths"
+ }
+ flag_group {
+ flag: "-I%{include_paths}"
+ iterate_over: "include_paths"
+ }
+ flag_group {
+ flag: "-isystem"
+ flag: "%{system_include_paths}"
+ iterate_over: "system_include_paths"
+ }
+ }
+ }
+ feature {
+ name: "dependency_file"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c++-header-preprocessing"
+ action: "c++-header-parsing"
+ flag_group {
+ flag: "-MD"
+ flag: "-MF"
+ flag: "%{dependency_file}"
+ }
+ expand_if_all_available: "dependency_file"
+ }
+ }
+ feature {
+ name: "random_seed"
+ flag_set {
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-frandom-seed=%{output_file}"
+ }
+ }
+ }
+ feature {
+ name: "pic"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-fPIC"
+ }
+ expand_if_all_available: "pic"
+ }
+ }
+ feature {
+ name: "per_object_debug_info"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "lto-backend"
+ flag_group {
+ flag: "-gsplit-dwarf"
+ }
+ expand_if_all_available: "per_object_debug_info_file"
+ }
+ }
+ feature {
name: "preprocessor_defines"
flag_set {
action: "preprocess-assemble"
@@ -6963,19 +7809,112 @@
}
}
feature {
+ name: "fdo_instrument"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-fprofile-generate=%{fdo_instrument_path}"
+ flag: "-fno-data-sections"
+ }
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "fdo_optimize"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fprofile-use=%{fdo_profile_path}"
+ flag: "-Xclang-only=-Wno-profile-instr-unprofiled"
+ flag: "-Xclang-only=-Wno-profile-instr-out-of-date"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "autofdo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fauto-profile=%{fdo_profile_path}"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "lipo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fripa"
+ }
+ }
+ requires {
+ feature: "autofdo"
+ }
+ requires {
+ feature: "fdo_optimize"
+ }
+ requires {
+ feature: "fdo_instrument"
+ }
+ }
+ feature {
name: "coverage"
+ }
+ feature {
+ name: "llvm_coverage_map_format"
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: "-fprofile-instr-generate"
flag: "-fcoverage-mapping"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-instr-generate"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ }
+ feature {
+ name: "gcc_coverage_map_format"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
}
}
flag_set {
@@ -6983,10 +7922,12 @@
action: "c++-link-dynamic-library"
action: "c++-link-executable"
flag_group {
- flag: "-fprofile-instr-generate"
+ flag: "-lgcov"
}
}
- provides: "profile"
+ requires {
+ feature: "coverage"
+ }
}
feature {
name: "apply_default_compiler_flags"
@@ -7180,41 +8121,6 @@
}
}
feature {
- name: "run_coverage"
- }
- feature {
- name: "llvm_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-instr-generate"
- flag: "-fcoverage-mapping"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
- name: "gcc_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-arcs"
- flag: "-ftest-coverage"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -7754,6 +8660,9 @@
name: "fastbuild"
}
feature {
+ name: "no_legacy_features"
+ }
+ feature {
name: "opt"
}
feature {
@@ -8182,6 +9091,94 @@
}
}
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: "clif-match"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-iquote"
+ flag: "%{quote_include_paths}"
+ iterate_over: "quote_include_paths"
+ }
+ flag_group {
+ flag: "-I%{include_paths}"
+ iterate_over: "include_paths"
+ }
+ flag_group {
+ flag: "-isystem"
+ flag: "%{system_include_paths}"
+ iterate_over: "system_include_paths"
+ }
+ }
+ }
+ feature {
+ name: "dependency_file"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c++-header-preprocessing"
+ action: "c++-header-parsing"
+ flag_group {
+ flag: "-MD"
+ flag: "-MF"
+ flag: "%{dependency_file}"
+ }
+ expand_if_all_available: "dependency_file"
+ }
+ }
+ feature {
+ name: "random_seed"
+ flag_set {
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-frandom-seed=%{output_file}"
+ }
+ }
+ }
+ feature {
+ name: "pic"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-fPIC"
+ }
+ expand_if_all_available: "pic"
+ }
+ }
+ feature {
+ name: "per_object_debug_info"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "lto-backend"
+ flag_group {
+ flag: "-gsplit-dwarf"
+ }
+ expand_if_all_available: "per_object_debug_info_file"
+ }
+ }
+ feature {
name: "preprocessor_defines"
flag_set {
action: "preprocess-assemble"
@@ -8210,19 +9207,112 @@
}
}
feature {
+ name: "fdo_instrument"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-fprofile-generate=%{fdo_instrument_path}"
+ flag: "-fno-data-sections"
+ }
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "fdo_optimize"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fprofile-use=%{fdo_profile_path}"
+ flag: "-Xclang-only=-Wno-profile-instr-unprofiled"
+ flag: "-Xclang-only=-Wno-profile-instr-out-of-date"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "autofdo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fauto-profile=%{fdo_profile_path}"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "lipo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fripa"
+ }
+ }
+ requires {
+ feature: "autofdo"
+ }
+ requires {
+ feature: "fdo_optimize"
+ }
+ requires {
+ feature: "fdo_instrument"
+ }
+ }
+ feature {
name: "coverage"
+ }
+ feature {
+ name: "llvm_coverage_map_format"
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: "-fprofile-instr-generate"
flag: "-fcoverage-mapping"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-instr-generate"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ }
+ feature {
+ name: "gcc_coverage_map_format"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
}
}
flag_set {
@@ -8230,10 +9320,12 @@
action: "c++-link-dynamic-library"
action: "c++-link-executable"
flag_group {
- flag: "-fprofile-instr-generate"
+ flag: "-lgcov"
}
}
- provides: "profile"
+ requires {
+ feature: "coverage"
+ }
}
feature {
name: "apply_default_compiler_flags"
@@ -8429,41 +9521,6 @@
}
}
feature {
- name: "run_coverage"
- }
- feature {
- name: "llvm_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-instr-generate"
- flag: "-fcoverage-mapping"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
- name: "gcc_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-arcs"
- flag: "-ftest-coverage"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -9004,6 +10061,9 @@
name: "fastbuild"
}
feature {
+ name: "no_legacy_features"
+ }
+ feature {
name: "opt"
}
feature {
@@ -9432,6 +10492,94 @@
}
}
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: "clif-match"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-iquote"
+ flag: "%{quote_include_paths}"
+ iterate_over: "quote_include_paths"
+ }
+ flag_group {
+ flag: "-I%{include_paths}"
+ iterate_over: "include_paths"
+ }
+ flag_group {
+ flag: "-isystem"
+ flag: "%{system_include_paths}"
+ iterate_over: "system_include_paths"
+ }
+ }
+ }
+ feature {
+ name: "dependency_file"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c++-header-preprocessing"
+ action: "c++-header-parsing"
+ flag_group {
+ flag: "-MD"
+ flag: "-MF"
+ flag: "%{dependency_file}"
+ }
+ expand_if_all_available: "dependency_file"
+ }
+ }
+ feature {
+ name: "random_seed"
+ flag_set {
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-frandom-seed=%{output_file}"
+ }
+ }
+ }
+ feature {
+ name: "pic"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-fPIC"
+ }
+ expand_if_all_available: "pic"
+ }
+ }
+ feature {
+ name: "per_object_debug_info"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "lto-backend"
+ flag_group {
+ flag: "-gsplit-dwarf"
+ }
+ expand_if_all_available: "per_object_debug_info_file"
+ }
+ }
+ feature {
name: "preprocessor_defines"
flag_set {
action: "preprocess-assemble"
@@ -9460,19 +10608,112 @@
}
}
feature {
+ name: "fdo_instrument"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-fprofile-generate=%{fdo_instrument_path}"
+ flag: "-fno-data-sections"
+ }
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "fdo_optimize"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fprofile-use=%{fdo_profile_path}"
+ flag: "-Xclang-only=-Wno-profile-instr-unprofiled"
+ flag: "-Xclang-only=-Wno-profile-instr-out-of-date"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "autofdo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fauto-profile=%{fdo_profile_path}"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "lipo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fripa"
+ }
+ }
+ requires {
+ feature: "autofdo"
+ }
+ requires {
+ feature: "fdo_optimize"
+ }
+ requires {
+ feature: "fdo_instrument"
+ }
+ }
+ feature {
name: "coverage"
+ }
+ feature {
+ name: "llvm_coverage_map_format"
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: "-fprofile-instr-generate"
flag: "-fcoverage-mapping"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-instr-generate"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ }
+ feature {
+ name: "gcc_coverage_map_format"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
}
}
flag_set {
@@ -9480,10 +10721,12 @@
action: "c++-link-dynamic-library"
action: "c++-link-executable"
flag_group {
- flag: "-fprofile-instr-generate"
+ flag: "-lgcov"
}
}
- provides: "profile"
+ requires {
+ feature: "coverage"
+ }
}
feature {
name: "apply_default_compiler_flags"
@@ -9677,41 +10920,6 @@
}
}
feature {
- name: "run_coverage"
- }
- feature {
- name: "llvm_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-instr-generate"
- flag: "-fcoverage-mapping"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
- name: "gcc_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-arcs"
- flag: "-ftest-coverage"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -10289,6 +11497,9 @@
name: "fastbuild"
}
feature {
+ name: "no_legacy_features"
+ }
+ feature {
name: "opt"
}
feature {
@@ -10717,6 +11928,94 @@
}
}
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: "clif-match"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-iquote"
+ flag: "%{quote_include_paths}"
+ iterate_over: "quote_include_paths"
+ }
+ flag_group {
+ flag: "-I%{include_paths}"
+ iterate_over: "include_paths"
+ }
+ flag_group {
+ flag: "-isystem"
+ flag: "%{system_include_paths}"
+ iterate_over: "system_include_paths"
+ }
+ }
+ }
+ feature {
+ name: "dependency_file"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c++-header-preprocessing"
+ action: "c++-header-parsing"
+ flag_group {
+ flag: "-MD"
+ flag: "-MF"
+ flag: "%{dependency_file}"
+ }
+ expand_if_all_available: "dependency_file"
+ }
+ }
+ feature {
+ name: "random_seed"
+ flag_set {
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-frandom-seed=%{output_file}"
+ }
+ }
+ }
+ feature {
+ name: "pic"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-fPIC"
+ }
+ expand_if_all_available: "pic"
+ }
+ }
+ feature {
+ name: "per_object_debug_info"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "lto-backend"
+ flag_group {
+ flag: "-gsplit-dwarf"
+ }
+ expand_if_all_available: "per_object_debug_info_file"
+ }
+ }
+ feature {
name: "preprocessor_defines"
flag_set {
action: "preprocess-assemble"
@@ -10745,19 +12044,112 @@
}
}
feature {
+ name: "fdo_instrument"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-fprofile-generate=%{fdo_instrument_path}"
+ flag: "-fno-data-sections"
+ }
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "fdo_optimize"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fprofile-use=%{fdo_profile_path}"
+ flag: "-Xclang-only=-Wno-profile-instr-unprofiled"
+ flag: "-Xclang-only=-Wno-profile-instr-out-of-date"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "autofdo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fauto-profile=%{fdo_profile_path}"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "lipo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fripa"
+ }
+ }
+ requires {
+ feature: "autofdo"
+ }
+ requires {
+ feature: "fdo_optimize"
+ }
+ requires {
+ feature: "fdo_instrument"
+ }
+ }
+ feature {
name: "coverage"
+ }
+ feature {
+ name: "llvm_coverage_map_format"
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: "-fprofile-instr-generate"
flag: "-fcoverage-mapping"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-instr-generate"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ }
+ feature {
+ name: "gcc_coverage_map_format"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
}
}
flag_set {
@@ -10765,10 +12157,12 @@
action: "c++-link-dynamic-library"
action: "c++-link-executable"
flag_group {
- flag: "-fprofile-instr-generate"
+ flag: "-lgcov"
}
}
- provides: "profile"
+ requires {
+ feature: "coverage"
+ }
}
feature {
name: "apply_default_compiler_flags"
@@ -10962,41 +12356,6 @@
}
}
feature {
- name: "run_coverage"
- }
- feature {
- name: "llvm_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-instr-generate"
- flag: "-fcoverage-mapping"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
- name: "gcc_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-arcs"
- flag: "-ftest-coverage"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"
@@ -11542,6 +12901,9 @@
name: "fastbuild"
}
feature {
+ name: "no_legacy_features"
+ }
+ feature {
name: "opt"
}
feature {
@@ -11970,6 +13332,94 @@
}
}
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: "clif-match"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-iquote"
+ flag: "%{quote_include_paths}"
+ iterate_over: "quote_include_paths"
+ }
+ flag_group {
+ flag: "-I%{include_paths}"
+ iterate_over: "include_paths"
+ }
+ flag_group {
+ flag: "-isystem"
+ flag: "%{system_include_paths}"
+ iterate_over: "system_include_paths"
+ }
+ }
+ }
+ feature {
+ name: "dependency_file"
+ flag_set {
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c++-header-preprocessing"
+ action: "c++-header-parsing"
+ flag_group {
+ flag: "-MD"
+ flag: "-MF"
+ flag: "%{dependency_file}"
+ }
+ expand_if_all_available: "dependency_file"
+ }
+ }
+ feature {
+ name: "random_seed"
+ flag_set {
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ flag_group {
+ flag: "-frandom-seed=%{output_file}"
+ }
+ }
+ }
+ feature {
+ name: "pic"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "c++-module-compile"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-fPIC"
+ }
+ expand_if_all_available: "pic"
+ }
+ }
+ feature {
+ name: "per_object_debug_info"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-codegen"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "lto-backend"
+ flag_group {
+ flag: "-gsplit-dwarf"
+ }
+ expand_if_all_available: "per_object_debug_info_file"
+ }
+ }
+ feature {
name: "preprocessor_defines"
flag_set {
action: "preprocess-assemble"
@@ -11998,19 +13448,112 @@
}
}
feature {
+ name: "fdo_instrument"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-fprofile-generate=%{fdo_instrument_path}"
+ flag: "-fno-data-sections"
+ }
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "fdo_optimize"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fprofile-use=%{fdo_profile_path}"
+ flag: "-Xclang-only=-Wno-profile-instr-unprofiled"
+ flag: "-Xclang-only=-Wno-profile-instr-out-of-date"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "autofdo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fauto-profile=%{fdo_profile_path}"
+ flag: "-fprofile-correction"
+ }
+ expand_if_all_available: "fdo_profile_path"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "lipo"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-fripa"
+ }
+ }
+ requires {
+ feature: "autofdo"
+ }
+ requires {
+ feature: "fdo_optimize"
+ }
+ requires {
+ feature: "fdo_instrument"
+ }
+ }
+ feature {
name: "coverage"
+ }
+ feature {
+ name: "llvm_coverage_map_format"
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: "-fprofile-instr-generate"
flag: "-fcoverage-mapping"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-instr-generate"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ }
+ feature {
+ name: "gcc_coverage_map_format"
+ flag_set {
+ action: "preprocess-assemble"
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
}
}
flag_set {
@@ -12018,10 +13561,12 @@
action: "c++-link-dynamic-library"
action: "c++-link-executable"
flag_group {
- flag: "-fprofile-instr-generate"
+ flag: "-lgcov"
}
}
- provides: "profile"
+ requires {
+ feature: "coverage"
+ }
}
feature {
name: "apply_default_compiler_flags"
@@ -12215,41 +13760,6 @@
}
}
feature {
- name: "run_coverage"
- }
- feature {
- name: "llvm_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-instr-generate"
- flag: "-fcoverage-mapping"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
- name: "gcc_coverage_map_format"
- flag_set {
- action: "c-compile"
- action: "c++-compile"
- action: "objc-compile"
- action: "objc++-compile"
- flag_group {
- flag: "-fprofile-arcs"
- flag: "-ftest-coverage"
- }
- }
- requires {
- feature: "run_coverage"
- }
- }
- feature {
name: "apply_implicit_frameworks"
flag_set {
action: "objc-executable"