aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/packages
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/packages')
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL15789
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/util/MockJ2ObjcSupport.java101
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/util/MockObjcSupport.java300
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java202
4 files changed, 16392 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL b/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL
new file mode 100644
index 0000000000..b624413c80
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL
@@ -0,0 +1,15789 @@
+
+# This file was generated by generate_crosstool.py and any changes
+# made here will be overwritten the next time it's run. To
+# implement persistent changes, edit
+# MOCK_OSX_CROSSTOOL_generator.textpb
+# (for settings that affect many toolchains) or
+# MOCK_OSX_CROSSTOOL_template.textpb
+# (for settings that affect specific toolchains)
+# and rerun the update script.
+
+
+
+major_version: "1"
+minor_version: "0"
+default_target_cpu: "ios_x86_64"
+default_toolchain {
+ cpu: "darwin"
+ toolchain_identifier: "darwin_x86_64"
+}
+default_toolchain {
+ cpu: "darwin_x86_64"
+ toolchain_identifier: "darwin_x86_64"
+}
+default_toolchain {
+ cpu: "k8"
+ toolchain_identifier: "darwin_x86_64"
+}
+default_toolchain {
+ cpu: "ios_x86_64"
+ toolchain_identifier: "ios_x86_64"
+}
+default_toolchain {
+ cpu: "ios_i386"
+ toolchain_identifier: "ios_i386"
+}
+default_toolchain {
+ cpu: "ios_armv7"
+ toolchain_identifier: "ios_armv7"
+}
+default_toolchain {
+ cpu: "ios_arm64"
+ toolchain_identifier: "ios_arm64"
+}
+default_toolchain {
+ cpu: "watchos_i386"
+ toolchain_identifier: "watchos_i386"
+}
+default_toolchain {
+ cpu: "watchos_armv7k"
+ toolchain_identifier: "watchos_armv7k"
+}
+default_toolchain {
+ cpu: "tvos_x86_64"
+ toolchain_identifier: "tvos_x86_64"
+}
+default_toolchain {
+ cpu: "tvos_arm64"
+ toolchain_identifier: "tvos_arm64"
+}
+toolchain {
+ toolchain_identifier: "darwin_x86_64"
+ host_system_name: "x86_64-apple-macosx"
+ target_system_name: "x86_64-apple-macosx"
+ target_cpu: "darwin_x86_64"
+ target_libc: "macosx"
+ compiler: "compiler"
+ abi_version: "darwin_x86_64"
+ abi_libc_version: "darwin_x86_64"
+ tool_path {
+ name: "ar"
+ path: "mac/ar_wrapper"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "mac/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "mac/cpp"
+ }
+ tool_path {
+ name: "gcov"
+ path: "mac/gcov"
+ }
+ tool_path {
+ name: "gcc"
+ path: "mac/clang"
+ }
+ tool_path {
+ name: "ld"
+ path: "mac/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "mac/nm"
+ }
+ tool_path {
+ name: "strip"
+ path: "mac/strip"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ needsPic: false
+ compiler_flag: "-DCOMPILER_GCC3"
+ compiler_flag: "-DCOMPILER_GCC4"
+ compiler_flag: "-Dunix"
+ compiler_flag: "-DOS_MACOSX"
+ compiler_flag: "-DU_HAVE_NL_LANGINFO_CODESET=0"
+ compiler_flag: "-DU_HAVE_STD_STRING"
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ cxx_flag: "-std=gnu++11"
+ cxx_flag: "-stdlib=libc++"
+ linker_flag: "-lc++"
+ compilation_mode_flags {
+ mode: FASTBUILD
+ compiler_flag: "-O0"
+ compiler_flag: "-DDEBUG"
+ }
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-Os"
+ compiler_flag: "-DNDEBUG"
+ }
+ compilation_mode_flags {
+ mode: DBG
+ compiler_flag: "-g"
+ compiler_flag: "-DDEBUG"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ make_variable {
+ name: "STACK_FRAME_UNLIMITED"
+ value: "-Wframe-larger-than=100000000 -Wno-vla"
+ }
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/usr/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-pthread"
+ supports_normalizing_ar: false
+ default_python_version: "python2.7"
+ feature {
+ name: "no_legacy_features"
+ }
+ feature {
+ name: "fastbuild"
+ implies: "fastbuild_only_flag"
+ }
+ feature {
+ name: "opt"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g0"
+ }
+ with_feature {
+ feature: "no_generate_debug_symbols"
+ }
+ }
+ implies: "opt_only_flag"
+ }
+ feature {
+ name: "dbg"
+ implies: "dbg_only_flag"
+ }
+ feature {
+ name: "compile_all_modules"
+ }
+ feature {
+ name: "exclude_private_headers_in_module_maps"
+ }
+ feature {
+ name: "has_configured_linker_path"
+ }
+ feature {
+ name: "only_doth_headers_in_module_maps"
+ }
+ feature {
+ name: "is_not_test_target"
+ }
+ feature {
+ name: "generate_dsym_file"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "DSYM_HINT_LINKED_BINARY=%{linked_binary}"
+ flag: "DSYM_HINT_DSYM_PATH=%{dsym_path}"
+ flag: "DSYM_HINT_DSYM_BUNDLE_ZIP=%{dsym_bundle_zip}"
+ }
+ }
+ }
+ feature {
+ name: "no_generate_debug_symbols"
+ }
+ feature {
+ name: "generate_linkmap"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker -map"
+ flag: "-Xlinker %{linkmap_exec_path}"
+ }
+ }
+ }
+ feature {
+ name: "objc_actions"
+ implies: "objc-compile"
+ implies: "objc++-compile"
+ implies: "objc-fully-link"
+ implies: "objc-archive"
+ implies: "objc-executable"
+ implies: "objc++-executable"
+ implies: "assemble"
+ implies: "preprocess-assemble"
+ implies: "c-compile"
+ implies: "c++-compile"
+ implies: "c++-link-static-library"
+ implies: "c++-link-pic-static-library"
+ implies: "c++-link-interface-dynamic-library"
+ implies: "c++-link-dynamic-library"
+ implies: "c++-link-alwayslink-static-library"
+ implies: "c++-link-alwayslink-pic-static-library"
+ implies: "c++-link-executable"
+ }
+ feature {
+ name: "strip_debug_symbols"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-interface-dynamic-library"
+ flag_group {
+ flag: "-Wl,-S"
+ expand_if_all_available: "strip_debug_symbols"
+ }
+ }
+ }
+ feature {
+ name: "symbol_counts"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}"
+ }
+ expand_if_all_available: "symbol_counts_output"
+ }
+ }
+ feature {
+ name: "shared_flag"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-shared"
+ }
+ }
+ }
+ feature {
+ name: "linkstamps"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "%{linkstamp_paths}"
+ iterate_over: "linkstamp_paths"
+ }
+ expand_if_all_available: "linkstamp_paths"
+ }
+ }
+ feature {
+ name: "output_execpath_flags"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-o"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "output_execpath_flags_executable"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-o"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "/dev/null"
+ flag: "-MMD"
+ flag: "-MF"
+ }
+ expand_if_all_available: "skip_mostly_static"
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "global_whole_archive_open"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-all_load"
+ }
+ expand_if_all_available: "global_whole_archive"
+ }
+ }
+ feature {
+ name: "runtime_root_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ iterate_over: "runtime_library_search_directories"
+ }
+ expand_if_all_available: "runtime_library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_flags}"
+ iterate_over: "runtime_root_flags"
+ }
+ expand_if_all_available: "runtime_root_flags"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_entries}"
+ iterate_over: "runtime_root_entries"
+ }
+ expand_if_all_available: "runtime_root_entries"
+ }
+ }
+ feature {
+ name: "archiver_flags"
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "rcs"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "input_param_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-L%{library_search_directories}"
+ iterate_over: "library_search_directories"
+ }
+ expand_if_all_available: "library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{libopts}"
+ iterate_over: "libopts"
+ }
+ expand_if_all_available: "libopts"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-force_load,%{whole_archive_linker_params}"
+ iterate_over: "whole_archive_linker_params"
+ }
+ expand_if_all_available: "whole_archive_linker_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{linker_input_params}"
+ iterate_over: "linker_input_params"
+ }
+ expand_if_all_available: "linker_input_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag_group {
+ flag: "-Wl,--start-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.object_files}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.object_files}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ iterate_over: "libraries_to_link.object_files"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag: "-Wl,--end-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "interface_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "static_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "dynamic_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l:%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l:%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "versioned_dynamic_library"
+ }
+ }
+ iterate_over: "libraries_to_link"
+ }
+ expand_if_all_available: "libraries_to_link"
+ }
+ }
+ feature {
+ name: "force_pic_flags"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ expand_if_all_available: "force_pic"
+ }
+ }
+ feature {
+ name: "pch"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-include"
+ flag: "%{pch_file}"
+ }
+ }
+ }
+ feature {
+ name: "module_maps"
+ }
+ feature {
+ name: "use_objc_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-name=%{module_name}"
+ flag: "-iquote"
+ flag: "%{module_maps_dir}"
+ flag: "-fmodules-cache-path=%{modules_cache_path}"
+ }
+ }
+ }
+ feature {
+ name: "no_enable_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-maps"
+ }
+ }
+ requires {
+ feature: "use_objc_modules"
+ }
+ }
+ feature {
+ name: "apply_default_warnings"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-Wshorten-64-to-32"
+ flag: "-Wbool-conversion"
+ flag: "-Wconstant-conversion"
+ flag: "-Wduplicate-method-match"
+ flag: "-Wempty-body"
+ flag: "-Wenum-conversion"
+ flag: "-Wint-conversion"
+ flag: "-Wunreachable-code"
+ flag: "-Wmismatched-return-types"
+ flag: "-Wundeclared-selector"
+ flag: "-Wuninitialized"
+ flag: "-Wunused-function"
+ flag: "-Wunused-variable"
+ }
+ }
+ }
+ feature {
+ name: "preprocessor_defines"
+ 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: "-D%{preprocessor_defines}"
+ iterate_over: "preprocessor_defines"
+ }
+ }
+ }
+ feature {
+ name: "framework_paths"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-F%{framework_paths}"
+ iterate_over: "framework_paths"
+ }
+ }
+ }
+ feature {
+ name: "apply_default_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-DOS_MACOSX"
+ }
+ }
+ }
+ feature {
+ name: "include_system_dirs"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-isysroot"
+ flag: "%{sdk_dir}"
+ }
+ }
+ }
+ feature {
+ name: "objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fobjc-arc"
+ }
+ expand_if_all_available: "objc_arc"
+ }
+ }
+ feature {
+ name: "no_objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fno-objc-arc"
+ }
+ expand_if_all_available: "no_objc_arc"
+ }
+ }
+ feature {
+ name: "apple_env"
+ env_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-archive"
+ action: "objc-fully-link"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ env_entry {
+ key: "XCODE_VERSION_OVERRIDE"
+ value: "%{xcode_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_VERSION_OVERRIDE"
+ value: "%{apple_sdk_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_PLATFORM"
+ value: "%{apple_sdk_platform_value}"
+ }
+ }
+ }
+ feature {
+ name: "legacy_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "%{legacy_link_flags}"
+ iterate_over: "legacy_link_flags"
+ }
+ expand_if_all_available: "legacy_link_flags"
+ }
+ }
+ feature {
+ name: "linker_param_file"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ }
+ feature {
+ name: "version_min"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ 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: "-mmacosx-version-min=%{version_min}"
+ }
+ }
+ }
+ feature {
+ name: "dead_strip"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-dead_strip"
+ flag: "-no_dead_strip_inits_and_terms"
+ }
+ with_feature {
+ feature: "is_not_test_target"
+ }
+ }
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ requires {
+ feature: "opt"
+ }
+ }
+ 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: "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: "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: "asan"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-O1"
+ flag: "-gmlt"
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fno-sanitize-recover=all"
+ flag: "-DHEAPCHECK_DISABLE"
+ flag: "-DADDRESS_SANITIZER"
+ flag: "-D_GLIBCXX_ADDRESS_SANITIZER_ANNOTATIONS"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fsanitize-link-c++-runtime"
+ }
+ }
+ }
+ feature {
+ name: "coverage"
+ }
+ feature {
+ name: "llvm_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-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"
+ }
+ provides: "profile"
+ }
+ 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"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-lgcov"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "apply_implicit_frameworks"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Foundation"
+ }
+ }
+ }
+ feature {
+ name: "link_cocoa"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Cocoa"
+ }
+ }
+ }
+ feature {
+ name: "cpp_linker_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ }
+ }
+ }
+ feature {
+ name: "dbg_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--DBG_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "fastbuild_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--FASTBUILD_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "opt_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--OPT_ONLY_FLAG"
+ }
+ }
+ }
+ action_config {
+ config_name: "c-compile"
+ action_name: "c-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-compile"
+ action_name: "c++-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-module-compile"
+ action_name: "c++-module-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-parsing"
+ action_name: "c++-header-parsing"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-preprocessing"
+ action_name: "c++-header-preprocessing"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-compile"
+ action_name: "objc-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "objc_actions"
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc++-compile"
+ action_name: "objc++-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ }
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "assemble"
+ action_name: "assemble"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "include_system_dirs"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "preprocess-assemble"
+ action_name: "preprocess-assemble"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-archive"
+ action_name: "objc-archive"
+ tool {
+ tool_path: "mac/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-filelist"
+ flag: "%{obj_list_path}"
+ flag: "-arch_only"
+ flag: "x86_64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{archive_path}"
+ }
+ }
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-executable"
+ action_name: "objc-executable"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "objc++-executable"
+ action_name: "objc++-executable"
+ tool {
+ tool_path: "mac/wrapped_clang++"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "c++-link-executable"
+ action_name: "c++-link-executable"
+ tool {
+ tool_path: "mac/clang"
+ }
+ implies: "symbol_counts"
+ implies: "linkstamps"
+ implies: "output_execpath_flags_executable"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "force_pic_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-dynamic-library"
+ action_name: "c++-link-dynamic-library"
+ tool {
+ tool_path: "mac/clang"
+ }
+ implies: "has_configured_linker_path"
+ implies: "symbol_counts"
+ implies: "shared_flag"
+ implies: "linkstamps"
+ implies: "output_execpath_flags"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-static-library"
+ action_name: "c++-link-static-library"
+ tool {
+ tool_path: "mac/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-static-library"
+ action_name: "c++-link-alwayslink-static-library"
+ tool {
+ tool_path: "mac/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-pic-static-library"
+ action_name: "c++-link-pic-static-library"
+ tool {
+ tool_path: "mac/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-pic-static-library"
+ action_name: "c++-link-alwayslink-pic-static-library"
+ tool {
+ tool_path: "mac/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-interface-dynamic-library"
+ action_name: "c++-link-interface-dynamic-library"
+ tool {
+ tool_path: "mac/clang"
+ }
+ implies: "strip_debug_symbols"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-fully-link"
+ action_name: "objc-fully-link"
+ tool {
+ tool_path: "mac/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-arch_only"
+ flag: "x86_64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{fully_linked_archive_path}"
+ }
+ flag_group {
+ flag: "%{objc_library_exec_paths}"
+ iterate_over: "objc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{cc_library_exec_paths}"
+ iterate_over: "cc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{imported_library_exec_paths}"
+ iterate_over: "imported_library_exec_paths"
+ }
+ }
+ implies: "apple_env"
+ }
+ cc_target_os: "apple"
+}
+toolchain {
+ toolchain_identifier: "darwin_x86_64"
+ host_system_name: "x86_64-apple-macosx"
+ target_system_name: "x86_64-apple-macosx"
+ target_cpu: "k8"
+ target_libc: "macosx"
+ compiler: "compiler"
+ abi_version: "darwin_x86_64"
+ abi_libc_version: "darwin_x86_64"
+ tool_path {
+ name: "ar"
+ path: "mac/ar_wrapper"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "mac/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "mac/cpp"
+ }
+ tool_path {
+ name: "gcov"
+ path: "mac/gcov"
+ }
+ tool_path {
+ name: "gcc"
+ path: "mac/clang"
+ }
+ tool_path {
+ name: "ld"
+ path: "mac/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "mac/nm"
+ }
+ tool_path {
+ name: "strip"
+ path: "mac/strip"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ needsPic: false
+ compiler_flag: "-DCOMPILER_GCC3"
+ compiler_flag: "-DCOMPILER_GCC4"
+ compiler_flag: "-Dunix"
+ compiler_flag: "-DOS_MACOSX"
+ compiler_flag: "-DU_HAVE_NL_LANGINFO_CODESET=0"
+ compiler_flag: "-DU_HAVE_STD_STRING"
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ cxx_flag: "-std=gnu++11"
+ cxx_flag: "-stdlib=libc++"
+ linker_flag: "-lc++"
+ compilation_mode_flags {
+ mode: FASTBUILD
+ compiler_flag: "-O0"
+ compiler_flag: "-DDEBUG"
+ }
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-Os"
+ compiler_flag: "-DNDEBUG"
+ }
+ compilation_mode_flags {
+ mode: DBG
+ compiler_flag: "-g"
+ compiler_flag: "-DDEBUG"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ make_variable {
+ name: "STACK_FRAME_UNLIMITED"
+ value: "-Wframe-larger-than=100000000 -Wno-vla"
+ }
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/usr/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-pthread"
+ supports_normalizing_ar: false
+ default_python_version: "python2.7"
+ feature {
+ name: "no_legacy_features"
+ }
+ feature {
+ name: "fastbuild"
+ implies: "fastbuild_only_flag"
+ }
+ feature {
+ name: "opt"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g0"
+ }
+ with_feature {
+ feature: "no_generate_debug_symbols"
+ }
+ }
+ implies: "opt_only_flag"
+ }
+ feature {
+ name: "dbg"
+ implies: "dbg_only_flag"
+ }
+ feature {
+ name: "compile_all_modules"
+ }
+ feature {
+ name: "exclude_private_headers_in_module_maps"
+ }
+ feature {
+ name: "has_configured_linker_path"
+ }
+ feature {
+ name: "only_doth_headers_in_module_maps"
+ }
+ feature {
+ name: "is_not_test_target"
+ }
+ feature {
+ name: "generate_dsym_file"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "DSYM_HINT_LINKED_BINARY=%{linked_binary}"
+ flag: "DSYM_HINT_DSYM_PATH=%{dsym_path}"
+ flag: "DSYM_HINT_DSYM_BUNDLE_ZIP=%{dsym_bundle_zip}"
+ }
+ }
+ }
+ feature {
+ name: "no_generate_debug_symbols"
+ }
+ feature {
+ name: "generate_linkmap"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker -map"
+ flag: "-Xlinker %{linkmap_exec_path}"
+ }
+ }
+ }
+ feature {
+ name: "objc_actions"
+ implies: "objc-compile"
+ implies: "objc++-compile"
+ implies: "objc-fully-link"
+ implies: "objc-archive"
+ implies: "objc-executable"
+ implies: "objc++-executable"
+ implies: "assemble"
+ implies: "preprocess-assemble"
+ implies: "c-compile"
+ implies: "c++-compile"
+ implies: "c++-link-static-library"
+ implies: "c++-link-pic-static-library"
+ implies: "c++-link-interface-dynamic-library"
+ implies: "c++-link-dynamic-library"
+ implies: "c++-link-alwayslink-static-library"
+ implies: "c++-link-alwayslink-pic-static-library"
+ implies: "c++-link-executable"
+ }
+ feature {
+ name: "strip_debug_symbols"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-interface-dynamic-library"
+ flag_group {
+ flag: "-Wl,-S"
+ expand_if_all_available: "strip_debug_symbols"
+ }
+ }
+ }
+ feature {
+ name: "symbol_counts"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}"
+ }
+ expand_if_all_available: "symbol_counts_output"
+ }
+ }
+ feature {
+ name: "shared_flag"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-shared"
+ }
+ }
+ }
+ feature {
+ name: "linkstamps"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "%{linkstamp_paths}"
+ iterate_over: "linkstamp_paths"
+ }
+ expand_if_all_available: "linkstamp_paths"
+ }
+ }
+ feature {
+ name: "output_execpath_flags"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-o"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "output_execpath_flags_executable"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-o"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "/dev/null"
+ flag: "-MMD"
+ flag: "-MF"
+ }
+ expand_if_all_available: "skip_mostly_static"
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "global_whole_archive_open"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-all_load"
+ }
+ expand_if_all_available: "global_whole_archive"
+ }
+ }
+ feature {
+ name: "runtime_root_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ iterate_over: "runtime_library_search_directories"
+ }
+ expand_if_all_available: "runtime_library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_flags}"
+ iterate_over: "runtime_root_flags"
+ }
+ expand_if_all_available: "runtime_root_flags"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_entries}"
+ iterate_over: "runtime_root_entries"
+ }
+ expand_if_all_available: "runtime_root_entries"
+ }
+ }
+ feature {
+ name: "archiver_flags"
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "rcs"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "input_param_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-L%{library_search_directories}"
+ iterate_over: "library_search_directories"
+ }
+ expand_if_all_available: "library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{libopts}"
+ iterate_over: "libopts"
+ }
+ expand_if_all_available: "libopts"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-force_load,%{whole_archive_linker_params}"
+ iterate_over: "whole_archive_linker_params"
+ }
+ expand_if_all_available: "whole_archive_linker_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{linker_input_params}"
+ iterate_over: "linker_input_params"
+ }
+ expand_if_all_available: "linker_input_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag_group {
+ flag: "-Wl,--start-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.object_files}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.object_files}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ iterate_over: "libraries_to_link.object_files"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag: "-Wl,--end-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "interface_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "static_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "dynamic_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l:%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l:%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "versioned_dynamic_library"
+ }
+ }
+ iterate_over: "libraries_to_link"
+ }
+ expand_if_all_available: "libraries_to_link"
+ }
+ }
+ feature {
+ name: "force_pic_flags"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ expand_if_all_available: "force_pic"
+ }
+ }
+ feature {
+ name: "pch"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-include"
+ flag: "%{pch_file}"
+ }
+ }
+ }
+ feature {
+ name: "module_maps"
+ }
+ feature {
+ name: "use_objc_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-name=%{module_name}"
+ flag: "-iquote"
+ flag: "%{module_maps_dir}"
+ flag: "-fmodules-cache-path=%{modules_cache_path}"
+ }
+ }
+ }
+ feature {
+ name: "no_enable_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-maps"
+ }
+ }
+ requires {
+ feature: "use_objc_modules"
+ }
+ }
+ feature {
+ name: "apply_default_warnings"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-Wshorten-64-to-32"
+ flag: "-Wbool-conversion"
+ flag: "-Wconstant-conversion"
+ flag: "-Wduplicate-method-match"
+ flag: "-Wempty-body"
+ flag: "-Wenum-conversion"
+ flag: "-Wint-conversion"
+ flag: "-Wunreachable-code"
+ flag: "-Wmismatched-return-types"
+ flag: "-Wundeclared-selector"
+ flag: "-Wuninitialized"
+ flag: "-Wunused-function"
+ flag: "-Wunused-variable"
+ }
+ }
+ }
+ feature {
+ name: "preprocessor_defines"
+ 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: "-D%{preprocessor_defines}"
+ iterate_over: "preprocessor_defines"
+ }
+ }
+ }
+ feature {
+ name: "framework_paths"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-F%{framework_paths}"
+ iterate_over: "framework_paths"
+ }
+ }
+ }
+ feature {
+ name: "apply_default_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-DOS_MACOSX"
+ }
+ }
+ }
+ feature {
+ name: "include_system_dirs"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-isysroot"
+ flag: "%{sdk_dir}"
+ }
+ }
+ }
+ feature {
+ name: "objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fobjc-arc"
+ }
+ expand_if_all_available: "objc_arc"
+ }
+ }
+ feature {
+ name: "no_objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fno-objc-arc"
+ }
+ expand_if_all_available: "no_objc_arc"
+ }
+ }
+ feature {
+ name: "apple_env"
+ env_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-archive"
+ action: "objc-fully-link"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ env_entry {
+ key: "XCODE_VERSION_OVERRIDE"
+ value: "%{xcode_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_VERSION_OVERRIDE"
+ value: "%{apple_sdk_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_PLATFORM"
+ value: "%{apple_sdk_platform_value}"
+ }
+ }
+ }
+ feature {
+ name: "legacy_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "%{legacy_link_flags}"
+ iterate_over: "legacy_link_flags"
+ }
+ expand_if_all_available: "legacy_link_flags"
+ }
+ }
+ feature {
+ name: "linker_param_file"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ }
+ feature {
+ name: "version_min"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ 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: "-mmacosx-version-min=%{version_min}"
+ }
+ }
+ }
+ feature {
+ name: "dead_strip"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-dead_strip"
+ flag: "-no_dead_strip_inits_and_terms"
+ }
+ with_feature {
+ feature: "is_not_test_target"
+ }
+ }
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ requires {
+ feature: "opt"
+ }
+ }
+ 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: "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: "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: "asan"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-O1"
+ flag: "-gmlt"
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fno-sanitize-recover=all"
+ flag: "-DHEAPCHECK_DISABLE"
+ flag: "-DADDRESS_SANITIZER"
+ flag: "-D_GLIBCXX_ADDRESS_SANITIZER_ANNOTATIONS"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fsanitize-link-c++-runtime"
+ }
+ }
+ }
+ feature {
+ name: "coverage"
+ }
+ feature {
+ name: "llvm_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-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"
+ }
+ provides: "profile"
+ }
+ 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"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-lgcov"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "apply_implicit_frameworks"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Foundation"
+ }
+ }
+ }
+ feature {
+ name: "link_cocoa"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Cocoa"
+ }
+ }
+ }
+ feature {
+ name: "cpp_linker_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ }
+ }
+ }
+ feature {
+ name: "dbg_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--DBG_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "fastbuild_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--FASTBUILD_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "opt_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--OPT_ONLY_FLAG"
+ }
+ }
+ }
+ action_config {
+ config_name: "c-compile"
+ action_name: "c-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-compile"
+ action_name: "c++-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-module-compile"
+ action_name: "c++-module-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-parsing"
+ action_name: "c++-header-parsing"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-preprocessing"
+ action_name: "c++-header-preprocessing"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-compile"
+ action_name: "objc-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "objc_actions"
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc++-compile"
+ action_name: "objc++-compile"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ }
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "assemble"
+ action_name: "assemble"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "include_system_dirs"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "preprocess-assemble"
+ action_name: "preprocess-assemble"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-archive"
+ action_name: "objc-archive"
+ tool {
+ tool_path: "mac/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-filelist"
+ flag: "%{obj_list_path}"
+ flag: "-arch_only"
+ flag: "x86_64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{archive_path}"
+ }
+ }
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-executable"
+ action_name: "objc-executable"
+ tool {
+ tool_path: "mac/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "objc++-executable"
+ action_name: "objc++-executable"
+ tool {
+ tool_path: "mac/wrapped_clang++"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "c++-link-executable"
+ action_name: "c++-link-executable"
+ tool {
+ tool_path: "mac/clang"
+ }
+ implies: "symbol_counts"
+ implies: "linkstamps"
+ implies: "output_execpath_flags_executable"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "force_pic_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-dynamic-library"
+ action_name: "c++-link-dynamic-library"
+ tool {
+ tool_path: "mac/clang"
+ }
+ implies: "has_configured_linker_path"
+ implies: "symbol_counts"
+ implies: "shared_flag"
+ implies: "linkstamps"
+ implies: "output_execpath_flags"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-static-library"
+ action_name: "c++-link-static-library"
+ tool {
+ tool_path: "mac/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-static-library"
+ action_name: "c++-link-alwayslink-static-library"
+ tool {
+ tool_path: "mac/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-pic-static-library"
+ action_name: "c++-link-pic-static-library"
+ tool {
+ tool_path: "mac/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-pic-static-library"
+ action_name: "c++-link-alwayslink-pic-static-library"
+ tool {
+ tool_path: "mac/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-interface-dynamic-library"
+ action_name: "c++-link-interface-dynamic-library"
+ tool {
+ tool_path: "mac/clang"
+ }
+ implies: "strip_debug_symbols"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-fully-link"
+ action_name: "objc-fully-link"
+ tool {
+ tool_path: "mac/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-arch_only"
+ flag: "x86_64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{fully_linked_archive_path}"
+ }
+ flag_group {
+ flag: "%{objc_library_exec_paths}"
+ iterate_over: "objc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{cc_library_exec_paths}"
+ iterate_over: "cc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{imported_library_exec_paths}"
+ iterate_over: "imported_library_exec_paths"
+ }
+ }
+ implies: "apple_env"
+ }
+ cc_target_os: "apple"
+}
+toolchain {
+ toolchain_identifier: "ios_x86_64"
+ host_system_name: "x86_64-apple-macosx"
+ target_system_name: "x86_64-apple-ios"
+ target_cpu: "ios_x86_64"
+ target_libc: "ios"
+ compiler: "compiler"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "iossim/ar_wrapper"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "iossim/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "iossim/cpp"
+ }
+ tool_path {
+ name: "gcov"
+ path: "iossim/gcov"
+ }
+ tool_path {
+ name: "gcc"
+ path: "iossim/clang"
+ }
+ tool_path {
+ name: "ld"
+ path: "iossim/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "iossim/nm"
+ }
+ tool_path {
+ name: "strip"
+ path: "iossim/strip"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ needsPic: false
+ compiler_flag: "-DCOMPILER_GCC3"
+ compiler_flag: "-DCOMPILER_GCC4"
+ compiler_flag: "-Dunix"
+ compiler_flag: "-DOS_IOS"
+ compiler_flag: "-DU_HAVE_NL_LANGINFO_CODESET=0"
+ compiler_flag: "-DU_HAVE_STD_STRING"
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ cxx_flag: "-std=gnu++11"
+ cxx_flag: "-stdlib=libc++"
+ linker_flag: "-lc++"
+ linker_flag: "-target"
+ linker_flag: "x86_64-apple-ios"
+ compilation_mode_flags {
+ mode: FASTBUILD
+ compiler_flag: "-O0"
+ compiler_flag: "-DDEBUG"
+ }
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-Os"
+ compiler_flag: "-DNDEBUG"
+ }
+ compilation_mode_flags {
+ mode: DBG
+ compiler_flag: "-g"
+ compiler_flag: "-DDEBUG"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ make_variable {
+ name: "STACK_FRAME_UNLIMITED"
+ value: "-Wframe-larger-than=100000000 -Wno-vla"
+ }
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/usr/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-pthread"
+ unfiltered_cxx_flag: "-target"
+ unfiltered_cxx_flag: "x86_64-apple-ios"
+ supports_normalizing_ar: false
+ default_python_version: "python2.7"
+ feature {
+ name: "no_legacy_features"
+ }
+ feature {
+ name: "fastbuild"
+ implies: "fastbuild_only_flag"
+ }
+ feature {
+ name: "opt"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g0"
+ }
+ with_feature {
+ feature: "no_generate_debug_symbols"
+ }
+ }
+ implies: "opt_only_flag"
+ }
+ feature {
+ name: "dbg"
+ implies: "dbg_only_flag"
+ }
+ feature {
+ name: "compile_all_modules"
+ }
+ feature {
+ name: "exclude_private_headers_in_module_maps"
+ }
+ feature {
+ name: "has_configured_linker_path"
+ }
+ feature {
+ name: "only_doth_headers_in_module_maps"
+ }
+ feature {
+ name: "is_not_test_target"
+ }
+ feature {
+ name: "generate_dsym_file"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "DSYM_HINT_LINKED_BINARY=%{linked_binary}"
+ flag: "DSYM_HINT_DSYM_PATH=%{dsym_path}"
+ flag: "DSYM_HINT_DSYM_BUNDLE_ZIP=%{dsym_bundle_zip}"
+ }
+ }
+ }
+ feature {
+ name: "no_generate_debug_symbols"
+ }
+ feature {
+ name: "generate_linkmap"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker -map"
+ flag: "-Xlinker %{linkmap_exec_path}"
+ }
+ }
+ }
+ feature {
+ name: "objc_actions"
+ implies: "objc-compile"
+ implies: "objc++-compile"
+ implies: "objc-fully-link"
+ implies: "objc-archive"
+ implies: "objc-executable"
+ implies: "objc++-executable"
+ implies: "assemble"
+ implies: "preprocess-assemble"
+ implies: "c-compile"
+ implies: "c++-compile"
+ implies: "c++-link-static-library"
+ implies: "c++-link-pic-static-library"
+ implies: "c++-link-interface-dynamic-library"
+ implies: "c++-link-dynamic-library"
+ implies: "c++-link-alwayslink-static-library"
+ implies: "c++-link-alwayslink-pic-static-library"
+ implies: "c++-link-executable"
+ }
+ feature {
+ name: "strip_debug_symbols"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-interface-dynamic-library"
+ flag_group {
+ flag: "-Wl,-S"
+ expand_if_all_available: "strip_debug_symbols"
+ }
+ }
+ }
+ feature {
+ name: "symbol_counts"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}"
+ }
+ expand_if_all_available: "symbol_counts_output"
+ }
+ }
+ feature {
+ name: "shared_flag"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-shared"
+ }
+ }
+ }
+ feature {
+ name: "linkstamps"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "%{linkstamp_paths}"
+ iterate_over: "linkstamp_paths"
+ }
+ expand_if_all_available: "linkstamp_paths"
+ }
+ }
+ feature {
+ name: "output_execpath_flags"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-o"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "output_execpath_flags_executable"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-o"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "/dev/null"
+ flag: "-MMD"
+ flag: "-MF"
+ }
+ expand_if_all_available: "skip_mostly_static"
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "global_whole_archive_open"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-all_load"
+ }
+ expand_if_all_available: "global_whole_archive"
+ }
+ }
+ feature {
+ name: "runtime_root_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ iterate_over: "runtime_library_search_directories"
+ }
+ expand_if_all_available: "runtime_library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_flags}"
+ iterate_over: "runtime_root_flags"
+ }
+ expand_if_all_available: "runtime_root_flags"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_entries}"
+ iterate_over: "runtime_root_entries"
+ }
+ expand_if_all_available: "runtime_root_entries"
+ }
+ }
+ feature {
+ name: "archiver_flags"
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "rcs"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "input_param_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-L%{library_search_directories}"
+ iterate_over: "library_search_directories"
+ }
+ expand_if_all_available: "library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{libopts}"
+ iterate_over: "libopts"
+ }
+ expand_if_all_available: "libopts"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-force_load,%{whole_archive_linker_params}"
+ iterate_over: "whole_archive_linker_params"
+ }
+ expand_if_all_available: "whole_archive_linker_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{linker_input_params}"
+ iterate_over: "linker_input_params"
+ }
+ expand_if_all_available: "linker_input_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag_group {
+ flag: "-Wl,--start-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.object_files}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.object_files}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ iterate_over: "libraries_to_link.object_files"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag: "-Wl,--end-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "interface_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "static_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "dynamic_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l:%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l:%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "versioned_dynamic_library"
+ }
+ }
+ iterate_over: "libraries_to_link"
+ }
+ expand_if_all_available: "libraries_to_link"
+ }
+ }
+ feature {
+ name: "force_pic_flags"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ expand_if_all_available: "force_pic"
+ }
+ }
+ feature {
+ name: "pch"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-include"
+ flag: "%{pch_file}"
+ }
+ }
+ }
+ feature {
+ name: "module_maps"
+ }
+ feature {
+ name: "use_objc_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-name=%{module_name}"
+ flag: "-iquote"
+ flag: "%{module_maps_dir}"
+ flag: "-fmodules-cache-path=%{modules_cache_path}"
+ }
+ }
+ }
+ feature {
+ name: "no_enable_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-maps"
+ }
+ }
+ requires {
+ feature: "use_objc_modules"
+ }
+ }
+ feature {
+ name: "apply_default_warnings"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-Wshorten-64-to-32"
+ flag: "-Wbool-conversion"
+ flag: "-Wconstant-conversion"
+ flag: "-Wduplicate-method-match"
+ flag: "-Wempty-body"
+ flag: "-Wenum-conversion"
+ flag: "-Wint-conversion"
+ flag: "-Wunreachable-code"
+ flag: "-Wmismatched-return-types"
+ flag: "-Wundeclared-selector"
+ flag: "-Wuninitialized"
+ flag: "-Wunused-function"
+ flag: "-Wunused-variable"
+ }
+ }
+ }
+ feature {
+ name: "preprocessor_defines"
+ 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: "-D%{preprocessor_defines}"
+ iterate_over: "preprocessor_defines"
+ }
+ }
+ }
+ feature {
+ name: "framework_paths"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-F%{framework_paths}"
+ iterate_over: "framework_paths"
+ }
+ }
+ }
+ feature {
+ name: "apply_default_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-DOS_IOS"
+ }
+ }
+ }
+ feature {
+ name: "include_system_dirs"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-isysroot"
+ flag: "%{sdk_dir}"
+ }
+ }
+ }
+ feature {
+ name: "objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fobjc-arc"
+ }
+ expand_if_all_available: "objc_arc"
+ }
+ }
+ feature {
+ name: "no_objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fno-objc-arc"
+ }
+ expand_if_all_available: "no_objc_arc"
+ }
+ }
+ feature {
+ name: "apple_env"
+ env_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-archive"
+ action: "objc-fully-link"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ env_entry {
+ key: "XCODE_VERSION_OVERRIDE"
+ value: "%{xcode_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_VERSION_OVERRIDE"
+ value: "%{apple_sdk_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_PLATFORM"
+ value: "%{apple_sdk_platform_value}"
+ }
+ }
+ }
+ feature {
+ name: "legacy_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "%{legacy_link_flags}"
+ iterate_over: "legacy_link_flags"
+ }
+ expand_if_all_available: "legacy_link_flags"
+ }
+ }
+ feature {
+ name: "linker_param_file"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ }
+ feature {
+ name: "version_min"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ 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: "-mios-simulator-version-min=%{version_min}"
+ }
+ }
+ }
+ feature {
+ name: "dead_strip"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-dead_strip"
+ flag: "-no_dead_strip_inits_and_terms"
+ }
+ with_feature {
+ feature: "is_not_test_target"
+ }
+ }
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ requires {
+ feature: "opt"
+ }
+ }
+ 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: "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: "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: "asan"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-O1"
+ flag: "-gmlt"
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fno-sanitize-recover=all"
+ flag: "-DHEAPCHECK_DISABLE"
+ flag: "-DADDRESS_SANITIZER"
+ flag: "-D_GLIBCXX_ADDRESS_SANITIZER_ANNOTATIONS"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fsanitize-link-c++-runtime"
+ }
+ }
+ }
+ feature {
+ name: "coverage"
+ }
+ feature {
+ name: "llvm_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-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"
+ }
+ provides: "profile"
+ }
+ 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"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-lgcov"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "apply_implicit_frameworks"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Foundation"
+ flag: "-framework UIKit"
+ }
+ }
+ }
+ feature {
+ name: "apply_simulator_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fexceptions"
+ flag: "-fasm-blocks"
+ flag: "-fobjc-abi-version=2"
+ flag: "-fobjc-legacy-dispatch"
+ }
+ }
+ }
+ feature {
+ name: "cpp_linker_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ }
+ }
+ }
+ feature {
+ name: "dbg_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--DBG_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "fastbuild_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--FASTBUILD_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "opt_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--OPT_ONLY_FLAG"
+ }
+ }
+ }
+ action_config {
+ config_name: "c-compile"
+ action_name: "c-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-compile"
+ action_name: "c++-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-module-compile"
+ action_name: "c++-module-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-parsing"
+ action_name: "c++-header-parsing"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-preprocessing"
+ action_name: "c++-header-preprocessing"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-compile"
+ action_name: "objc-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "objc_actions"
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "apply_simulator_compiler_flags"
+ }
+ action_config {
+ config_name: "objc++-compile"
+ action_name: "objc++-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ }
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "apply_simulator_compiler_flags"
+ }
+ action_config {
+ config_name: "assemble"
+ action_name: "assemble"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "include_system_dirs"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "preprocess-assemble"
+ action_name: "preprocess-assemble"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-archive"
+ action_name: "objc-archive"
+ tool {
+ tool_path: "iossim/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-filelist"
+ flag: "%{obj_list_path}"
+ flag: "-arch_only"
+ flag: "x86_64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{archive_path}"
+ }
+ }
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-executable"
+ action_name: "objc-executable"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "objc++-executable"
+ action_name: "objc++-executable"
+ tool {
+ tool_path: "iossim/wrapped_clang++"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "c++-link-executable"
+ action_name: "c++-link-executable"
+ tool {
+ tool_path: "iossim/clang"
+ }
+ implies: "symbol_counts"
+ implies: "linkstamps"
+ implies: "output_execpath_flags_executable"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "force_pic_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-dynamic-library"
+ action_name: "c++-link-dynamic-library"
+ tool {
+ tool_path: "iossim/clang"
+ }
+ implies: "has_configured_linker_path"
+ implies: "symbol_counts"
+ implies: "shared_flag"
+ implies: "linkstamps"
+ implies: "output_execpath_flags"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-static-library"
+ action_name: "c++-link-static-library"
+ tool {
+ tool_path: "iossim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-static-library"
+ action_name: "c++-link-alwayslink-static-library"
+ tool {
+ tool_path: "iossim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-pic-static-library"
+ action_name: "c++-link-pic-static-library"
+ tool {
+ tool_path: "iossim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-pic-static-library"
+ action_name: "c++-link-alwayslink-pic-static-library"
+ tool {
+ tool_path: "iossim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-interface-dynamic-library"
+ action_name: "c++-link-interface-dynamic-library"
+ tool {
+ tool_path: "iossim/clang"
+ }
+ implies: "strip_debug_symbols"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-fully-link"
+ action_name: "objc-fully-link"
+ tool {
+ tool_path: "iossim/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-arch_only"
+ flag: "x86_64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{fully_linked_archive_path}"
+ }
+ flag_group {
+ flag: "%{objc_library_exec_paths}"
+ iterate_over: "objc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{cc_library_exec_paths}"
+ iterate_over: "cc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{imported_library_exec_paths}"
+ iterate_over: "imported_library_exec_paths"
+ }
+ }
+ implies: "apple_env"
+ }
+ cc_target_os: "apple"
+}
+toolchain {
+ toolchain_identifier: "watchos_i386"
+ host_system_name: "x86_64-apple-macosx"
+ target_system_name: "i386-apple-watchos"
+ target_cpu: "watchos_i386"
+ target_libc: "watchos"
+ compiler: "compiler"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "watchsim/ar_wrapper"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "watchsim/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "watchsim/cpp"
+ }
+ tool_path {
+ name: "gcov"
+ path: "watchsim/gcov"
+ }
+ tool_path {
+ name: "gcc"
+ path: "watchsim/clang"
+ }
+ tool_path {
+ name: "ld"
+ path: "watchsim/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "watchsim/nm"
+ }
+ tool_path {
+ name: "strip"
+ path: "watchsim/strip"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ needsPic: false
+ compiler_flag: "-DCOMPILER_GCC3"
+ compiler_flag: "-DCOMPILER_GCC4"
+ compiler_flag: "-Dunix"
+ compiler_flag: "-DOS_IOS"
+ compiler_flag: "-DU_HAVE_NL_LANGINFO_CODESET=0"
+ compiler_flag: "-DU_HAVE_STD_STRING"
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ cxx_flag: "-std=gnu++11"
+ cxx_flag: "-stdlib=libc++"
+ linker_flag: "-lc++"
+ linker_flag: "-target"
+ linker_flag: "i386-apple-ios"
+ compilation_mode_flags {
+ mode: FASTBUILD
+ compiler_flag: "-O0"
+ compiler_flag: "-DDEBUG"
+ }
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-Os"
+ compiler_flag: "-DNDEBUG"
+ }
+ compilation_mode_flags {
+ mode: DBG
+ compiler_flag: "-g"
+ compiler_flag: "-DDEBUG"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ make_variable {
+ name: "STACK_FRAME_UNLIMITED"
+ value: "-Wframe-larger-than=100000000 -Wno-vla"
+ }
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/usr/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-pthread"
+ unfiltered_cxx_flag: "-target"
+ unfiltered_cxx_flag: "i386-apple-watchos"
+ supports_normalizing_ar: false
+ default_python_version: "python2.7"
+ feature {
+ name: "no_legacy_features"
+ }
+ feature {
+ name: "fastbuild"
+ implies: "fastbuild_only_flag"
+ }
+ feature {
+ name: "opt"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g0"
+ }
+ with_feature {
+ feature: "no_generate_debug_symbols"
+ }
+ }
+ implies: "opt_only_flag"
+ }
+ feature {
+ name: "dbg"
+ implies: "dbg_only_flag"
+ }
+ feature {
+ name: "compile_all_modules"
+ }
+ feature {
+ name: "exclude_private_headers_in_module_maps"
+ }
+ feature {
+ name: "has_configured_linker_path"
+ }
+ feature {
+ name: "only_doth_headers_in_module_maps"
+ }
+ feature {
+ name: "is_not_test_target"
+ }
+ feature {
+ name: "generate_dsym_file"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "DSYM_HINT_LINKED_BINARY=%{linked_binary}"
+ flag: "DSYM_HINT_DSYM_PATH=%{dsym_path}"
+ flag: "DSYM_HINT_DSYM_BUNDLE_ZIP=%{dsym_bundle_zip}"
+ }
+ }
+ }
+ feature {
+ name: "no_generate_debug_symbols"
+ }
+ feature {
+ name: "generate_linkmap"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker -map"
+ flag: "-Xlinker %{linkmap_exec_path}"
+ }
+ }
+ }
+ feature {
+ name: "objc_actions"
+ implies: "objc-compile"
+ implies: "objc++-compile"
+ implies: "objc-fully-link"
+ implies: "objc-archive"
+ implies: "objc-executable"
+ implies: "objc++-executable"
+ implies: "assemble"
+ implies: "preprocess-assemble"
+ implies: "c-compile"
+ implies: "c++-compile"
+ implies: "c++-link-static-library"
+ implies: "c++-link-pic-static-library"
+ implies: "c++-link-interface-dynamic-library"
+ implies: "c++-link-dynamic-library"
+ implies: "c++-link-alwayslink-static-library"
+ implies: "c++-link-alwayslink-pic-static-library"
+ implies: "c++-link-executable"
+ }
+ feature {
+ name: "strip_debug_symbols"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-interface-dynamic-library"
+ flag_group {
+ flag: "-Wl,-S"
+ expand_if_all_available: "strip_debug_symbols"
+ }
+ }
+ }
+ feature {
+ name: "symbol_counts"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}"
+ }
+ expand_if_all_available: "symbol_counts_output"
+ }
+ }
+ feature {
+ name: "shared_flag"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-shared"
+ }
+ }
+ }
+ feature {
+ name: "linkstamps"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "%{linkstamp_paths}"
+ iterate_over: "linkstamp_paths"
+ }
+ expand_if_all_available: "linkstamp_paths"
+ }
+ }
+ feature {
+ name: "output_execpath_flags"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-o"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "output_execpath_flags_executable"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-o"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "/dev/null"
+ flag: "-MMD"
+ flag: "-MF"
+ }
+ expand_if_all_available: "skip_mostly_static"
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "global_whole_archive_open"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-all_load"
+ }
+ expand_if_all_available: "global_whole_archive"
+ }
+ }
+ feature {
+ name: "runtime_root_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ iterate_over: "runtime_library_search_directories"
+ }
+ expand_if_all_available: "runtime_library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_flags}"
+ iterate_over: "runtime_root_flags"
+ }
+ expand_if_all_available: "runtime_root_flags"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_entries}"
+ iterate_over: "runtime_root_entries"
+ }
+ expand_if_all_available: "runtime_root_entries"
+ }
+ }
+ feature {
+ name: "archiver_flags"
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "rcs"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "input_param_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-L%{library_search_directories}"
+ iterate_over: "library_search_directories"
+ }
+ expand_if_all_available: "library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{libopts}"
+ iterate_over: "libopts"
+ }
+ expand_if_all_available: "libopts"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-force_load,%{whole_archive_linker_params}"
+ iterate_over: "whole_archive_linker_params"
+ }
+ expand_if_all_available: "whole_archive_linker_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{linker_input_params}"
+ iterate_over: "linker_input_params"
+ }
+ expand_if_all_available: "linker_input_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag_group {
+ flag: "-Wl,--start-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.object_files}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.object_files}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ iterate_over: "libraries_to_link.object_files"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag: "-Wl,--end-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "interface_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "static_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "dynamic_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l:%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l:%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "versioned_dynamic_library"
+ }
+ }
+ iterate_over: "libraries_to_link"
+ }
+ expand_if_all_available: "libraries_to_link"
+ }
+ }
+ feature {
+ name: "force_pic_flags"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ expand_if_all_available: "force_pic"
+ }
+ }
+ feature {
+ name: "pch"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-include"
+ flag: "%{pch_file}"
+ }
+ }
+ }
+ feature {
+ name: "module_maps"
+ }
+ feature {
+ name: "use_objc_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-name=%{module_name}"
+ flag: "-iquote"
+ flag: "%{module_maps_dir}"
+ flag: "-fmodules-cache-path=%{modules_cache_path}"
+ }
+ }
+ }
+ feature {
+ name: "no_enable_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-maps"
+ }
+ }
+ requires {
+ feature: "use_objc_modules"
+ }
+ }
+ feature {
+ name: "apply_default_warnings"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-Wshorten-64-to-32"
+ flag: "-Wbool-conversion"
+ flag: "-Wconstant-conversion"
+ flag: "-Wduplicate-method-match"
+ flag: "-Wempty-body"
+ flag: "-Wenum-conversion"
+ flag: "-Wint-conversion"
+ flag: "-Wunreachable-code"
+ flag: "-Wmismatched-return-types"
+ flag: "-Wundeclared-selector"
+ flag: "-Wuninitialized"
+ flag: "-Wunused-function"
+ flag: "-Wunused-variable"
+ }
+ }
+ }
+ feature {
+ name: "preprocessor_defines"
+ 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: "-D%{preprocessor_defines}"
+ iterate_over: "preprocessor_defines"
+ }
+ }
+ }
+ feature {
+ name: "framework_paths"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-F%{framework_paths}"
+ iterate_over: "framework_paths"
+ }
+ }
+ }
+ feature {
+ name: "apply_default_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-DOS_IOS"
+ }
+ }
+ }
+ feature {
+ name: "include_system_dirs"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-isysroot"
+ flag: "%{sdk_dir}"
+ flag: "-F%{sdk_framework_dir}"
+ flag: "-F%{platform_developer_framework_dir}"
+ }
+ }
+ }
+ feature {
+ name: "objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fobjc-arc"
+ }
+ expand_if_all_available: "objc_arc"
+ }
+ }
+ feature {
+ name: "no_objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fno-objc-arc"
+ }
+ expand_if_all_available: "no_objc_arc"
+ }
+ }
+ feature {
+ name: "apple_env"
+ env_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-archive"
+ action: "objc-fully-link"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ env_entry {
+ key: "XCODE_VERSION_OVERRIDE"
+ value: "%{xcode_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_VERSION_OVERRIDE"
+ value: "%{apple_sdk_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_PLATFORM"
+ value: "%{apple_sdk_platform_value}"
+ }
+ }
+ }
+ feature {
+ name: "legacy_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "%{legacy_link_flags}"
+ iterate_over: "legacy_link_flags"
+ }
+ expand_if_all_available: "legacy_link_flags"
+ }
+ }
+ feature {
+ name: "linker_param_file"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ }
+ feature {
+ name: "version_min"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ 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: "-mwatchos-simulator-version-min=%{version_min}"
+ }
+ }
+ }
+ feature {
+ name: "dead_strip"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-dead_strip"
+ flag: "-no_dead_strip_inits_and_terms"
+ }
+ with_feature {
+ feature: "is_not_test_target"
+ }
+ }
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ requires {
+ feature: "opt"
+ }
+ }
+ 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: "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: "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: "asan"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-O1"
+ flag: "-gmlt"
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fno-sanitize-recover=all"
+ flag: "-DHEAPCHECK_DISABLE"
+ flag: "-DADDRESS_SANITIZER"
+ flag: "-D_GLIBCXX_ADDRESS_SANITIZER_ANNOTATIONS"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fsanitize-link-c++-runtime"
+ }
+ }
+ }
+ feature {
+ name: "coverage"
+ }
+ feature {
+ name: "llvm_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-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"
+ }
+ provides: "profile"
+ }
+ 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"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-lgcov"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "apply_implicit_frameworks"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Foundation"
+ flag: "-framework UIKit"
+ }
+ }
+ }
+ feature {
+ name: "apply_simulator_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fexceptions"
+ flag: "-fasm-blocks"
+ flag: "-fobjc-abi-version=2"
+ flag: "-fobjc-legacy-dispatch"
+ }
+ }
+ }
+ feature {
+ name: "cpp_linker_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ }
+ }
+ }
+ feature {
+ name: "dbg_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--DBG_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "fastbuild_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--FASTBUILD_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "opt_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--OPT_ONLY_FLAG"
+ }
+ }
+ }
+ action_config {
+ config_name: "c-compile"
+ action_name: "c-compile"
+ tool {
+ tool_path: "watchsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-compile"
+ action_name: "c++-compile"
+ tool {
+ tool_path: "watchsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-module-compile"
+ action_name: "c++-module-compile"
+ tool {
+ tool_path: "watchsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-parsing"
+ action_name: "c++-header-parsing"
+ tool {
+ tool_path: "watchsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-preprocessing"
+ action_name: "c++-header-preprocessing"
+ tool {
+ tool_path: "watchsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-compile"
+ action_name: "objc-compile"
+ tool {
+ tool_path: "watchsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ }
+ }
+ implies: "objc_actions"
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "apply_simulator_compiler_flags"
+ }
+ action_config {
+ config_name: "objc++-compile"
+ action_name: "objc++-compile"
+ tool {
+ tool_path: "watchsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ }
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "apply_simulator_compiler_flags"
+ }
+ action_config {
+ config_name: "assemble"
+ action_name: "assemble"
+ tool {
+ tool_path: "watchsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "include_system_dirs"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "preprocess-assemble"
+ action_name: "preprocess-assemble"
+ tool {
+ tool_path: "watchsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-archive"
+ action_name: "objc-archive"
+ tool {
+ tool_path: "watchsim/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-filelist"
+ flag: "%{obj_list_path}"
+ flag: "-arch_only"
+ flag: "i386"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{archive_path}"
+ }
+ }
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-executable"
+ action_name: "objc-executable"
+ tool {
+ tool_path: "watchsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "objc++-executable"
+ action_name: "objc++-executable"
+ tool {
+ tool_path: "watchsim/wrapped_clang++"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ flag_group {
+ flag: "-arch i386"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "c++-link-executable"
+ action_name: "c++-link-executable"
+ tool {
+ tool_path: "watchsim/clang"
+ }
+ implies: "symbol_counts"
+ implies: "linkstamps"
+ implies: "output_execpath_flags_executable"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "force_pic_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-dynamic-library"
+ action_name: "c++-link-dynamic-library"
+ tool {
+ tool_path: "watchsim/clang"
+ }
+ implies: "has_configured_linker_path"
+ implies: "symbol_counts"
+ implies: "shared_flag"
+ implies: "linkstamps"
+ implies: "output_execpath_flags"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-static-library"
+ action_name: "c++-link-static-library"
+ tool {
+ tool_path: "watchsim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-static-library"
+ action_name: "c++-link-alwayslink-static-library"
+ tool {
+ tool_path: "watchsim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-pic-static-library"
+ action_name: "c++-link-pic-static-library"
+ tool {
+ tool_path: "watchsim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-pic-static-library"
+ action_name: "c++-link-alwayslink-pic-static-library"
+ tool {
+ tool_path: "watchsim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-interface-dynamic-library"
+ action_name: "c++-link-interface-dynamic-library"
+ tool {
+ tool_path: "watchsim/clang"
+ }
+ implies: "strip_debug_symbols"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-fully-link"
+ action_name: "objc-fully-link"
+ tool {
+ tool_path: "watchsim/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-arch_only"
+ flag: "i386"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{fully_linked_archive_path}"
+ }
+ flag_group {
+ flag: "%{objc_library_exec_paths}"
+ iterate_over: "objc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{cc_library_exec_paths}"
+ iterate_over: "cc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{imported_library_exec_paths}"
+ iterate_over: "imported_library_exec_paths"
+ }
+ }
+ implies: "apple_env"
+ }
+ cc_target_os: "apple"
+}
+toolchain {
+ toolchain_identifier: "tvos_x86_64"
+ host_system_name: "x86_64-apple-macosx"
+ target_system_name: "x86_64-apple-tvos"
+ target_cpu: "tvos_x86_64"
+ target_libc: "tvos"
+ compiler: "compiler"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "tvsim/ar_wrapper"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "tvsim/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "tvsim/cpp"
+ }
+ tool_path {
+ name: "gcov"
+ path: "tvsim/gcov"
+ }
+ tool_path {
+ name: "gcc"
+ path: "tvsim/clang"
+ }
+ tool_path {
+ name: "ld"
+ path: "tvsim/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "tvsim/nm"
+ }
+ tool_path {
+ name: "strip"
+ path: "tvsim/strip"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ needsPic: false
+ compiler_flag: "-DCOMPILER_GCC3"
+ compiler_flag: "-DCOMPILER_GCC4"
+ compiler_flag: "-Dunix"
+ compiler_flag: "-DOS_TVOS"
+ compiler_flag: "-DU_HAVE_NL_LANGINFO_CODESET=0"
+ compiler_flag: "-DU_HAVE_STD_STRING"
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ cxx_flag: "-std=gnu++11"
+ cxx_flag: "-stdlib=libc++"
+ linker_flag: "-lc++"
+ linker_flag: "-target"
+ linker_flag: "x86_64-apple-tvos"
+ compilation_mode_flags {
+ mode: FASTBUILD
+ compiler_flag: "-O0"
+ compiler_flag: "-DDEBUG"
+ }
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-Os"
+ compiler_flag: "-DNDEBUG"
+ compiler_flag: "-DNS_BLOCK_ASSERTIONS=1"
+ }
+ compilation_mode_flags {
+ mode: DBG
+ compiler_flag: "-g"
+ compiler_flag: "-DDEBUG"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ make_variable {
+ name: "STACK_FRAME_UNLIMITED"
+ value: "-Wframe-larger-than=100000000 -Wno-vla"
+ }
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/usr/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-pthread"
+ unfiltered_cxx_flag: "-target"
+ unfiltered_cxx_flag: "x86_64-apple-tvos"
+ supports_normalizing_ar: false
+ default_python_version: "python2.7"
+ feature {
+ name: "no_legacy_features"
+ }
+ feature {
+ name: "fastbuild"
+ implies: "fastbuild_only_flag"
+ }
+ feature {
+ name: "opt"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g0"
+ }
+ with_feature {
+ feature: "no_generate_debug_symbols"
+ }
+ }
+ implies: "opt_only_flag"
+ }
+ feature {
+ name: "dbg"
+ implies: "dbg_only_flag"
+ }
+ feature {
+ name: "compile_all_modules"
+ }
+ feature {
+ name: "exclude_private_headers_in_module_maps"
+ }
+ feature {
+ name: "has_configured_linker_path"
+ }
+ feature {
+ name: "only_doth_headers_in_module_maps"
+ }
+ feature {
+ name: "is_not_test_target"
+ }
+ feature {
+ name: "generate_dsym_file"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "DSYM_HINT_LINKED_BINARY=%{linked_binary}"
+ flag: "DSYM_HINT_DSYM_PATH=%{dsym_path}"
+ flag: "DSYM_HINT_DSYM_BUNDLE_ZIP=%{dsym_bundle_zip}"
+ }
+ }
+ }
+ feature {
+ name: "no_generate_debug_symbols"
+ }
+ feature {
+ name: "generate_linkmap"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker -map"
+ flag: "-Xlinker %{linkmap_exec_path}"
+ }
+ }
+ }
+ feature {
+ name: "objc_actions"
+ implies: "objc-compile"
+ implies: "objc++-compile"
+ implies: "objc-fully-link"
+ implies: "objc-archive"
+ implies: "objc-executable"
+ implies: "objc++-executable"
+ implies: "assemble"
+ implies: "preprocess-assemble"
+ implies: "c-compile"
+ implies: "c++-compile"
+ implies: "c++-link-static-library"
+ implies: "c++-link-pic-static-library"
+ implies: "c++-link-interface-dynamic-library"
+ implies: "c++-link-dynamic-library"
+ implies: "c++-link-alwayslink-static-library"
+ implies: "c++-link-alwayslink-pic-static-library"
+ implies: "c++-link-executable"
+ }
+ feature {
+ name: "strip_debug_symbols"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-interface-dynamic-library"
+ flag_group {
+ flag: "-Wl,-S"
+ expand_if_all_available: "strip_debug_symbols"
+ }
+ }
+ }
+ feature {
+ name: "symbol_counts"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}"
+ }
+ expand_if_all_available: "symbol_counts_output"
+ }
+ }
+ feature {
+ name: "shared_flag"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-shared"
+ }
+ }
+ }
+ feature {
+ name: "linkstamps"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "%{linkstamp_paths}"
+ iterate_over: "linkstamp_paths"
+ }
+ expand_if_all_available: "linkstamp_paths"
+ }
+ }
+ feature {
+ name: "output_execpath_flags"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-o"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "output_execpath_flags_executable"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-o"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "/dev/null"
+ flag: "-MMD"
+ flag: "-MF"
+ }
+ expand_if_all_available: "skip_mostly_static"
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "global_whole_archive_open"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-all_load"
+ }
+ expand_if_all_available: "global_whole_archive"
+ }
+ }
+ feature {
+ name: "runtime_root_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ iterate_over: "runtime_library_search_directories"
+ }
+ expand_if_all_available: "runtime_library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_flags}"
+ iterate_over: "runtime_root_flags"
+ }
+ expand_if_all_available: "runtime_root_flags"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_entries}"
+ iterate_over: "runtime_root_entries"
+ }
+ expand_if_all_available: "runtime_root_entries"
+ }
+ }
+ feature {
+ name: "archiver_flags"
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "rcs"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "input_param_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-L%{library_search_directories}"
+ iterate_over: "library_search_directories"
+ }
+ expand_if_all_available: "library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{libopts}"
+ iterate_over: "libopts"
+ }
+ expand_if_all_available: "libopts"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-force_load,%{whole_archive_linker_params}"
+ iterate_over: "whole_archive_linker_params"
+ }
+ expand_if_all_available: "whole_archive_linker_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{linker_input_params}"
+ iterate_over: "linker_input_params"
+ }
+ expand_if_all_available: "linker_input_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag_group {
+ flag: "-Wl,--start-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.object_files}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.object_files}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ iterate_over: "libraries_to_link.object_files"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag: "-Wl,--end-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "interface_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "static_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "dynamic_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l:%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l:%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "versioned_dynamic_library"
+ }
+ }
+ iterate_over: "libraries_to_link"
+ }
+ expand_if_all_available: "libraries_to_link"
+ }
+ }
+ feature {
+ name: "force_pic_flags"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ expand_if_all_available: "force_pic"
+ }
+ }
+ feature {
+ name: "pch"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-include"
+ flag: "%{pch_file}"
+ }
+ }
+ }
+ feature {
+ name: "module_maps"
+ }
+ feature {
+ name: "use_objc_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-name=%{module_name}"
+ flag: "-iquote"
+ flag: "%{module_maps_dir}"
+ flag: "-fmodules-cache-path=%{modules_cache_path}"
+ }
+ }
+ }
+ feature {
+ name: "no_enable_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-maps"
+ }
+ }
+ requires {
+ feature: "use_objc_modules"
+ }
+ }
+ feature {
+ name: "apply_default_warnings"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-Wshorten-64-to-32"
+ flag: "-Wbool-conversion"
+ flag: "-Wconstant-conversion"
+ flag: "-Wduplicate-method-match"
+ flag: "-Wempty-body"
+ flag: "-Wenum-conversion"
+ flag: "-Wint-conversion"
+ flag: "-Wunreachable-code"
+ flag: "-Wmismatched-return-types"
+ flag: "-Wundeclared-selector"
+ flag: "-Wuninitialized"
+ flag: "-Wunused-function"
+ flag: "-Wunused-variable"
+ }
+ }
+ }
+ feature {
+ name: "preprocessor_defines"
+ 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: "-D%{preprocessor_defines}"
+ iterate_over: "preprocessor_defines"
+ }
+ }
+ }
+ feature {
+ name: "framework_paths"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-F%{framework_paths}"
+ iterate_over: "framework_paths"
+ }
+ }
+ }
+ feature {
+ name: "apply_default_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-DOS_TVOS"
+ }
+ }
+ }
+ feature {
+ name: "include_system_dirs"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-isysroot"
+ flag: "%{sdk_dir}"
+ }
+ }
+ }
+ feature {
+ name: "objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fobjc-arc"
+ }
+ expand_if_all_available: "objc_arc"
+ }
+ }
+ feature {
+ name: "no_objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fno-objc-arc"
+ }
+ expand_if_all_available: "no_objc_arc"
+ }
+ }
+ feature {
+ name: "apple_env"
+ env_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-archive"
+ action: "objc-fully-link"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ env_entry {
+ key: "XCODE_VERSION_OVERRIDE"
+ value: "%{xcode_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_VERSION_OVERRIDE"
+ value: "%{apple_sdk_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_PLATFORM"
+ value: "%{apple_sdk_platform_value}"
+ }
+ }
+ }
+ feature {
+ name: "legacy_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "%{legacy_link_flags}"
+ iterate_over: "legacy_link_flags"
+ }
+ expand_if_all_available: "legacy_link_flags"
+ }
+ }
+ feature {
+ name: "linker_param_file"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ }
+ feature {
+ name: "version_min"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ 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: "-mtvos-simulator-version-min=%{version_min}"
+ }
+ }
+ }
+ feature {
+ name: "dead_strip"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-dead_strip"
+ flag: "-no_dead_strip_inits_and_terms"
+ }
+ with_feature {
+ feature: "is_not_test_target"
+ }
+ }
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ requires {
+ feature: "opt"
+ }
+ }
+ 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: "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: "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: "asan"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-O1"
+ flag: "-gmlt"
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fno-sanitize-recover=all"
+ flag: "-DHEAPCHECK_DISABLE"
+ flag: "-DADDRESS_SANITIZER"
+ flag: "-D_GLIBCXX_ADDRESS_SANITIZER_ANNOTATIONS"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fsanitize-link-c++-runtime"
+ }
+ }
+ }
+ feature {
+ name: "coverage"
+ }
+ feature {
+ name: "llvm_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-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"
+ }
+ provides: "profile"
+ }
+ 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"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-lgcov"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "cpp_linker_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-lc++"
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ flag: "-target"
+ flag: "x86_64-apple-tvos"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-lc++"
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ flag: "-target"
+ flag: "x86_64-apple-tvos"
+ }
+ }
+ }
+ feature {
+ name: "apply_implicit_frameworks"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Foundation"
+ flag: "-framework UIKit"
+ }
+ }
+ }
+ feature {
+ name: "apply_simulator_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fexceptions"
+ flag: "-fasm-blocks"
+ flag: "-fobjc-abi-version=2"
+ flag: "-fobjc-legacy-dispatch"
+ }
+ }
+ }
+ feature {
+ name: "dbg_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--DBG_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "fastbuild_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--FASTBUILD_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "opt_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--OPT_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "unfiltered_cxx_flags"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-no-canonical-prefixes"
+ flag: "-pthread"
+ }
+ }
+ }
+ action_config {
+ config_name: "c-compile"
+ action_name: "c-compile"
+ tool {
+ tool_path: "tvsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "c++-compile"
+ action_name: "c++-compile"
+ tool {
+ tool_path: "tvsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "c++-module-compile"
+ action_name: "c++-module-compile"
+ tool {
+ tool_path: "tvsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "c++-header-parsing"
+ action_name: "c++-header-parsing"
+ tool {
+ tool_path: "tvsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "c++-header-preprocessing"
+ action_name: "c++-header-preprocessing"
+ tool {
+ tool_path: "tvsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "objc-compile"
+ action_name: "objc-compile"
+ tool {
+ tool_path: "tvsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ }
+ implies: "objc_actions"
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "apply_simulator_compiler_flags"
+ }
+ action_config {
+ config_name: "objc++-compile"
+ action_name: "objc++-compile"
+ tool {
+ tool_path: "tvsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ }
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "apply_simulator_compiler_flags"
+ }
+ action_config {
+ config_name: "assemble"
+ action_name: "assemble"
+ tool {
+ tool_path: "tvsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "include_system_dirs"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "preprocess-assemble"
+ action_name: "preprocess-assemble"
+ tool {
+ tool_path: "tvsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "objc-archive"
+ action_name: "objc-archive"
+ tool {
+ tool_path: "tvsim/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-filelist"
+ flag: "%{obj_list_path}"
+ flag: "-arch_only"
+ flag: "x86_64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{archive_path}"
+ }
+ }
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-executable"
+ action_name: "objc-executable"
+ tool {
+ tool_path: "tvsim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "objc++-executable"
+ action_name: "objc++-executable"
+ tool {
+ tool_path: "tvsim/wrapped_clang++"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ flag_group {
+ flag: "-arch x86_64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "c++-link-executable"
+ action_name: "c++-link-executable"
+ tool {
+ tool_path: "tvsim/clang"
+ }
+ implies: "symbol_counts"
+ implies: "linkstamps"
+ implies: "output_execpath_flags_executable"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "force_pic_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-dynamic-library"
+ action_name: "c++-link-dynamic-library"
+ tool {
+ tool_path: "tvsim/clang"
+ }
+ implies: "has_configured_linker_path"
+ implies: "symbol_counts"
+ implies: "shared_flag"
+ implies: "linkstamps"
+ implies: "output_execpath_flags"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-static-library"
+ action_name: "c++-link-static-library"
+ tool {
+ tool_path: "tvsim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-static-library"
+ action_name: "c++-link-alwayslink-static-library"
+ tool {
+ tool_path: "tvsim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-pic-static-library"
+ action_name: "c++-link-pic-static-library"
+ tool {
+ tool_path: "tvsim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-pic-static-library"
+ action_name: "c++-link-alwayslink-pic-static-library"
+ tool {
+ tool_path: "tvsim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-interface-dynamic-library"
+ action_name: "c++-link-interface-dynamic-library"
+ tool {
+ tool_path: "tvsim/clang"
+ }
+ implies: "strip_debug_symbols"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-fully-link"
+ action_name: "objc-fully-link"
+ tool {
+ tool_path: "tvsim/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-arch_only"
+ flag: "x86_64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{fully_linked_archive_path}"
+ }
+ flag_group {
+ flag: "%{objc_library_exec_paths}"
+ iterate_over: "objc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{cc_library_exec_paths}"
+ iterate_over: "cc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{imported_library_exec_paths}"
+ iterate_over: "imported_library_exec_paths"
+ }
+ }
+ implies: "apple_env"
+ }
+ cc_target_os: "apple"
+}
+toolchain {
+ toolchain_identifier: "ios_i386"
+ host_system_name: "x86_64-apple-macosx"
+ target_system_name: "i386-apple-ios"
+ target_cpu: "ios_i386"
+ target_libc: "ios"
+ compiler: "compiler"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "iossim/ar_wrapper"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "iossim/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "iossim/cpp"
+ }
+ tool_path {
+ name: "gcov"
+ path: "iossim/gcov"
+ }
+ tool_path {
+ name: "gcc"
+ path: "iossim/clang"
+ }
+ tool_path {
+ name: "ld"
+ path: "iossim/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "iossim/nm"
+ }
+ tool_path {
+ name: "strip"
+ path: "iossim/strip"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ needsPic: false
+ compiler_flag: "-DCOMPILER_GCC3"
+ compiler_flag: "-DCOMPILER_GCC4"
+ compiler_flag: "-Dunix"
+ compiler_flag: "-DOS_IOS"
+ compiler_flag: "-DU_HAVE_NL_LANGINFO_CODESET=0"
+ compiler_flag: "-DU_HAVE_STD_STRING"
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ cxx_flag: "-std=gnu++11"
+ cxx_flag: "-stdlib=libc++"
+ linker_flag: "-lc++"
+ linker_flag: "-target"
+ linker_flag: "i386-apple-ios"
+ compilation_mode_flags {
+ mode: FASTBUILD
+ compiler_flag: "-O0"
+ compiler_flag: "-DDEBUG"
+ }
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-Os"
+ compiler_flag: "-DNDEBUG"
+ }
+ compilation_mode_flags {
+ mode: DBG
+ compiler_flag: "-g"
+ compiler_flag: "-DDEBUG"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ make_variable {
+ name: "STACK_FRAME_UNLIMITED"
+ value: "-Wframe-larger-than=100000000 -Wno-vla"
+ }
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/usr/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-pthread"
+ unfiltered_cxx_flag: "-target"
+ unfiltered_cxx_flag: "i386-apple-ios"
+ supports_normalizing_ar: false
+ default_python_version: "python2.7"
+ feature {
+ name: "no_legacy_features"
+ }
+ feature {
+ name: "fastbuild"
+ implies: "fastbuild_only_flag"
+ }
+ feature {
+ name: "opt"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g0"
+ }
+ with_feature {
+ feature: "no_generate_debug_symbols"
+ }
+ }
+ implies: "opt_only_flag"
+ }
+ feature {
+ name: "dbg"
+ implies: "dbg_only_flag"
+ }
+ feature {
+ name: "compile_all_modules"
+ }
+ feature {
+ name: "exclude_private_headers_in_module_maps"
+ }
+ feature {
+ name: "has_configured_linker_path"
+ }
+ feature {
+ name: "only_doth_headers_in_module_maps"
+ }
+ feature {
+ name: "is_not_test_target"
+ }
+ feature {
+ name: "generate_dsym_file"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "DSYM_HINT_LINKED_BINARY=%{linked_binary}"
+ flag: "DSYM_HINT_DSYM_PATH=%{dsym_path}"
+ flag: "DSYM_HINT_DSYM_BUNDLE_ZIP=%{dsym_bundle_zip}"
+ }
+ }
+ }
+ feature {
+ name: "no_generate_debug_symbols"
+ }
+ feature {
+ name: "generate_linkmap"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker -map"
+ flag: "-Xlinker %{linkmap_exec_path}"
+ }
+ }
+ }
+ feature {
+ name: "objc_actions"
+ implies: "objc-compile"
+ implies: "objc++-compile"
+ implies: "objc-fully-link"
+ implies: "objc-archive"
+ implies: "objc-executable"
+ implies: "objc++-executable"
+ implies: "assemble"
+ implies: "preprocess-assemble"
+ implies: "c-compile"
+ implies: "c++-compile"
+ implies: "c++-link-static-library"
+ implies: "c++-link-pic-static-library"
+ implies: "c++-link-interface-dynamic-library"
+ implies: "c++-link-dynamic-library"
+ implies: "c++-link-alwayslink-static-library"
+ implies: "c++-link-alwayslink-pic-static-library"
+ implies: "c++-link-executable"
+ }
+ feature {
+ name: "strip_debug_symbols"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-interface-dynamic-library"
+ flag_group {
+ flag: "-Wl,-S"
+ expand_if_all_available: "strip_debug_symbols"
+ }
+ }
+ }
+ feature {
+ name: "symbol_counts"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}"
+ }
+ expand_if_all_available: "symbol_counts_output"
+ }
+ }
+ feature {
+ name: "shared_flag"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-shared"
+ }
+ }
+ }
+ feature {
+ name: "linkstamps"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "%{linkstamp_paths}"
+ iterate_over: "linkstamp_paths"
+ }
+ expand_if_all_available: "linkstamp_paths"
+ }
+ }
+ feature {
+ name: "output_execpath_flags"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-o"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "output_execpath_flags_executable"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-o"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "/dev/null"
+ flag: "-MMD"
+ flag: "-MF"
+ }
+ expand_if_all_available: "skip_mostly_static"
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "global_whole_archive_open"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-all_load"
+ }
+ expand_if_all_available: "global_whole_archive"
+ }
+ }
+ feature {
+ name: "runtime_root_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ iterate_over: "runtime_library_search_directories"
+ }
+ expand_if_all_available: "runtime_library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_flags}"
+ iterate_over: "runtime_root_flags"
+ }
+ expand_if_all_available: "runtime_root_flags"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_entries}"
+ iterate_over: "runtime_root_entries"
+ }
+ expand_if_all_available: "runtime_root_entries"
+ }
+ }
+ feature {
+ name: "archiver_flags"
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "rcs"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "input_param_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-L%{library_search_directories}"
+ iterate_over: "library_search_directories"
+ }
+ expand_if_all_available: "library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{libopts}"
+ iterate_over: "libopts"
+ }
+ expand_if_all_available: "libopts"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-force_load,%{whole_archive_linker_params}"
+ iterate_over: "whole_archive_linker_params"
+ }
+ expand_if_all_available: "whole_archive_linker_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{linker_input_params}"
+ iterate_over: "linker_input_params"
+ }
+ expand_if_all_available: "linker_input_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag_group {
+ flag: "-Wl,--start-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.object_files}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.object_files}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ iterate_over: "libraries_to_link.object_files"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag: "-Wl,--end-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "interface_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "static_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "dynamic_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l:%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l:%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "versioned_dynamic_library"
+ }
+ }
+ iterate_over: "libraries_to_link"
+ }
+ expand_if_all_available: "libraries_to_link"
+ }
+ }
+ feature {
+ name: "force_pic_flags"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ expand_if_all_available: "force_pic"
+ }
+ }
+ feature {
+ name: "pch"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-include"
+ flag: "%{pch_file}"
+ }
+ }
+ }
+ feature {
+ name: "module_maps"
+ }
+ feature {
+ name: "use_objc_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-name=%{module_name}"
+ flag: "-iquote"
+ flag: "%{module_maps_dir}"
+ flag: "-fmodules-cache-path=%{modules_cache_path}"
+ }
+ }
+ }
+ feature {
+ name: "no_enable_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-maps"
+ }
+ }
+ requires {
+ feature: "use_objc_modules"
+ }
+ }
+ feature {
+ name: "apply_default_warnings"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-Wshorten-64-to-32"
+ flag: "-Wbool-conversion"
+ flag: "-Wconstant-conversion"
+ flag: "-Wduplicate-method-match"
+ flag: "-Wempty-body"
+ flag: "-Wenum-conversion"
+ flag: "-Wint-conversion"
+ flag: "-Wunreachable-code"
+ flag: "-Wmismatched-return-types"
+ flag: "-Wundeclared-selector"
+ flag: "-Wuninitialized"
+ flag: "-Wunused-function"
+ flag: "-Wunused-variable"
+ }
+ }
+ }
+ feature {
+ name: "preprocessor_defines"
+ 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: "-D%{preprocessor_defines}"
+ iterate_over: "preprocessor_defines"
+ }
+ }
+ }
+ feature {
+ name: "framework_paths"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-F%{framework_paths}"
+ iterate_over: "framework_paths"
+ }
+ }
+ }
+ feature {
+ name: "apply_default_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-DOS_IOS"
+ }
+ }
+ }
+ feature {
+ name: "include_system_dirs"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-isysroot"
+ flag: "%{sdk_dir}"
+ }
+ }
+ }
+ feature {
+ name: "objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fobjc-arc"
+ }
+ expand_if_all_available: "objc_arc"
+ }
+ }
+ feature {
+ name: "no_objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fno-objc-arc"
+ }
+ expand_if_all_available: "no_objc_arc"
+ }
+ }
+ feature {
+ name: "apple_env"
+ env_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-archive"
+ action: "objc-fully-link"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ env_entry {
+ key: "XCODE_VERSION_OVERRIDE"
+ value: "%{xcode_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_VERSION_OVERRIDE"
+ value: "%{apple_sdk_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_PLATFORM"
+ value: "%{apple_sdk_platform_value}"
+ }
+ }
+ }
+ feature {
+ name: "legacy_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "%{legacy_link_flags}"
+ iterate_over: "legacy_link_flags"
+ }
+ expand_if_all_available: "legacy_link_flags"
+ }
+ }
+ feature {
+ name: "linker_param_file"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ }
+ feature {
+ name: "version_min"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ 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: "-mios-simulator-version-min=%{version_min}"
+ }
+ }
+ }
+ feature {
+ name: "dead_strip"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-dead_strip"
+ flag: "-no_dead_strip_inits_and_terms"
+ }
+ with_feature {
+ feature: "is_not_test_target"
+ }
+ }
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ requires {
+ feature: "opt"
+ }
+ }
+ 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: "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: "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: "asan"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-O1"
+ flag: "-gmlt"
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fno-sanitize-recover=all"
+ flag: "-DHEAPCHECK_DISABLE"
+ flag: "-DADDRESS_SANITIZER"
+ flag: "-D_GLIBCXX_ADDRESS_SANITIZER_ANNOTATIONS"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fsanitize-link-c++-runtime"
+ }
+ }
+ }
+ feature {
+ name: "coverage"
+ }
+ feature {
+ name: "llvm_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-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"
+ }
+ provides: "profile"
+ }
+ 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"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-lgcov"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "apply_implicit_frameworks"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Foundation"
+ flag: "-framework UIKit"
+ }
+ }
+ }
+ feature {
+ name: "apply_simulator_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fexceptions"
+ flag: "-fasm-blocks"
+ flag: "-fobjc-abi-version=2"
+ flag: "-fobjc-legacy-dispatch"
+ }
+ }
+ }
+ feature {
+ name: "cpp_linker_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ }
+ }
+ }
+ feature {
+ name: "dbg_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--DBG_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "fastbuild_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--FASTBUILD_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "opt_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--OPT_ONLY_FLAG"
+ }
+ }
+ }
+ action_config {
+ config_name: "c-compile"
+ action_name: "c-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-compile"
+ action_name: "c++-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-module-compile"
+ action_name: "c++-module-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-parsing"
+ action_name: "c++-header-parsing"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-preprocessing"
+ action_name: "c++-header-preprocessing"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-compile"
+ action_name: "objc-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ }
+ }
+ implies: "objc_actions"
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "apply_simulator_compiler_flags"
+ }
+ action_config {
+ config_name: "objc++-compile"
+ action_name: "objc++-compile"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ }
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "apply_simulator_compiler_flags"
+ }
+ action_config {
+ config_name: "assemble"
+ action_name: "assemble"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "include_system_dirs"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "preprocess-assemble"
+ action_name: "preprocess-assemble"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-archive"
+ action_name: "objc-archive"
+ tool {
+ tool_path: "iossim/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-filelist"
+ flag: "%{obj_list_path}"
+ flag: "-arch_only"
+ flag: "i386"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{archive_path}"
+ }
+ }
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-executable"
+ action_name: "objc-executable"
+ tool {
+ tool_path: "iossim/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch i386"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "objc++-executable"
+ action_name: "objc++-executable"
+ tool {
+ tool_path: "iossim/wrapped_clang++"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ flag_group {
+ flag: "-arch i386"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "c++-link-executable"
+ action_name: "c++-link-executable"
+ tool {
+ tool_path: "iossim/clang"
+ }
+ implies: "symbol_counts"
+ implies: "linkstamps"
+ implies: "output_execpath_flags_executable"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "force_pic_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-dynamic-library"
+ action_name: "c++-link-dynamic-library"
+ tool {
+ tool_path: "iossim/clang"
+ }
+ implies: "has_configured_linker_path"
+ implies: "symbol_counts"
+ implies: "shared_flag"
+ implies: "linkstamps"
+ implies: "output_execpath_flags"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-static-library"
+ action_name: "c++-link-static-library"
+ tool {
+ tool_path: "iossim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-static-library"
+ action_name: "c++-link-alwayslink-static-library"
+ tool {
+ tool_path: "iossim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-pic-static-library"
+ action_name: "c++-link-pic-static-library"
+ tool {
+ tool_path: "iossim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-pic-static-library"
+ action_name: "c++-link-alwayslink-pic-static-library"
+ tool {
+ tool_path: "iossim/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-interface-dynamic-library"
+ action_name: "c++-link-interface-dynamic-library"
+ tool {
+ tool_path: "iossim/clang"
+ }
+ implies: "strip_debug_symbols"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-fully-link"
+ action_name: "objc-fully-link"
+ tool {
+ tool_path: "iossim/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-arch_only"
+ flag: "i386"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{fully_linked_archive_path}"
+ }
+ flag_group {
+ flag: "%{objc_library_exec_paths}"
+ iterate_over: "objc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{cc_library_exec_paths}"
+ iterate_over: "cc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{imported_library_exec_paths}"
+ iterate_over: "imported_library_exec_paths"
+ }
+ }
+ implies: "apple_env"
+ }
+ cc_target_os: "apple"
+}
+toolchain {
+ toolchain_identifier: "ios_armv7"
+ host_system_name: "x86_64-apple-macosx"
+ target_system_name: "armv7-apple-ios"
+ target_cpu: "ios_armv7"
+ target_libc: "ios"
+ compiler: "compiler"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "ios/ar_wrapper"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "ios/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "ios/cpp"
+ }
+ tool_path {
+ name: "gcov"
+ path: "ios/gcov"
+ }
+ tool_path {
+ name: "gcc"
+ path: "ios/clang"
+ }
+ tool_path {
+ name: "ld"
+ path: "ios/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "ios/nm"
+ }
+ tool_path {
+ name: "strip"
+ path: "ios/strip"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ needsPic: false
+ compiler_flag: "-DCOMPILER_GCC3"
+ compiler_flag: "-DCOMPILER_GCC4"
+ compiler_flag: "-Dunix"
+ compiler_flag: "-DOS_IOS"
+ compiler_flag: "-DU_HAVE_NL_LANGINFO_CODESET=0"
+ compiler_flag: "-DU_HAVE_STD_STRING"
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ cxx_flag: "-std=gnu++11"
+ cxx_flag: "-stdlib=libc++"
+ linker_flag: "-lc++"
+ linker_flag: "-target"
+ linker_flag: "armv7-apple-ios"
+ compilation_mode_flags {
+ mode: FASTBUILD
+ compiler_flag: "-O0"
+ compiler_flag: "-DDEBUG"
+ }
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-Os"
+ compiler_flag: "-DNDEBUG"
+ }
+ compilation_mode_flags {
+ mode: DBG
+ compiler_flag: "-g"
+ compiler_flag: "-DDEBUG"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ make_variable {
+ name: "STACK_FRAME_UNLIMITED"
+ value: "-Wframe-larger-than=100000000 -Wno-vla"
+ }
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/usr/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-pthread"
+ unfiltered_cxx_flag: "-target"
+ unfiltered_cxx_flag: "armv7-apple-ios"
+ supports_normalizing_ar: false
+ default_python_version: "python2.7"
+ feature {
+ name: "no_legacy_features"
+ }
+ feature {
+ name: "fastbuild"
+ implies: "fastbuild_only_flag"
+ }
+ feature {
+ name: "opt"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g0"
+ }
+ with_feature {
+ feature: "no_generate_debug_symbols"
+ }
+ }
+ implies: "opt_only_flag"
+ }
+ feature {
+ name: "dbg"
+ implies: "dbg_only_flag"
+ }
+ feature {
+ name: "compile_all_modules"
+ }
+ feature {
+ name: "exclude_private_headers_in_module_maps"
+ }
+ feature {
+ name: "has_configured_linker_path"
+ }
+ feature {
+ name: "only_doth_headers_in_module_maps"
+ }
+ feature {
+ name: "is_not_test_target"
+ }
+ feature {
+ name: "generate_dsym_file"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "DSYM_HINT_LINKED_BINARY=%{linked_binary}"
+ flag: "DSYM_HINT_DSYM_PATH=%{dsym_path}"
+ flag: "DSYM_HINT_DSYM_BUNDLE_ZIP=%{dsym_bundle_zip}"
+ }
+ }
+ }
+ feature {
+ name: "no_generate_debug_symbols"
+ }
+ feature {
+ name: "generate_linkmap"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker -map"
+ flag: "-Xlinker %{linkmap_exec_path}"
+ }
+ }
+ }
+ feature {
+ name: "objc_actions"
+ implies: "objc-compile"
+ implies: "objc++-compile"
+ implies: "objc-fully-link"
+ implies: "objc-archive"
+ implies: "objc-executable"
+ implies: "objc++-executable"
+ implies: "assemble"
+ implies: "preprocess-assemble"
+ implies: "c-compile"
+ implies: "c++-compile"
+ implies: "c++-link-static-library"
+ implies: "c++-link-pic-static-library"
+ implies: "c++-link-interface-dynamic-library"
+ implies: "c++-link-dynamic-library"
+ implies: "c++-link-alwayslink-static-library"
+ implies: "c++-link-alwayslink-pic-static-library"
+ implies: "c++-link-executable"
+ }
+ feature {
+ name: "strip_debug_symbols"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-interface-dynamic-library"
+ flag_group {
+ flag: "-Wl,-S"
+ expand_if_all_available: "strip_debug_symbols"
+ }
+ }
+ }
+ feature {
+ name: "symbol_counts"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}"
+ }
+ expand_if_all_available: "symbol_counts_output"
+ }
+ }
+ feature {
+ name: "shared_flag"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-shared"
+ }
+ }
+ }
+ feature {
+ name: "linkstamps"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "%{linkstamp_paths}"
+ iterate_over: "linkstamp_paths"
+ }
+ expand_if_all_available: "linkstamp_paths"
+ }
+ }
+ feature {
+ name: "output_execpath_flags"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-o"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "output_execpath_flags_executable"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-o"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "/dev/null"
+ flag: "-MMD"
+ flag: "-MF"
+ }
+ expand_if_all_available: "skip_mostly_static"
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "global_whole_archive_open"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-all_load"
+ }
+ expand_if_all_available: "global_whole_archive"
+ }
+ }
+ feature {
+ name: "runtime_root_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ iterate_over: "runtime_library_search_directories"
+ }
+ expand_if_all_available: "runtime_library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_flags}"
+ iterate_over: "runtime_root_flags"
+ }
+ expand_if_all_available: "runtime_root_flags"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_entries}"
+ iterate_over: "runtime_root_entries"
+ }
+ expand_if_all_available: "runtime_root_entries"
+ }
+ }
+ feature {
+ name: "archiver_flags"
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "rcs"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "input_param_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-L%{library_search_directories}"
+ iterate_over: "library_search_directories"
+ }
+ expand_if_all_available: "library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{libopts}"
+ iterate_over: "libopts"
+ }
+ expand_if_all_available: "libopts"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-force_load,%{whole_archive_linker_params}"
+ iterate_over: "whole_archive_linker_params"
+ }
+ expand_if_all_available: "whole_archive_linker_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{linker_input_params}"
+ iterate_over: "linker_input_params"
+ }
+ expand_if_all_available: "linker_input_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag_group {
+ flag: "-Wl,--start-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.object_files}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.object_files}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ iterate_over: "libraries_to_link.object_files"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag: "-Wl,--end-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "interface_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "static_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "dynamic_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l:%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l:%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "versioned_dynamic_library"
+ }
+ }
+ iterate_over: "libraries_to_link"
+ }
+ expand_if_all_available: "libraries_to_link"
+ }
+ }
+ feature {
+ name: "force_pic_flags"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ expand_if_all_available: "force_pic"
+ }
+ }
+ feature {
+ name: "pch"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-include"
+ flag: "%{pch_file}"
+ }
+ }
+ }
+ feature {
+ name: "module_maps"
+ }
+ feature {
+ name: "use_objc_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-name=%{module_name}"
+ flag: "-iquote"
+ flag: "%{module_maps_dir}"
+ flag: "-fmodules-cache-path=%{modules_cache_path}"
+ }
+ }
+ }
+ feature {
+ name: "no_enable_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-maps"
+ }
+ }
+ requires {
+ feature: "use_objc_modules"
+ }
+ }
+ feature {
+ name: "apply_default_warnings"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-Wshorten-64-to-32"
+ flag: "-Wbool-conversion"
+ flag: "-Wconstant-conversion"
+ flag: "-Wduplicate-method-match"
+ flag: "-Wempty-body"
+ flag: "-Wenum-conversion"
+ flag: "-Wint-conversion"
+ flag: "-Wunreachable-code"
+ flag: "-Wmismatched-return-types"
+ flag: "-Wundeclared-selector"
+ flag: "-Wuninitialized"
+ flag: "-Wunused-function"
+ flag: "-Wunused-variable"
+ }
+ }
+ }
+ feature {
+ name: "preprocessor_defines"
+ 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: "-D%{preprocessor_defines}"
+ iterate_over: "preprocessor_defines"
+ }
+ }
+ }
+ feature {
+ name: "framework_paths"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-F%{framework_paths}"
+ iterate_over: "framework_paths"
+ }
+ }
+ }
+ feature {
+ name: "apply_default_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-DOS_IOS"
+ }
+ }
+ }
+ feature {
+ name: "include_system_dirs"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-isysroot"
+ flag: "%{sdk_dir}"
+ }
+ }
+ }
+ feature {
+ name: "objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fobjc-arc"
+ }
+ expand_if_all_available: "objc_arc"
+ }
+ }
+ feature {
+ name: "no_objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fno-objc-arc"
+ }
+ expand_if_all_available: "no_objc_arc"
+ }
+ }
+ feature {
+ name: "apple_env"
+ env_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-archive"
+ action: "objc-fully-link"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ env_entry {
+ key: "XCODE_VERSION_OVERRIDE"
+ value: "%{xcode_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_VERSION_OVERRIDE"
+ value: "%{apple_sdk_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_PLATFORM"
+ value: "%{apple_sdk_platform_value}"
+ }
+ }
+ }
+ feature {
+ name: "legacy_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "%{legacy_link_flags}"
+ iterate_over: "legacy_link_flags"
+ }
+ expand_if_all_available: "legacy_link_flags"
+ }
+ }
+ feature {
+ name: "linker_param_file"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ }
+ feature {
+ name: "version_min"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ 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: "-miphoneos-version-min=%{version_min}"
+ }
+ }
+ }
+ feature {
+ name: "dead_strip"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-dead_strip"
+ flag: "-no_dead_strip_inits_and_terms"
+ }
+ with_feature {
+ feature: "is_not_test_target"
+ }
+ }
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ requires {
+ feature: "opt"
+ }
+ }
+ 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: "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: "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: "asan"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-O1"
+ flag: "-gmlt"
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fno-sanitize-recover=all"
+ flag: "-DHEAPCHECK_DISABLE"
+ flag: "-DADDRESS_SANITIZER"
+ flag: "-D_GLIBCXX_ADDRESS_SANITIZER_ANNOTATIONS"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fsanitize-link-c++-runtime"
+ }
+ }
+ }
+ feature {
+ name: "coverage"
+ }
+ feature {
+ name: "llvm_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-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"
+ }
+ provides: "profile"
+ }
+ 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"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-lgcov"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "apply_implicit_frameworks"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Foundation"
+ flag: "-framework UIKit"
+ }
+ }
+ }
+ feature {
+ name: "bitcode_embedded"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fembed-bitcode"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-bitcode_verify"
+ flag: "-Xlinker"
+ flag: "-bitcode_hide_symbols"
+ flag: "-Xlinker"
+ flag: "-bitcode_symbol_map"
+ flag: "-Xlinker"
+ flag: "%{bitcode_symbol_map_path}"
+ }
+ }
+ }
+ feature {
+ name: "bitcode_embedded_markers"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fembed-bitcode-marker"
+ }
+ }
+ }
+ feature {
+ name: "cpp_linker_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ }
+ }
+ }
+ feature {
+ name: "dbg_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--DBG_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "fastbuild_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--FASTBUILD_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "opt_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--OPT_ONLY_FLAG"
+ }
+ }
+ }
+ action_config {
+ config_name: "c-compile"
+ action_name: "c-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-compile"
+ action_name: "c++-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-module-compile"
+ action_name: "c++-module-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-parsing"
+ action_name: "c++-header-parsing"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-preprocessing"
+ action_name: "c++-header-preprocessing"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-compile"
+ action_name: "objc-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7"
+ }
+ }
+ implies: "objc_actions"
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc++-compile"
+ action_name: "objc++-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7"
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ }
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "assemble"
+ action_name: "assemble"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "include_system_dirs"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "preprocess-assemble"
+ action_name: "preprocess-assemble"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-archive"
+ action_name: "objc-archive"
+ tool {
+ tool_path: "ios/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-filelist"
+ flag: "%{obj_list_path}"
+ flag: "-arch_only"
+ flag: "armv7"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{archive_path}"
+ }
+ }
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-executable"
+ action_name: "objc-executable"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "objc++-executable"
+ action_name: "objc++-executable"
+ tool {
+ tool_path: "ios/wrapped_clang++"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ flag_group {
+ flag: "-arch armv7"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "c++-link-executable"
+ action_name: "c++-link-executable"
+ tool {
+ tool_path: "ios/clang"
+ }
+ implies: "symbol_counts"
+ implies: "linkstamps"
+ implies: "output_execpath_flags_executable"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "force_pic_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-dynamic-library"
+ action_name: "c++-link-dynamic-library"
+ tool {
+ tool_path: "ios/clang"
+ }
+ implies: "has_configured_linker_path"
+ implies: "symbol_counts"
+ implies: "shared_flag"
+ implies: "linkstamps"
+ implies: "output_execpath_flags"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-static-library"
+ action_name: "c++-link-static-library"
+ tool {
+ tool_path: "ios/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-static-library"
+ action_name: "c++-link-alwayslink-static-library"
+ tool {
+ tool_path: "ios/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-pic-static-library"
+ action_name: "c++-link-pic-static-library"
+ tool {
+ tool_path: "ios/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-pic-static-library"
+ action_name: "c++-link-alwayslink-pic-static-library"
+ tool {
+ tool_path: "ios/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-interface-dynamic-library"
+ action_name: "c++-link-interface-dynamic-library"
+ tool {
+ tool_path: "ios/clang"
+ }
+ implies: "strip_debug_symbols"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-fully-link"
+ action_name: "objc-fully-link"
+ tool {
+ tool_path: "ios/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-arch_only"
+ flag: "armv7"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{fully_linked_archive_path}"
+ }
+ flag_group {
+ flag: "%{objc_library_exec_paths}"
+ iterate_over: "objc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{cc_library_exec_paths}"
+ iterate_over: "cc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{imported_library_exec_paths}"
+ iterate_over: "imported_library_exec_paths"
+ }
+ }
+ implies: "apple_env"
+ }
+ cc_target_os: "apple"
+}
+toolchain {
+ toolchain_identifier: "watchos_armv7k"
+ host_system_name: "x86_64-apple-macosx"
+ target_system_name: "armv7-apple-watchos"
+ target_cpu: "watchos_armv7k"
+ target_libc: "watchos"
+ compiler: "compiler"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "watchos/ar_wrapper"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "watchos/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "watchos/cpp"
+ }
+ tool_path {
+ name: "gcov"
+ path: "watchos/gcov"
+ }
+ tool_path {
+ name: "gcc"
+ path: "watchos/clang"
+ }
+ tool_path {
+ name: "ld"
+ path: "watchos/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "watchos/nm"
+ }
+ tool_path {
+ name: "strip"
+ path: "watchos/strip"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ needsPic: false
+ compiler_flag: "-DCOMPILER_GCC3"
+ compiler_flag: "-DCOMPILER_GCC4"
+ compiler_flag: "-Dunix"
+ compiler_flag: "-DOS_IOS"
+ compiler_flag: "-DU_HAVE_NL_LANGINFO_CODESET=0"
+ compiler_flag: "-DU_HAVE_STD_STRING"
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ cxx_flag: "-std=gnu++11"
+ cxx_flag: "-stdlib=libc++"
+ linker_flag: "-lc++"
+ linker_flag: "-target"
+ linker_flag: "armv7-apple-watchos"
+ compilation_mode_flags {
+ mode: FASTBUILD
+ compiler_flag: "-O0"
+ compiler_flag: "-DDEBUG"
+ }
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-Os"
+ compiler_flag: "-DNDEBUG"
+ }
+ compilation_mode_flags {
+ mode: DBG
+ compiler_flag: "-g"
+ compiler_flag: "-DDEBUG"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ make_variable {
+ name: "STACK_FRAME_UNLIMITED"
+ value: "-Wframe-larger-than=100000000 -Wno-vla"
+ }
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/usr/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-pthread"
+ unfiltered_cxx_flag: "-target"
+ unfiltered_cxx_flag: "armv7k-apple-watchos"
+ supports_normalizing_ar: false
+ default_python_version: "python2.7"
+ feature {
+ name: "no_legacy_features"
+ }
+ feature {
+ name: "fastbuild"
+ implies: "fastbuild_only_flag"
+ }
+ feature {
+ name: "opt"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g0"
+ }
+ with_feature {
+ feature: "no_generate_debug_symbols"
+ }
+ }
+ implies: "opt_only_flag"
+ }
+ feature {
+ name: "dbg"
+ implies: "dbg_only_flag"
+ }
+ feature {
+ name: "compile_all_modules"
+ }
+ feature {
+ name: "exclude_private_headers_in_module_maps"
+ }
+ feature {
+ name: "has_configured_linker_path"
+ }
+ feature {
+ name: "only_doth_headers_in_module_maps"
+ }
+ feature {
+ name: "is_not_test_target"
+ }
+ feature {
+ name: "generate_dsym_file"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "DSYM_HINT_LINKED_BINARY=%{linked_binary}"
+ flag: "DSYM_HINT_DSYM_PATH=%{dsym_path}"
+ flag: "DSYM_HINT_DSYM_BUNDLE_ZIP=%{dsym_bundle_zip}"
+ }
+ }
+ }
+ feature {
+ name: "no_generate_debug_symbols"
+ }
+ feature {
+ name: "generate_linkmap"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker -map"
+ flag: "-Xlinker %{linkmap_exec_path}"
+ }
+ }
+ }
+ feature {
+ name: "objc_actions"
+ implies: "objc-compile"
+ implies: "objc++-compile"
+ implies: "objc-fully-link"
+ implies: "objc-archive"
+ implies: "objc-executable"
+ implies: "objc++-executable"
+ implies: "assemble"
+ implies: "preprocess-assemble"
+ implies: "c-compile"
+ implies: "c++-compile"
+ implies: "c++-link-static-library"
+ implies: "c++-link-pic-static-library"
+ implies: "c++-link-interface-dynamic-library"
+ implies: "c++-link-dynamic-library"
+ implies: "c++-link-alwayslink-static-library"
+ implies: "c++-link-alwayslink-pic-static-library"
+ implies: "c++-link-executable"
+ }
+ feature {
+ name: "strip_debug_symbols"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-interface-dynamic-library"
+ flag_group {
+ flag: "-Wl,-S"
+ expand_if_all_available: "strip_debug_symbols"
+ }
+ }
+ }
+ feature {
+ name: "symbol_counts"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}"
+ }
+ expand_if_all_available: "symbol_counts_output"
+ }
+ }
+ feature {
+ name: "shared_flag"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-shared"
+ }
+ }
+ }
+ feature {
+ name: "linkstamps"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "%{linkstamp_paths}"
+ iterate_over: "linkstamp_paths"
+ }
+ expand_if_all_available: "linkstamp_paths"
+ }
+ }
+ feature {
+ name: "output_execpath_flags"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-o"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "output_execpath_flags_executable"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-o"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "/dev/null"
+ flag: "-MMD"
+ flag: "-MF"
+ }
+ expand_if_all_available: "skip_mostly_static"
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "global_whole_archive_open"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-all_load"
+ }
+ expand_if_all_available: "global_whole_archive"
+ }
+ }
+ feature {
+ name: "runtime_root_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ iterate_over: "runtime_library_search_directories"
+ }
+ expand_if_all_available: "runtime_library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_flags}"
+ iterate_over: "runtime_root_flags"
+ }
+ expand_if_all_available: "runtime_root_flags"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_entries}"
+ iterate_over: "runtime_root_entries"
+ }
+ expand_if_all_available: "runtime_root_entries"
+ }
+ }
+ feature {
+ name: "archiver_flags"
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "rcs"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "input_param_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-L%{library_search_directories}"
+ iterate_over: "library_search_directories"
+ }
+ expand_if_all_available: "library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{libopts}"
+ iterate_over: "libopts"
+ }
+ expand_if_all_available: "libopts"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-force_load,%{whole_archive_linker_params}"
+ iterate_over: "whole_archive_linker_params"
+ }
+ expand_if_all_available: "whole_archive_linker_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{linker_input_params}"
+ iterate_over: "linker_input_params"
+ }
+ expand_if_all_available: "linker_input_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag_group {
+ flag: "-Wl,--start-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.object_files}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.object_files}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ iterate_over: "libraries_to_link.object_files"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag: "-Wl,--end-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "interface_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "static_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "dynamic_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l:%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l:%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "versioned_dynamic_library"
+ }
+ }
+ iterate_over: "libraries_to_link"
+ }
+ expand_if_all_available: "libraries_to_link"
+ }
+ }
+ feature {
+ name: "force_pic_flags"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ expand_if_all_available: "force_pic"
+ }
+ }
+ feature {
+ name: "pch"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-include"
+ flag: "%{pch_file}"
+ }
+ }
+ }
+ feature {
+ name: "module_maps"
+ }
+ feature {
+ name: "use_objc_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-name=%{module_name}"
+ flag: "-iquote"
+ flag: "%{module_maps_dir}"
+ flag: "-fmodules-cache-path=%{modules_cache_path}"
+ }
+ }
+ }
+ feature {
+ name: "no_enable_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-maps"
+ }
+ }
+ requires {
+ feature: "use_objc_modules"
+ }
+ }
+ feature {
+ name: "apply_default_warnings"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-Wshorten-64-to-32"
+ flag: "-Wbool-conversion"
+ flag: "-Wconstant-conversion"
+ flag: "-Wduplicate-method-match"
+ flag: "-Wempty-body"
+ flag: "-Wenum-conversion"
+ flag: "-Wint-conversion"
+ flag: "-Wunreachable-code"
+ flag: "-Wmismatched-return-types"
+ flag: "-Wundeclared-selector"
+ flag: "-Wuninitialized"
+ flag: "-Wunused-function"
+ flag: "-Wunused-variable"
+ }
+ }
+ }
+ feature {
+ name: "preprocessor_defines"
+ 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: "-D%{preprocessor_defines}"
+ iterate_over: "preprocessor_defines"
+ }
+ }
+ }
+ feature {
+ name: "framework_paths"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-F%{framework_paths}"
+ iterate_over: "framework_paths"
+ }
+ }
+ }
+ feature {
+ name: "apply_default_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-DOS_IOS"
+ }
+ }
+ }
+ feature {
+ name: "include_system_dirs"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-isysroot"
+ flag: "%{sdk_dir}"
+ flag: "-F%{sdk_framework_dir}"
+ flag: "-F%{platform_developer_framework_dir}"
+ }
+ }
+ }
+ feature {
+ name: "objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fobjc-arc"
+ }
+ expand_if_all_available: "objc_arc"
+ }
+ }
+ feature {
+ name: "no_objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fno-objc-arc"
+ }
+ expand_if_all_available: "no_objc_arc"
+ }
+ }
+ feature {
+ name: "apple_env"
+ env_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-archive"
+ action: "objc-fully-link"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ env_entry {
+ key: "XCODE_VERSION_OVERRIDE"
+ value: "%{xcode_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_VERSION_OVERRIDE"
+ value: "%{apple_sdk_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_PLATFORM"
+ value: "%{apple_sdk_platform_value}"
+ }
+ }
+ }
+ feature {
+ name: "legacy_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "%{legacy_link_flags}"
+ iterate_over: "legacy_link_flags"
+ }
+ expand_if_all_available: "legacy_link_flags"
+ }
+ }
+ feature {
+ name: "linker_param_file"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ }
+ feature {
+ name: "version_min"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ 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: "-mwatchos-version-min=%{version_min}"
+ }
+ }
+ }
+ feature {
+ name: "dead_strip"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-dead_strip"
+ flag: "-no_dead_strip_inits_and_terms"
+ }
+ with_feature {
+ feature: "is_not_test_target"
+ }
+ }
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ requires {
+ feature: "opt"
+ }
+ }
+ 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: "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: "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: "asan"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-O1"
+ flag: "-gmlt"
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fno-sanitize-recover=all"
+ flag: "-DHEAPCHECK_DISABLE"
+ flag: "-DADDRESS_SANITIZER"
+ flag: "-D_GLIBCXX_ADDRESS_SANITIZER_ANNOTATIONS"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fsanitize-link-c++-runtime"
+ }
+ }
+ }
+ feature {
+ name: "coverage"
+ }
+ feature {
+ name: "llvm_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-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"
+ }
+ provides: "profile"
+ }
+ 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"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-lgcov"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "apply_implicit_frameworks"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Foundation"
+ flag: "-framework UIKit"
+ }
+ }
+ }
+ feature {
+ name: "bitcode_embedded"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fembed-bitcode"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-bitcode_verify"
+ flag: "-Xlinker"
+ flag: "-bitcode_hide_symbols"
+ flag: "-Xlinker"
+ flag: "-bitcode_symbol_map"
+ flag: "-Xlinker"
+ flag: "%{bitcode_symbol_map_path}"
+ }
+ }
+ }
+ feature {
+ name: "bitcode_embedded_markers"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fembed-bitcode-marker"
+ }
+ }
+ }
+ feature {
+ name: "cpp_linker_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ }
+ }
+ }
+ feature {
+ name: "dbg_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--DBG_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "fastbuild_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--FASTBUILD_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "opt_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--OPT_ONLY_FLAG"
+ }
+ }
+ }
+ action_config {
+ config_name: "c-compile"
+ action_name: "c-compile"
+ tool {
+ tool_path: "watchos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7k"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-compile"
+ action_name: "c++-compile"
+ tool {
+ tool_path: "watchos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7k"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-module-compile"
+ action_name: "c++-module-compile"
+ tool {
+ tool_path: "watchos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-parsing"
+ action_name: "c++-header-parsing"
+ tool {
+ tool_path: "watchos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-preprocessing"
+ action_name: "c++-header-preprocessing"
+ tool {
+ tool_path: "watchos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-compile"
+ action_name: "objc-compile"
+ tool {
+ tool_path: "watchos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7k"
+ }
+ }
+ implies: "objc_actions"
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc++-compile"
+ action_name: "objc++-compile"
+ tool {
+ tool_path: "watchos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7k"
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ }
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "assemble"
+ action_name: "assemble"
+ tool {
+ tool_path: "watchos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "include_system_dirs"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "preprocess-assemble"
+ action_name: "preprocess-assemble"
+ tool {
+ tool_path: "watchos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-archive"
+ action_name: "objc-archive"
+ tool {
+ tool_path: "watchos/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-filelist"
+ flag: "%{obj_list_path}"
+ flag: "-arch_only"
+ flag: "armv7k"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{archive_path}"
+ }
+ }
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-executable"
+ action_name: "objc-executable"
+ tool {
+ tool_path: "watchos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch armv7k"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "objc++-executable"
+ action_name: "objc++-executable"
+ tool {
+ tool_path: "watchos/wrapped_clang++"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ flag_group {
+ flag: "-arch armv7k"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "c++-link-executable"
+ action_name: "c++-link-executable"
+ tool {
+ tool_path: "watchos/clang"
+ }
+ implies: "symbol_counts"
+ implies: "linkstamps"
+ implies: "output_execpath_flags_executable"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "force_pic_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-dynamic-library"
+ action_name: "c++-link-dynamic-library"
+ tool {
+ tool_path: "watchos/clang"
+ }
+ implies: "has_configured_linker_path"
+ implies: "symbol_counts"
+ implies: "shared_flag"
+ implies: "linkstamps"
+ implies: "output_execpath_flags"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-static-library"
+ action_name: "c++-link-static-library"
+ tool {
+ tool_path: "watchos/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-static-library"
+ action_name: "c++-link-alwayslink-static-library"
+ tool {
+ tool_path: "watchos/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-pic-static-library"
+ action_name: "c++-link-pic-static-library"
+ tool {
+ tool_path: "watchos/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-pic-static-library"
+ action_name: "c++-link-alwayslink-pic-static-library"
+ tool {
+ tool_path: "watchos/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-interface-dynamic-library"
+ action_name: "c++-link-interface-dynamic-library"
+ tool {
+ tool_path: "watchos/clang"
+ }
+ implies: "strip_debug_symbols"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-fully-link"
+ action_name: "objc-fully-link"
+ tool {
+ tool_path: "watchos/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-arch_only"
+ flag: "armv7k"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{fully_linked_archive_path}"
+ }
+ flag_group {
+ flag: "%{objc_library_exec_paths}"
+ iterate_over: "objc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{cc_library_exec_paths}"
+ iterate_over: "cc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{imported_library_exec_paths}"
+ iterate_over: "imported_library_exec_paths"
+ }
+ }
+ implies: "apple_env"
+ }
+ cc_target_os: "apple"
+}
+toolchain {
+ toolchain_identifier: "tvos_arm64"
+ host_system_name: "x86_64-apple-macosx"
+ target_system_name: "arm64-apple-tvos"
+ target_cpu: "tvos_arm64"
+ target_libc: "tvos"
+ compiler: "compiler"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "tvos/ar_wrapper"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "tvos/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "tvos/cpp"
+ }
+ tool_path {
+ name: "gcov"
+ path: "tvos/gcov"
+ }
+ tool_path {
+ name: "gcc"
+ path: "tvos/clang"
+ }
+ tool_path {
+ name: "ld"
+ path: "tvos/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "tvos/nm"
+ }
+ tool_path {
+ name: "strip"
+ path: "tvos/strip"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ needsPic: false
+ compiler_flag: "-DCOMPILER_GCC3"
+ compiler_flag: "-DCOMPILER_GCC4"
+ compiler_flag: "-Dunix"
+ compiler_flag: "-DOS_TVOS"
+ compiler_flag: "-DU_HAVE_NL_LANGINFO_CODESET=0"
+ compiler_flag: "-DU_HAVE_STD_STRING"
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ cxx_flag: "-std=gnu++11"
+ cxx_flag: "-stdlib=libc++"
+ linker_flag: "-lc++"
+ linker_flag: "-target"
+ linker_flag: "arm64-apple-tvos"
+ compilation_mode_flags {
+ mode: FASTBUILD
+ compiler_flag: "-O0"
+ compiler_flag: "-DDEBUG"
+ }
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-Os"
+ compiler_flag: "-DNDEBUG"
+ compiler_flag: "-DNS_BLOCK_ASSERTIONS=1"
+ }
+ compilation_mode_flags {
+ mode: DBG
+ compiler_flag: "-g"
+ compiler_flag: "-DDEBUG"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ make_variable {
+ name: "STACK_FRAME_UNLIMITED"
+ value: "-Wframe-larger-than=100000000 -Wno-vla"
+ }
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/usr/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-pthread"
+ unfiltered_cxx_flag: "-target"
+ unfiltered_cxx_flag: "arm64-apple-tvos"
+ supports_normalizing_ar: false
+ default_python_version: "python2.7"
+ feature {
+ name: "no_legacy_features"
+ }
+ feature {
+ name: "fastbuild"
+ implies: "fastbuild_only_flag"
+ }
+ feature {
+ name: "opt"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g0"
+ }
+ with_feature {
+ feature: "no_generate_debug_symbols"
+ }
+ }
+ implies: "opt_only_flag"
+ }
+ feature {
+ name: "dbg"
+ implies: "dbg_only_flag"
+ }
+ feature {
+ name: "compile_all_modules"
+ }
+ feature {
+ name: "exclude_private_headers_in_module_maps"
+ }
+ feature {
+ name: "has_configured_linker_path"
+ }
+ feature {
+ name: "only_doth_headers_in_module_maps"
+ }
+ feature {
+ name: "is_not_test_target"
+ }
+ feature {
+ name: "generate_dsym_file"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "DSYM_HINT_LINKED_BINARY=%{linked_binary}"
+ flag: "DSYM_HINT_DSYM_PATH=%{dsym_path}"
+ flag: "DSYM_HINT_DSYM_BUNDLE_ZIP=%{dsym_bundle_zip}"
+ }
+ }
+ }
+ feature {
+ name: "no_generate_debug_symbols"
+ }
+ feature {
+ name: "generate_linkmap"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker -map"
+ flag: "-Xlinker %{linkmap_exec_path}"
+ }
+ }
+ }
+ feature {
+ name: "objc_actions"
+ implies: "objc-compile"
+ implies: "objc++-compile"
+ implies: "objc-fully-link"
+ implies: "objc-archive"
+ implies: "objc-executable"
+ implies: "objc++-executable"
+ implies: "assemble"
+ implies: "preprocess-assemble"
+ implies: "c-compile"
+ implies: "c++-compile"
+ implies: "c++-link-static-library"
+ implies: "c++-link-pic-static-library"
+ implies: "c++-link-interface-dynamic-library"
+ implies: "c++-link-dynamic-library"
+ implies: "c++-link-alwayslink-static-library"
+ implies: "c++-link-alwayslink-pic-static-library"
+ implies: "c++-link-executable"
+ }
+ feature {
+ name: "strip_debug_symbols"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-interface-dynamic-library"
+ flag_group {
+ flag: "-Wl,-S"
+ expand_if_all_available: "strip_debug_symbols"
+ }
+ }
+ }
+ feature {
+ name: "symbol_counts"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}"
+ }
+ expand_if_all_available: "symbol_counts_output"
+ }
+ }
+ feature {
+ name: "shared_flag"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-shared"
+ }
+ }
+ }
+ feature {
+ name: "linkstamps"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "%{linkstamp_paths}"
+ iterate_over: "linkstamp_paths"
+ }
+ expand_if_all_available: "linkstamp_paths"
+ }
+ }
+ feature {
+ name: "output_execpath_flags"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-o"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "output_execpath_flags_executable"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-o"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "/dev/null"
+ flag: "-MMD"
+ flag: "-MF"
+ }
+ expand_if_all_available: "skip_mostly_static"
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "global_whole_archive_open"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-all_load"
+ }
+ expand_if_all_available: "global_whole_archive"
+ }
+ }
+ feature {
+ name: "runtime_root_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ iterate_over: "runtime_library_search_directories"
+ }
+ expand_if_all_available: "runtime_library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_flags}"
+ iterate_over: "runtime_root_flags"
+ }
+ expand_if_all_available: "runtime_root_flags"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_entries}"
+ iterate_over: "runtime_root_entries"
+ }
+ expand_if_all_available: "runtime_root_entries"
+ }
+ }
+ feature {
+ name: "archiver_flags"
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "rcs"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "input_param_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-L%{library_search_directories}"
+ iterate_over: "library_search_directories"
+ }
+ expand_if_all_available: "library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{libopts}"
+ iterate_over: "libopts"
+ }
+ expand_if_all_available: "libopts"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-force_load,%{whole_archive_linker_params}"
+ iterate_over: "whole_archive_linker_params"
+ }
+ expand_if_all_available: "whole_archive_linker_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{linker_input_params}"
+ iterate_over: "linker_input_params"
+ }
+ expand_if_all_available: "linker_input_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag_group {
+ flag: "-Wl,--start-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.object_files}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.object_files}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ iterate_over: "libraries_to_link.object_files"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag: "-Wl,--end-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "interface_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "static_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "dynamic_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l:%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l:%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "versioned_dynamic_library"
+ }
+ }
+ iterate_over: "libraries_to_link"
+ }
+ expand_if_all_available: "libraries_to_link"
+ }
+ }
+ feature {
+ name: "force_pic_flags"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ expand_if_all_available: "force_pic"
+ }
+ }
+ feature {
+ name: "pch"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-include"
+ flag: "%{pch_file}"
+ }
+ }
+ }
+ feature {
+ name: "module_maps"
+ }
+ feature {
+ name: "use_objc_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-name=%{module_name}"
+ flag: "-iquote"
+ flag: "%{module_maps_dir}"
+ flag: "-fmodules-cache-path=%{modules_cache_path}"
+ }
+ }
+ }
+ feature {
+ name: "no_enable_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-maps"
+ }
+ }
+ requires {
+ feature: "use_objc_modules"
+ }
+ }
+ feature {
+ name: "apply_default_warnings"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-Wshorten-64-to-32"
+ flag: "-Wbool-conversion"
+ flag: "-Wconstant-conversion"
+ flag: "-Wduplicate-method-match"
+ flag: "-Wempty-body"
+ flag: "-Wenum-conversion"
+ flag: "-Wint-conversion"
+ flag: "-Wunreachable-code"
+ flag: "-Wmismatched-return-types"
+ flag: "-Wundeclared-selector"
+ flag: "-Wuninitialized"
+ flag: "-Wunused-function"
+ flag: "-Wunused-variable"
+ }
+ }
+ }
+ feature {
+ name: "preprocessor_defines"
+ 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: "-D%{preprocessor_defines}"
+ iterate_over: "preprocessor_defines"
+ }
+ }
+ }
+ feature {
+ name: "framework_paths"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-F%{framework_paths}"
+ iterate_over: "framework_paths"
+ }
+ }
+ }
+ feature {
+ name: "apply_default_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-DOS_TVOS"
+ }
+ }
+ }
+ feature {
+ name: "include_system_dirs"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-isysroot"
+ flag: "%{sdk_dir}"
+ }
+ }
+ }
+ feature {
+ name: "objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fobjc-arc"
+ }
+ expand_if_all_available: "objc_arc"
+ }
+ }
+ feature {
+ name: "no_objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fno-objc-arc"
+ }
+ expand_if_all_available: "no_objc_arc"
+ }
+ }
+ feature {
+ name: "apple_env"
+ env_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-archive"
+ action: "objc-fully-link"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ env_entry {
+ key: "XCODE_VERSION_OVERRIDE"
+ value: "%{xcode_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_VERSION_OVERRIDE"
+ value: "%{apple_sdk_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_PLATFORM"
+ value: "%{apple_sdk_platform_value}"
+ }
+ }
+ }
+ feature {
+ name: "legacy_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "%{legacy_link_flags}"
+ iterate_over: "legacy_link_flags"
+ }
+ expand_if_all_available: "legacy_link_flags"
+ }
+ }
+ feature {
+ name: "linker_param_file"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ }
+ feature {
+ name: "version_min"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ 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: "-mtvos-version-min=%{version_min}"
+ }
+ }
+ }
+ feature {
+ name: "dead_strip"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-dead_strip"
+ flag: "-no_dead_strip_inits_and_terms"
+ }
+ with_feature {
+ feature: "is_not_test_target"
+ }
+ }
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ requires {
+ feature: "opt"
+ }
+ }
+ 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: "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: "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: "asan"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-O1"
+ flag: "-gmlt"
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fno-sanitize-recover=all"
+ flag: "-DHEAPCHECK_DISABLE"
+ flag: "-DADDRESS_SANITIZER"
+ flag: "-D_GLIBCXX_ADDRESS_SANITIZER_ANNOTATIONS"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fsanitize-link-c++-runtime"
+ }
+ }
+ }
+ feature {
+ name: "coverage"
+ }
+ feature {
+ name: "llvm_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-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"
+ }
+ provides: "profile"
+ }
+ 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"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-lgcov"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "cpp_linker_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-lc++"
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ flag: "-target"
+ flag: "arm64-apple-tvos"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-lc++"
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ flag: "-target"
+ flag: "arm64-apple-tvos"
+ }
+ }
+ }
+ feature {
+ name: "apply_implicit_frameworks"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Foundation"
+ flag: "-framework UIKit"
+ }
+ }
+ }
+ feature {
+ name: "bitcode_embedded"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fembed-bitcode"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-bitcode_verify"
+ flag: "-Xlinker"
+ flag: "-bitcode_hide_symbols"
+ flag: "-Xlinker"
+ flag: "-bitcode_symbol_map"
+ flag: "-Xlinker"
+ flag: "%{bitcode_symbol_map_path}"
+ }
+ }
+ }
+ feature {
+ name: "bitcode_embedded_markers"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fembed-bitcode-marker"
+ }
+ }
+ }
+ feature {
+ name: "dbg_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--DBG_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "fastbuild_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--FASTBUILD_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "opt_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--OPT_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "unfiltered_cxx_flags"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-no-canonical-prefixes"
+ flag: "-pthread"
+ }
+ }
+ }
+ action_config {
+ config_name: "c-compile"
+ action_name: "c-compile"
+ tool {
+ tool_path: "tvos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "c++-compile"
+ action_name: "c++-compile"
+ tool {
+ tool_path: "tvos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "c++-module-compile"
+ action_name: "c++-module-compile"
+ tool {
+ tool_path: "tvos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "c++-header-parsing"
+ action_name: "c++-header-parsing"
+ tool {
+ tool_path: "tvos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "c++-header-preprocessing"
+ action_name: "c++-header-preprocessing"
+ tool {
+ tool_path: "tvos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "objc-compile"
+ action_name: "objc-compile"
+ tool {
+ tool_path: "tvos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ }
+ }
+ implies: "objc_actions"
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc++-compile"
+ action_name: "objc++-compile"
+ tool {
+ tool_path: "tvos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ }
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "assemble"
+ action_name: "assemble"
+ tool {
+ tool_path: "tvos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "include_system_dirs"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "preprocess-assemble"
+ action_name: "preprocess-assemble"
+ tool {
+ tool_path: "tvos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ implies: "unfiltered_cxx_flags"
+ }
+ action_config {
+ config_name: "objc-archive"
+ action_name: "objc-archive"
+ tool {
+ tool_path: "tvos/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-filelist"
+ flag: "%{obj_list_path}"
+ flag: "-arch_only"
+ flag: "arm64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{archive_path}"
+ }
+ }
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-executable"
+ action_name: "objc-executable"
+ tool {
+ tool_path: "tvos/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "objc++-executable"
+ action_name: "objc++-executable"
+ tool {
+ tool_path: "tvos/wrapped_clang++"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ flag_group {
+ flag: "-arch arm64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "c++-link-executable"
+ action_name: "c++-link-executable"
+ tool {
+ tool_path: "tvos/clang"
+ }
+ implies: "symbol_counts"
+ implies: "linkstamps"
+ implies: "output_execpath_flags_executable"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "force_pic_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-dynamic-library"
+ action_name: "c++-link-dynamic-library"
+ tool {
+ tool_path: "tvos/clang"
+ }
+ implies: "has_configured_linker_path"
+ implies: "symbol_counts"
+ implies: "shared_flag"
+ implies: "linkstamps"
+ implies: "output_execpath_flags"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-static-library"
+ action_name: "c++-link-static-library"
+ tool {
+ tool_path: "tvos/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-static-library"
+ action_name: "c++-link-alwayslink-static-library"
+ tool {
+ tool_path: "tvos/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-pic-static-library"
+ action_name: "c++-link-pic-static-library"
+ tool {
+ tool_path: "tvos/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-pic-static-library"
+ action_name: "c++-link-alwayslink-pic-static-library"
+ tool {
+ tool_path: "tvos/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-interface-dynamic-library"
+ action_name: "c++-link-interface-dynamic-library"
+ tool {
+ tool_path: "tvos/clang"
+ }
+ implies: "strip_debug_symbols"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-fully-link"
+ action_name: "objc-fully-link"
+ tool {
+ tool_path: "tvos/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-arch_only"
+ flag: "arm64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{fully_linked_archive_path}"
+ }
+ flag_group {
+ flag: "%{objc_library_exec_paths}"
+ iterate_over: "objc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{cc_library_exec_paths}"
+ iterate_over: "cc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{imported_library_exec_paths}"
+ iterate_over: "imported_library_exec_paths"
+ }
+ }
+ implies: "apple_env"
+ }
+ cc_target_os: "apple"
+}
+toolchain {
+ toolchain_identifier: "ios_arm64"
+ host_system_name: "x86_64-apple-macosx"
+ target_system_name: "arm64-apple-ios"
+ target_cpu: "ios_arm64"
+ target_libc: "ios"
+ compiler: "compiler"
+ abi_version: "local"
+ abi_libc_version: "local"
+ tool_path {
+ name: "ar"
+ path: "ios/ar_wrapper"
+ }
+ tool_path {
+ name: "compat-ld"
+ path: "ios/ld"
+ }
+ tool_path {
+ name: "cpp"
+ path: "ios/cpp"
+ }
+ tool_path {
+ name: "gcov"
+ path: "ios/gcov"
+ }
+ tool_path {
+ name: "gcc"
+ path: "ios/clang"
+ }
+ tool_path {
+ name: "ld"
+ path: "ios/ld"
+ }
+ tool_path {
+ name: "nm"
+ path: "ios/nm"
+ }
+ tool_path {
+ name: "strip"
+ path: "ios/strip"
+ }
+ tool_path {
+ name: "dwp"
+ path: "/usr/bin/dwp"
+ }
+ tool_path {
+ name: "objdump"
+ path: "/usr/bin/objdump"
+ }
+ needsPic: false
+ compiler_flag: "-DCOMPILER_GCC3"
+ compiler_flag: "-DCOMPILER_GCC4"
+ compiler_flag: "-Dunix"
+ compiler_flag: "-DOS_IOS"
+ compiler_flag: "-DU_HAVE_NL_LANGINFO_CODESET=0"
+ compiler_flag: "-DU_HAVE_STD_STRING"
+ compiler_flag: "-D__STDC_FORMAT_MACROS"
+ cxx_flag: "-std=gnu++11"
+ cxx_flag: "-stdlib=libc++"
+ linker_flag: "-lc++"
+ linker_flag: "-target"
+ linker_flag: "arm64-apple-ios"
+ compilation_mode_flags {
+ mode: FASTBUILD
+ compiler_flag: "-O0"
+ compiler_flag: "-DDEBUG"
+ }
+ compilation_mode_flags {
+ mode: OPT
+ compiler_flag: "-Os"
+ compiler_flag: "-DNDEBUG"
+ }
+ compilation_mode_flags {
+ mode: DBG
+ compiler_flag: "-g"
+ compiler_flag: "-DDEBUG"
+ }
+ linking_mode_flags {
+ mode: DYNAMIC
+ }
+ make_variable {
+ name: "STACK_FRAME_UNLIMITED"
+ value: "-Wframe-larger-than=100000000 -Wno-vla"
+ }
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"
+ cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_7.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/Applications/Xcode_8.2.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs"
+ cxx_builtin_include_directory: "/usr/include"
+ builtin_sysroot: ""
+ unfiltered_cxx_flag: "-no-canonical-prefixes"
+ unfiltered_cxx_flag: "-pthread"
+ unfiltered_cxx_flag: "-target"
+ unfiltered_cxx_flag: "arm64-apple-ios"
+ supports_normalizing_ar: false
+ default_python_version: "python2.7"
+ feature {
+ name: "no_legacy_features"
+ }
+ feature {
+ name: "fastbuild"
+ implies: "fastbuild_only_flag"
+ }
+ feature {
+ name: "opt"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g0"
+ }
+ with_feature {
+ feature: "no_generate_debug_symbols"
+ }
+ }
+ implies: "opt_only_flag"
+ }
+ feature {
+ name: "dbg"
+ implies: "dbg_only_flag"
+ }
+ feature {
+ name: "compile_all_modules"
+ }
+ feature {
+ name: "exclude_private_headers_in_module_maps"
+ }
+ feature {
+ name: "has_configured_linker_path"
+ }
+ feature {
+ name: "only_doth_headers_in_module_maps"
+ }
+ feature {
+ name: "is_not_test_target"
+ }
+ feature {
+ name: "generate_dsym_file"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "DSYM_HINT_LINKED_BINARY=%{linked_binary}"
+ flag: "DSYM_HINT_DSYM_PATH=%{dsym_path}"
+ flag: "DSYM_HINT_DSYM_BUNDLE_ZIP=%{dsym_bundle_zip}"
+ }
+ }
+ }
+ feature {
+ name: "no_generate_debug_symbols"
+ }
+ feature {
+ name: "generate_linkmap"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker -map"
+ flag: "-Xlinker %{linkmap_exec_path}"
+ }
+ }
+ }
+ feature {
+ name: "objc_actions"
+ implies: "objc-compile"
+ implies: "objc++-compile"
+ implies: "objc-fully-link"
+ implies: "objc-archive"
+ implies: "objc-executable"
+ implies: "objc++-executable"
+ implies: "assemble"
+ implies: "preprocess-assemble"
+ implies: "c-compile"
+ implies: "c++-compile"
+ implies: "c++-link-static-library"
+ implies: "c++-link-pic-static-library"
+ implies: "c++-link-interface-dynamic-library"
+ implies: "c++-link-dynamic-library"
+ implies: "c++-link-alwayslink-static-library"
+ implies: "c++-link-alwayslink-pic-static-library"
+ implies: "c++-link-executable"
+ }
+ feature {
+ name: "strip_debug_symbols"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-interface-dynamic-library"
+ flag_group {
+ flag: "-Wl,-S"
+ expand_if_all_available: "strip_debug_symbols"
+ }
+ }
+ }
+ feature {
+ name: "symbol_counts"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}"
+ }
+ expand_if_all_available: "symbol_counts_output"
+ }
+ }
+ feature {
+ name: "shared_flag"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-shared"
+ }
+ }
+ }
+ feature {
+ name: "linkstamps"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "%{linkstamp_paths}"
+ iterate_over: "linkstamp_paths"
+ }
+ expand_if_all_available: "linkstamp_paths"
+ }
+ }
+ feature {
+ name: "output_execpath_flags"
+ flag_set {
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-o"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "output_execpath_flags_executable"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-o"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "/dev/null"
+ flag: "-MMD"
+ flag: "-MF"
+ }
+ expand_if_all_available: "skip_mostly_static"
+ expand_if_all_available: "output_execpath"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "global_whole_archive_open"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-all_load"
+ }
+ expand_if_all_available: "global_whole_archive"
+ }
+ }
+ feature {
+ name: "runtime_root_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}"
+ iterate_over: "runtime_library_search_directories"
+ }
+ expand_if_all_available: "runtime_library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_flags}"
+ iterate_over: "runtime_root_flags"
+ }
+ expand_if_all_available: "runtime_root_flags"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{runtime_root_entries}"
+ iterate_over: "runtime_root_entries"
+ }
+ expand_if_all_available: "runtime_root_entries"
+ }
+ }
+ feature {
+ name: "archiver_flags"
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "rcs"
+ flag: "%{output_execpath}"
+ }
+ expand_if_all_available: "output_execpath"
+ }
+ }
+ feature {
+ name: "input_param_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-L%{library_search_directories}"
+ iterate_over: "library_search_directories"
+ }
+ expand_if_all_available: "library_search_directories"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{libopts}"
+ iterate_over: "libopts"
+ }
+ expand_if_all_available: "libopts"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "-Wl,-force_load,%{whole_archive_linker_params}"
+ iterate_over: "whole_archive_linker_params"
+ }
+ expand_if_all_available: "whole_archive_linker_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "%{linker_input_params}"
+ iterate_over: "linker_input_params"
+ }
+ expand_if_all_available: "linker_input_params"
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag_group {
+ flag: "-Wl,--start-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.object_files}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.object_files}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ iterate_over: "libraries_to_link.object_files"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag: "-Wl,--end-lib"
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file_group"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "object_file"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "interface_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "static_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "dynamic_library"
+ }
+ }
+ flag_group {
+ flag_group {
+ flag: "-l:%{libraries_to_link.name}"
+ expand_if_false: "libraries_to_link.is_whole_archive"
+ }
+ flag_group {
+ flag: "-Wl,-force_load,-l:%{libraries_to_link.name}"
+ expand_if_true: "libraries_to_link.is_whole_archive"
+ }
+ expand_if_equal {
+ variable: "libraries_to_link.type"
+ value: "versioned_dynamic_library"
+ }
+ }
+ iterate_over: "libraries_to_link"
+ }
+ expand_if_all_available: "libraries_to_link"
+ }
+ }
+ feature {
+ name: "force_pic_flags"
+ flag_set {
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-pie"
+ }
+ expand_if_all_available: "force_pic"
+ }
+ }
+ feature {
+ name: "pch"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "c-compile"
+ action: "c++-compile"
+ flag_group {
+ flag: "-include"
+ flag: "%{pch_file}"
+ }
+ }
+ }
+ feature {
+ name: "module_maps"
+ }
+ feature {
+ name: "use_objc_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-name=%{module_name}"
+ flag: "-iquote"
+ flag: "%{module_maps_dir}"
+ flag: "-fmodules-cache-path=%{modules_cache_path}"
+ }
+ }
+ }
+ feature {
+ name: "no_enable_modules"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fmodule-maps"
+ }
+ }
+ requires {
+ feature: "use_objc_modules"
+ }
+ }
+ feature {
+ name: "apply_default_warnings"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-Wshorten-64-to-32"
+ flag: "-Wbool-conversion"
+ flag: "-Wconstant-conversion"
+ flag: "-Wduplicate-method-match"
+ flag: "-Wempty-body"
+ flag: "-Wenum-conversion"
+ flag: "-Wint-conversion"
+ flag: "-Wunreachable-code"
+ flag: "-Wmismatched-return-types"
+ flag: "-Wundeclared-selector"
+ flag: "-Wuninitialized"
+ flag: "-Wunused-function"
+ flag: "-Wunused-variable"
+ }
+ }
+ }
+ feature {
+ name: "preprocessor_defines"
+ 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: "-D%{preprocessor_defines}"
+ iterate_over: "preprocessor_defines"
+ }
+ }
+ }
+ feature {
+ name: "framework_paths"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-F%{framework_paths}"
+ iterate_over: "framework_paths"
+ }
+ }
+ }
+ feature {
+ name: "apply_default_compiler_flags"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-DOS_IOS"
+ }
+ }
+ }
+ feature {
+ name: "include_system_dirs"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "assemble"
+ action: "preprocess-assemble"
+ flag_group {
+ flag: "-isysroot"
+ flag: "%{sdk_dir}"
+ }
+ }
+ }
+ feature {
+ name: "objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fobjc-arc"
+ }
+ expand_if_all_available: "objc_arc"
+ }
+ }
+ feature {
+ name: "no_objc_arc"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-fno-objc-arc"
+ }
+ expand_if_all_available: "no_objc_arc"
+ }
+ }
+ feature {
+ name: "apple_env"
+ env_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "c++-module-compile"
+ action: "c++-header-parsing"
+ action: "c++-header-preprocessing"
+ action: "assemble"
+ action: "preprocess-assemble"
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-archive"
+ action: "objc-fully-link"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ env_entry {
+ key: "XCODE_VERSION_OVERRIDE"
+ value: "%{xcode_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_VERSION_OVERRIDE"
+ value: "%{apple_sdk_version_override_value}"
+ }
+ env_entry {
+ key: "APPLE_SDK_PLATFORM"
+ value: "%{apple_sdk_platform_value}"
+ }
+ }
+ }
+ feature {
+ name: "legacy_link_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "%{legacy_link_flags}"
+ iterate_over: "legacy_link_flags"
+ }
+ expand_if_all_available: "legacy_link_flags"
+ }
+ }
+ feature {
+ name: "linker_param_file"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-Wl,@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ flag_set {
+ action: "c++-link-static-library"
+ action: "c++-link-alwayslink-static-library"
+ action: "c++-link-pic-static-library"
+ action: "c++-link-alwayslink-pic-static-library"
+ flag_group {
+ flag: "@%{linker_param_file}"
+ }
+ expand_if_all_available: "linker_param_file"
+ }
+ }
+ feature {
+ name: "version_min"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ 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: "-miphoneos-version-min=%{version_min}"
+ }
+ }
+ }
+ feature {
+ name: "dead_strip"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-dead_strip"
+ flag: "-no_dead_strip_inits_and_terms"
+ }
+ with_feature {
+ feature: "is_not_test_target"
+ }
+ }
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-g"
+ }
+ }
+ requires {
+ feature: "opt"
+ }
+ }
+ 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: "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: "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: "asan"
+ flag_set {
+ action: "c-compile"
+ action: "c++-compile"
+ action: "objc-compile"
+ action: "objc++-compile"
+ flag_group {
+ flag: "-O1"
+ flag: "-gmlt"
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fno-sanitize-recover=all"
+ flag: "-DHEAPCHECK_DISABLE"
+ flag: "-DADDRESS_SANITIZER"
+ flag: "-D_GLIBCXX_ADDRESS_SANITIZER_ANNOTATIONS"
+ flag: "-fno-omit-frame-pointer"
+ }
+ }
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound"
+ flag: "-fsanitize-link-c++-runtime"
+ }
+ }
+ }
+ feature {
+ name: "coverage"
+ }
+ feature {
+ name: "llvm_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-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"
+ }
+ provides: "profile"
+ }
+ 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"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fprofile-arcs"
+ flag: "-ftest-coverage"
+ flag: "-g"
+ }
+ }
+ flag_set {
+ action: "c++-link-interface-dynamic-library"
+ action: "c++-link-dynamic-library"
+ action: "c++-link-executable"
+ flag_group {
+ flag: "-lgcov"
+ }
+ }
+ requires {
+ feature: "coverage"
+ }
+ provides: "profile"
+ }
+ feature {
+ name: "apply_implicit_frameworks"
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-framework Foundation"
+ flag: "-framework UIKit"
+ }
+ }
+ }
+ feature {
+ name: "bitcode_embedded"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fembed-bitcode"
+ }
+ }
+ flag_set {
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-bitcode_verify"
+ flag: "-Xlinker"
+ flag: "-bitcode_hide_symbols"
+ flag: "-Xlinker"
+ flag: "-bitcode_symbol_map"
+ flag: "-Xlinker"
+ flag: "%{bitcode_symbol_map_path}"
+ }
+ }
+ }
+ feature {
+ name: "bitcode_embedded_markers"
+ flag_set {
+ action: "objc-compile"
+ action: "objc++-compile"
+ action: "objc-executable"
+ action: "objc++-executable"
+ flag_group {
+ flag: "-fembed-bitcode-marker"
+ }
+ }
+ }
+ feature {
+ name: "cpp_linker_flags"
+ flag_set {
+ action: "c++-link-executable"
+ action: "c++-link-dynamic-library"
+ flag_group {
+ flag: "-undefined"
+ flag: "dynamic_lookup"
+ }
+ }
+ }
+ feature {
+ name: "dbg_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--DBG_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "fastbuild_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--FASTBUILD_ONLY_FLAG"
+ }
+ }
+ }
+ feature {
+ name: "opt_only_flag"
+ flag_set {
+ action: "objc-compile"
+ flag_group {
+ flag: "--OPT_ONLY_FLAG"
+ }
+ }
+ }
+ action_config {
+ config_name: "c-compile"
+ action_name: "c-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-compile"
+ action_name: "c++-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ }
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-module-compile"
+ action_name: "c++-module-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-parsing"
+ action_name: "c++-header-parsing"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-header-preprocessing"
+ action_name: "c++-header-preprocessing"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-compile"
+ action_name: "objc-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ }
+ }
+ implies: "objc_actions"
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc++-compile"
+ action_name: "objc++-compile"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ }
+ implies: "apply_default_compiler_flags"
+ implies: "apply_default_warnings"
+ implies: "framework_paths"
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "assemble"
+ action_name: "assemble"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "include_system_dirs"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "preprocess-assemble"
+ action_name: "preprocess-assemble"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ implies: "preprocessor_defines"
+ implies: "include_system_dirs"
+ implies: "version_min"
+ implies: "objc_arc"
+ implies: "no_objc_arc"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-archive"
+ action_name: "objc-archive"
+ tool {
+ tool_path: "ios/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-filelist"
+ flag: "%{obj_list_path}"
+ flag: "-arch_only"
+ flag: "arm64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{archive_path}"
+ }
+ }
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-executable"
+ action_name: "objc-executable"
+ tool {
+ tool_path: "ios/wrapped_clang"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-arch arm64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "objc++-executable"
+ action_name: "objc++-executable"
+ tool {
+ tool_path: "ios/wrapped_clang++"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-stdlib=libc++"
+ flag: "-std=gnu++11"
+ }
+ flag_group {
+ flag: "-arch arm64"
+ }
+ flag_group {
+ flag: "-Xlinker"
+ flag: "-objc_abi_version"
+ flag: "-Xlinker"
+ flag: "2"
+ flag: "-Xlinker"
+ flag: "-rpath"
+ flag: "-Xlinker"
+ flag: "@executable_path/Frameworks"
+ flag: "-fobjc-link-runtime"
+ flag: "-ObjC"
+ }
+ flag_group {
+ flag: "-framework %{framework_names}"
+ iterate_over: "framework_names"
+ }
+ flag_group {
+ flag: "-weak_framework %{weak_framework_names}"
+ iterate_over: "weak_framework_names"
+ }
+ flag_group {
+ flag: "-l%{library_names}"
+ iterate_over: "library_names"
+ }
+ flag_group {
+ flag: "-filelist %{filelist}"
+ }
+ flag_group {
+ flag: "-o %{linked_binary}"
+ }
+ flag_group {
+ flag: "-force_load %{force_load_exec_paths}"
+ iterate_over: "force_load_exec_paths"
+ }
+ flag_group {
+ flag: "%{dep_linkopts}"
+ iterate_over: "dep_linkopts"
+ }
+ flag_group {
+ flag: "-Wl,%{attr_linkopts}"
+ iterate_over: "attr_linkopts"
+ }
+ }
+ implies: "include_system_dirs"
+ implies: "framework_paths"
+ implies: "version_min"
+ implies: "legacy_link_flags"
+ implies: "apple_env"
+ implies: "apply_implicit_frameworks"
+ }
+ action_config {
+ config_name: "c++-link-executable"
+ action_name: "c++-link-executable"
+ tool {
+ tool_path: "ios/clang"
+ }
+ implies: "symbol_counts"
+ implies: "linkstamps"
+ implies: "output_execpath_flags_executable"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "force_pic_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-dynamic-library"
+ action_name: "c++-link-dynamic-library"
+ tool {
+ tool_path: "ios/clang"
+ }
+ implies: "has_configured_linker_path"
+ implies: "symbol_counts"
+ implies: "shared_flag"
+ implies: "linkstamps"
+ implies: "output_execpath_flags"
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "input_param_flags"
+ implies: "legacy_link_flags"
+ implies: "strip_debug_symbols"
+ implies: "linker_param_file"
+ implies: "version_min"
+ implies: "apple_env"
+ implies: "cpp_linker_flags"
+ }
+ action_config {
+ config_name: "c++-link-static-library"
+ action_name: "c++-link-static-library"
+ tool {
+ tool_path: "ios/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-static-library"
+ action_name: "c++-link-alwayslink-static-library"
+ tool {
+ tool_path: "ios/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-pic-static-library"
+ action_name: "c++-link-pic-static-library"
+ tool {
+ tool_path: "ios/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-alwayslink-pic-static-library"
+ action_name: "c++-link-alwayslink-pic-static-library"
+ tool {
+ tool_path: "ios/ar_wrapper"
+ }
+ implies: "global_whole_archive_open"
+ implies: "runtime_root_flags"
+ implies: "archiver_flags"
+ implies: "input_param_flags"
+ implies: "linker_param_file"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "c++-link-interface-dynamic-library"
+ action_name: "c++-link-interface-dynamic-library"
+ tool {
+ tool_path: "ios/clang"
+ }
+ implies: "strip_debug_symbols"
+ implies: "apple_env"
+ }
+ action_config {
+ config_name: "objc-fully-link"
+ action_name: "objc-fully-link"
+ tool {
+ tool_path: "ios/libtool"
+ execution_requirement: "requires-darwin"
+ }
+ flag_set {
+ flag_group {
+ flag: "-static"
+ flag: "-arch_only"
+ flag: "arm64"
+ flag: "-syslibroot"
+ flag: "%{sdk_dir}"
+ flag: "-o"
+ flag: "%{fully_linked_archive_path}"
+ }
+ flag_group {
+ flag: "%{objc_library_exec_paths}"
+ iterate_over: "objc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{cc_library_exec_paths}"
+ iterate_over: "cc_library_exec_paths"
+ }
+ flag_group {
+ flag: "%{imported_library_exec_paths}"
+ iterate_over: "imported_library_exec_paths"
+ }
+ }
+ implies: "apple_env"
+ }
+ cc_target_os: "apple"
+}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MockJ2ObjcSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/MockJ2ObjcSupport.java
new file mode 100644
index 0000000000..6079543e01
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/MockJ2ObjcSupport.java
@@ -0,0 +1,101 @@
+// Copyright 2017 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.build.lib.packages.util;
+
+import java.io.IOException;
+
+/**
+ * Creates mock BUILD files required for J2Objc.
+ */
+public final class MockJ2ObjcSupport {
+ /**
+ * Setup the support for building with J2ObjC.
+ */
+ public static void setup(MockToolsConfig config) throws IOException {
+ config.create("third_party/java/j2objc/jre_emul.jar");
+ config.create("third_party/java/j2objc/jre.h");
+ config.create("third_party/java/j2objc/jre.m");
+ config.create("third_party/java/j2objc/runtime.h");
+ config.create("third_party/java/j2objc/runtime.m");
+ config.create("third_party/java/j2objc/proto_plugin_binary");
+ config.create("third_party/java/j2objc/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "licenses(['notice'])",
+ "",
+ "exports_files(['jre_emul.jar'])",
+ "",
+ "objc_library(",
+ " name = 'jre_emul_lib',",
+ " hdrs = ['jre_emul.h'],",
+ " srcs = ['jre_emul.m'],",
+ " deps = [':jre_core_lib', ':jre_io_lib'],",
+ " tags = ['j2objc_jre_lib'])",
+ "",
+ "objc_library(",
+ " name = 'jre_core_lib',",
+ " hdrs = ['jre_core.h'],",
+ " srcs = ['jre_core.m'],",
+ " tags = ['j2objc_jre_lib'])",
+ "",
+ "objc_library(",
+ " name = 'jre_io_lib',",
+ " hdrs = ['jre_io.h'],",
+ " srcs = ['jre_io.m'],",
+ " deps = [':jre_core_lib'],",
+ " tags = ['j2objc_jre_lib'])",
+ "",
+ "objc_library(",
+ " name = 'proto_runtime',",
+ " hdrs = ['runtime.h'],",
+ " srcs = ['runtime.m'])",
+ "",
+ "filegroup(",
+ " name = 'proto_plugin',",
+ " srcs = ['proto_plugin_binary'])");
+
+ config.create("tools/j2objc/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "licenses(['notice'])",
+ "filegroup(",
+ " name = 'j2objc_wrapper',",
+ " srcs = ['j2objc_wrapper.py'])",
+ "filegroup(",
+ " name = 'j2objc_header_map',",
+ " srcs = ['j2objc_header_map.py'])",
+ "exports_files(['j2objc_deploy.jar'])",
+ "filegroup(",
+ " name = 'j2objc_proto_blacklist',",
+ " srcs = ['//tools/j2objc/proto:blacklisted.proto'])");
+
+ config.create("tools/j2objc/proto/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "proto_library(name = 'blacklisted',",
+ " srcs = ['blacklisted.proto'],",
+ " java_api_version = 2,",
+ " j2objc_api_version = 1)");
+
+ config.create("tools/j2objc/proto/blacklisted.proto");
+
+ if (config.isRealFileSystem()) {
+ config.linkTool("tools/j2objc/j2objc_deploy.jar");
+ config.linkTool("tools/j2objc/j2objc_wrapper.py");
+ config.linkTool("tools/j2objc/j2objc_header_map.py");
+ } else {
+ config.create("tools/j2objc/j2objc_deploy.jar");
+ config.create("tools/j2objc/j2objc_wrapper.py");
+ config.create("tools/j2objc/j2objc_header_map.py");
+ }
+ }
+}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MockObjcSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/MockObjcSupport.java
new file mode 100644
index 0000000000..4cbf95a631
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/MockObjcSupport.java
@@ -0,0 +1,300 @@
+// Copyright 2017 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.build.lib.packages.util;
+
+import com.google.common.base.Joiner;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableList.Builder;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.io.ByteStreams;
+import com.google.devtools.build.lib.testutil.TestConstants;
+import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig;
+import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig.CToolchain;
+import com.google.protobuf.TextFormat;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * Creates mock BUILD files required for the objc rules.
+ */
+public final class MockObjcSupport {
+
+ private static final ImmutableList<String> DEFAULT_OSX_CROSSTOOL_DEPS_DIRS =
+ ImmutableList.of("third_party/bazel/tools/osx/crosstool");
+ private static final String DEFAULT_OSX_CROSSTOOL_DIR = "tools/osx/crosstool";
+ private static final String MOCK_OSX_CROSSTOOL_FILE =
+ "com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL";
+ /**
+ * The build label for the mock OSX crosstool configuration.
+ */
+ public static final String DEFAULT_OSX_CROSSTOOL =
+ "//" + DEFAULT_OSX_CROSSTOOL_DIR + ":crosstool";
+
+ public static final String DEFAULT_XCODE_VERSION = "7.3.1";
+ public static final String DEFAULT_IOS_SDK_VERSION = "8.4";
+
+ /**
+ * Sets up the support for building ObjC.
+ * Any partial toolchain line will be merged into every toolchain stanza in the crosstool
+ * loaded from file.
+ */
+ public static void setup(
+ MockToolsConfig config, String... partialToolchainLines) throws IOException {
+ for (String tool :
+ ImmutableSet.of(
+ "actoolwrapper",
+ "bundlemerge",
+ "objc_dummy.mm",
+ "environment_plist.sh",
+ "gcov",
+ "ibtoolwrapper",
+ "momcwrapper",
+ "plmerge",
+ "realpath",
+ "swiftstdlibtoolwrapper",
+ "testrunner",
+ "xcrunwrapper",
+ "mcov",
+ "libtool")) {
+ config.create("tools/objc/" + tool);
+ }
+ config.create(
+ "tools/objc/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "exports_files(glob(['**']))",
+ "filegroup(name = 'default_provisioning_profile', srcs = ['foo.mobileprovision'])",
+ "filegroup(name = 'compile_protos', srcs = ['compile_protos.py'])",
+ "filegroup(name = 'protobuf_compiler_wrapper', srcs = ['protobuf_compiler_wrapper.sh'])",
+ "filegroup(name = 'protobuf_compiler', srcs = ['protobuf_compiler_helper.py'])",
+ "filegroup(",
+ " name = 'protobuf_compiler_support',",
+ " srcs = ['proto_support', 'protobuf_compiler_helper.py'],",
+ ")",
+ "filegroup(name = 'xctest_infoplist', srcs = ['xctest.plist'])",
+ "filegroup(name = 'j2objc_dead_code_pruner', srcs = ['j2objc_dead_code_pruner.py'])",
+ "ios_application(name = 'xctest_app', binary = ':xctest_appbin')",
+ "objc_binary(name = 'xctest_appbin', srcs = ['objc_dummy.mm'])",
+ "filegroup(",
+ " name = 'protobuf_well_known_types',",
+ " srcs = ['//objcproto:well_known_type.proto'],",
+ ")",
+ "xcode_config(name = 'host_xcodes', default = ':version7_3_1')",
+ "xcode_version(",
+ " name = 'version7_3_1',",
+ " version = '" + DEFAULT_XCODE_VERSION + "',",
+ " default_ios_sdk_version = \"" + DEFAULT_IOS_SDK_VERSION + "\",",
+ ")",
+ "objc_library(name = 'dummy_lib', srcs = ['objc_dummy.mm'])");
+ config.create("tools/objc/foo.mobileprovision", "No such luck");
+ config.create("tools/objc/compile_protos.py");
+ config.create("tools/objc/xctest.plist");
+ config.create("tools/objc/proto_support");
+ config.create("tools/objc/ios_runner.sh.mac_template");
+ config.create("tools/objc/j2objc_dead_code_pruner.py");
+ config.create("tools/objc/header_scanner");
+ createCrosstoolPackage(config, partialToolchainLines);
+ }
+
+ /**
+ * Sets up mock IOS test support.
+ */
+ public static void setupIosTest(MockToolsConfig config) throws IOException {
+ config.create("tools/objc/precomp_testrunner_deploy.jar");
+ config.create("tools/objc/StdRedirect.dylib");
+ createMemleaksSim(config);
+ config.create("tools/objc/ios_test.sh.bazel_template");
+ }
+
+ /**
+ * Sets up mock IOS simulated device support.
+ */
+ public static void setupIosSimDevice(MockToolsConfig config) throws IOException {
+ config.create(
+ "tools/objc/sim_devices/BUILD",
+ "ios_device(",
+ " name = 'default',",
+ " ios_version = '9.8',",
+ " type = 'iChimpanzee',",
+ ")");
+ }
+
+ private static void createMemleaksSim(MockToolsConfig config) throws IOException {
+ config.create("tools/objc/memleaks/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "objc_library(",
+ " name = 'memleaks',",
+ " srcs = ['memleaks.m'],",
+ ")");
+
+ config.create("tools/objc/memleaks/libmemleaks.a");
+ config.create("tools/objc/memleaks_plugin");
+ }
+
+ /**
+ * Sets up the support for building protocol buffers for ObjC.
+ */
+ public static void setupObjcProto(MockToolsConfig config) throws IOException {
+ config.overwrite(
+ "WORKSPACE",
+ TestConstants.WORKSPACE_CONTENT + "bind(",
+ " name = 'objc_proto_lib',",
+ " actual = '//objcproto:ProtocolBuffers_lib',",
+ ")",
+ "bind(",
+ " name = 'objc_protobuf_lib',",
+ " actual = '//objcproto:protobuf_lib',",
+ ")");
+
+ config.create(
+ "objcproto/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "objc_library(",
+ " name = 'ProtocolBuffers_lib',",
+ " srcs = ['empty.m'],",
+ ")",
+ "objc_library(",
+ " name = 'protobuf_lib',",
+ " srcs = ['empty.m'],",
+ " hdrs = ['include/header.h'],",
+ " includes = ['include'],",
+ ")",
+ "exports_files(['well_known_type.proto'])",
+ "proto_library(",
+ " name = 'well_known_type_proto',",
+ " srcs = ['well_known_type.proto'],",
+ ")");
+ config.create("objcproto/empty.m");
+ config.create("objcproto/empty.cc");
+ config.create("objcproto/well_known_type.proto");
+ }
+
+ /**
+ * Test setup method which creates a package containing the mock OSX crosstool. The crosstool
+ * will be available at {@link #DEFAULT_OSX_CROSSTOOL}.
+ */
+ public static void createCrosstoolPackage(
+ MockToolsConfig config, String... partialToolchainLines) throws IOException {
+ if (config.isRealFileSystem()) {
+ for (String depDir : DEFAULT_OSX_CROSSTOOL_DEPS_DIRS) {
+ config.linkTools(depDir);
+ }
+ config.linkTools(DEFAULT_OSX_CROSSTOOL_DIR);
+ } else {
+ // Read the crosstool file into crosstoolString.
+ InputStream crosstoolFileStream =
+ MockObjcSupport.class.getClassLoader().getResourceAsStream(MOCK_OSX_CROSSTOOL_FILE);
+ String crosstoolString =
+ new String(ByteStreams.toByteArray(crosstoolFileStream), StandardCharsets.UTF_8);
+
+ // Create a config builder and merge the crosstoolString into it.
+ CrosstoolConfig.CrosstoolRelease.Builder configBuilder =
+ CrosstoolConfig.CrosstoolRelease.newBuilder();
+ TextFormat.merge(crosstoolString, configBuilder);
+
+ // Merge partialToolchainLines into the builder.
+ CToolchain.Builder toolchainBuilder = CToolchain.newBuilder();
+ TextFormat.merge(Joiner.on("\n").join(partialToolchainLines), toolchainBuilder);
+ CToolchain partialToolchain = toolchainBuilder.buildPartial();
+ for (CToolchain.Builder partialToolchainBuilder :
+ configBuilder.getToolchainBuilderList()) {
+ partialToolchainBuilder.mergeFrom(partialToolchain);
+ }
+
+ // Extract the modified crosstoolString and set things up so
+ // that tests can use a crosstool parsed from it.
+ crosstoolString = TextFormat.printToString(configBuilder);
+ config.overwrite(DEFAULT_OSX_CROSSTOOL_DIR + "/CROSSTOOL", crosstoolString);
+
+ // Create special lines specifying the compiler map entry for
+ // each toolchain.
+ StringBuilder compilerMap = new StringBuilder();
+ for (CToolchain toolchain : configBuilder.build().getToolchainList()) {
+ compilerMap.append(String.format("'%s|%s': ':cc-compiler-%s',\n",
+ toolchain.getTargetCpu(), toolchain.getCompiler(), toolchain.getTargetCpu()));
+ }
+
+ // Create the test BUILD file.
+ Builder<String> crosstoolBuild =
+ ImmutableList.<String>builder()
+ .add(
+ "exports_files(glob(['**']))",
+ "cc_toolchain_suite(",
+ " name = 'crosstool',",
+ " toolchains = { " + compilerMap + " },",
+ ")",
+ "",
+ "cc_library(",
+ " name = 'custom_malloc',",
+ ")",
+ "",
+ "filegroup(",
+ " name = 'empty',",
+ " srcs = [],",
+ ")",
+ "",
+ "filegroup(",
+ " name = 'link',",
+ " srcs = [",
+ " 'ar',",
+ " 'libempty.a',",
+ " '//tools/objc:libtool'",
+ " ],",
+ ")");
+
+ for (String arch :
+ ImmutableList.of(
+ "ios_x86_64",
+ "ios_i386",
+ "ios_armv7",
+ "ios_arm64",
+ "darwin_x86_64",
+ "watchos_i386",
+ "watchos_armv7k",
+ "tvos_x86_64",
+ "tvos_arm64",
+ // TODO(b/36471772): Remove 'k8' once unit tests do not require a host configuration
+ // transition from the apple crosstool configuration.
+ "k8")) {
+ crosstoolBuild.add(
+ "apple_cc_toolchain(",
+ " name = 'cc-compiler-" + arch + "',",
+ " all_files = ':empty',",
+ " compiler_files = ':empty',",
+ " cpu = 'ios',",
+ " dwp_files = ':empty',",
+ " dynamic_runtime_libs = [':empty'],",
+ " linker_files = ':link',",
+ " objcopy_files = ':empty',",
+ " static_runtime_libs = [':empty'],",
+ " strip_files = ':empty',",
+ " supports_param_files = 0,",
+ ")");
+ }
+
+ config.create(DEFAULT_OSX_CROSSTOOL_DIR + "/BUILD",
+ Joiner.on("\n").join(crosstoolBuild.build()));
+ }
+ }
+
+ /** Test setup for the Apple SDK targets that are used in tests. */
+ public static void setupAppleSdks(MockToolsConfig config) throws IOException {
+ config.create(
+ "third_party/apple_sdks/BUILD",
+ "package(default_visibility=['//visibility:public'])\n"
+ + "licenses([\"notice\"])\n"
+ + "filegroup(name = \"apple_sdk_compile\")");
+ }
+}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java
new file mode 100644
index 0000000000..0f815e2673
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/MockProtoSupport.java
@@ -0,0 +1,202 @@
+// Copyright 2017 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.build.lib.packages.util;
+
+import java.io.IOException;
+
+/**
+ * Creates mock BUILD files required for the proto_library rule.
+ */
+public final class MockProtoSupport {
+ /**
+ * Setup the support for building proto_library. You additionally need to setup support for each
+ * of the languages used in the specific test.
+ *
+ * <p>Cannot be used for integration tests that actually need to run protoc.
+ */
+ public static void setup(MockToolsConfig config) throws IOException {
+ createNetProto2(config);
+ // TODO(ulfjack): Consider moving these elsewhere; it's not needed for most proto_library tests.
+ createJsPbPlugin(config);
+ createJavascriptClosureProto2(config);
+ }
+
+ /**
+ * Create a dummy "net/proto2 compiler and proto APIs for all languages
+ * and versions.
+ */
+ private static void createNetProto2(MockToolsConfig config) throws IOException {
+ config.create("net/proto2/compiler/public/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "exports_files(['protocol_compiler'])");
+
+ if (config.isRealFileSystem()) {
+ // when using a "real" file system, import the jars and link to ensure compilation
+ config.create("java/com/google/io/protocol/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "java_import(name = 'protocol',",
+ " jars = [ 'protocol.jar' ])");
+ config.create("java/com/google/io/protocol2/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "java_import(name = 'protocol2',",
+ " jars = [ 'protocol2.jar' ])");
+
+ config.linkTool("net/proto2/compiler/public/release/protocol_compiler_linux",
+ "net/proto2/compiler/public/protocol_compiler");
+ config.linkTool("javatests/com/google/devtools/build/lib/prepackaged_protocol_deploy.jar",
+ "java/com/google/io/protocol/protocol.jar");
+ config.linkTool("javatests/com/google/devtools/build/lib/prepackaged_protocol2_deploy.jar",
+ "java/com/google/io/protocol2/protocol2.jar");
+ } else {
+ // for "fake" file systems, provide stub rules. This is different from the "real" filesystem,
+ // as it produces the interface jars that the production environment has.
+ config.create("java/com/google/io/protocol/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "java_library(name = 'protocol',",
+ " srcs = [ 'Protocol.java' ])");
+ config.create("java/com/google/io/protocol/Protocol.java");
+ config.create("java/com/google/io/protocol2/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "java_library(name = 'protocol2',",
+ " srcs = [ 'Protocol2.java' ])");
+ config.create("java/com/google/io/protocol/Protocol2.java");
+ }
+
+ config.create(
+ "java/com/google/protobuf/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "filegroup(name = 'protobuf_proto_sources', srcs = [])");
+
+ // RPC generator plugins.
+ config.create("net/rpc/compiler/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "cc_binary(name = 'proto2_py_plugin',",
+ " srcs = [ 'proto2_py_plugin.cc' ])",
+ "cc_binary(name = 'proto2_java_plugin',",
+ " srcs = [ 'proto2_java_plugin.cc' ])");
+
+ config.create("net/grpc/compiler/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "cc_binary(name = 'composite_cc_plugin',",
+ " srcs = [ 'composite_cc_plugin.cc' ])");
+
+ // Fake targets for proto API libs of all languages and versions.
+ config.create("net/proto2/public/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "cc_library(name = 'proto2',",
+ " srcs = [ 'proto2.cc' ])");
+ config.create("net/proto2/python/public/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "py_library(name = 'public',",
+ " srcs = [ 'pyproto2.py' ])");
+ config.create("net/proto2/bridge/public/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "cc_library(name = 'message_downgrader',",
+ " srcs = [ 'downgrader.cc' ])",
+ "cc_library(name = 'compatibility_mode_support',",
+ " srcs = [ 'compatibility.cc' ])");
+ config.create(
+ "net/proto/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "cc_library(name = 'proto',",
+ " srcs = [ 'proto.cc' ])",
+ "py_library(name = 'pyproto',",
+ " srcs = [ 'pyproto.py' ])");
+ config.create("net/proto/python/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "py_library(name = 'proto1',",
+ " srcs = [ 'pyproto.py' ])");
+ config.create("net/rpc/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "cc_library(name = 'rpc_noloas')");
+ config.create("net/rpc4/public/core/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "cc_library(name = 'rpc4_base')");
+ config.create("net/grpc/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "cc_library(name = 'grpc++_codegen_lib')");
+ config.create("net/rpc/python/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "py_library(name = 'python_lite',",
+ " srcs = [ 'pyrpc.py' ])");
+ config.create("java/com/google/net/rpc/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "java_library(name = 'rpc',",
+ " srcs = [ 'Rpc.java' ])",
+ "java_library(name = 'rpc_noloas_internal',",
+ " srcs = [ 'RpcNoloas.java' ])");
+ config.create("java/com/google/net/rpc3/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "java_library(name = 'rpc3',",
+ " deps = [':rpc3_noloas_internal'],",
+ " srcs = [ 'Rpc3.java' ])",
+ "java_library(name = 'rpc3_noloas_internal',",
+ " deps = ['//java/com/google/net/rpc:rpc_noloas_internal'],",
+ " srcs = [ 'Rpc3Noloas.java' ])");
+ config.create("net/proto2/proto/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "genrule(name = 'go_internal_bootstrap_hack',",
+ " srcs = [ 'descriptor.pb.go-prebuilt' ],",
+ " outs = [ 'descriptor.pb.go' ],",
+ " cmd = '')",
+ "proto_library(name='descriptor',",
+ " srcs=['descriptor.proto'],",
+ " internal_bootstrap_hack = 1)");
+ config.create("net/proto2/go/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "go_library(name = 'proto',",
+ " srcs = [ 'proto.go' ])");
+ config.create("net/proto2/compiler/go/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "go_binary(name = 'protoc-gen-go',",
+ " srcs = [ 'main.go' ])");
+ config.create("net/rpc/go/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "go_library(name = 'rpc',",
+ " srcs = [ 'rpc.go' ])");
+ config.create("go/context/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "go_library(name = 'context',",
+ " srcs = [ 'context.go' ])");
+ }
+
+ /**
+ * Create a dummy "java/com/google/apps/jspb" package.
+ */
+ private static void createJsPbPlugin(MockToolsConfig config) throws IOException {
+ config.create("java/com/google/apps/jspb/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "java_binary(name = 'JsPbCodeGeneratorPlugin',",
+ " srcs = ['jspb.java'])");
+ config.create(
+ "javascript/apps/jspb/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "js_library(name = 'message',",
+ " srcs = ['message.js'],",
+ " deps_mgmt = 'legacy')");
+ }
+
+ /**
+ * Create a dummy "javascript/closure/proto2" package.
+ */
+ private static void createJavascriptClosureProto2(MockToolsConfig config) throws IOException {
+ config.create(
+ "javascript/closure/proto2/BUILD",
+ "package(default_visibility=['//visibility:public'])",
+ "js_library(name = 'message',",
+ " srcs = ['message.js'],",
+ " deps_mgmt = 'legacy')");
+ }
+}