diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/packages')
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')"); + } +} |