diff options
Diffstat (limited to 'tools/osx/crosstool/CROSSTOOL.tpl')
-rw-r--r-- | tools/osx/crosstool/CROSSTOOL.tpl | 9856 |
1 files changed, 4933 insertions, 4923 deletions
diff --git a/tools/osx/crosstool/CROSSTOOL.tpl b/tools/osx/crosstool/CROSSTOOL.tpl index 9ca6ceacd5..0d0fc02d63 100644 --- a/tools/osx/crosstool/CROSSTOOL.tpl +++ b/tools/osx/crosstool/CROSSTOOL.tpl @@ -149,6 +149,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -160,174 +161,211 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - 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" + 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: "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: "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" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_MACOSX" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + 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: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - 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: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + 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: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_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,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" 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" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" 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" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -336,21 +374,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" 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" + 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: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -517,390 +565,341 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "link_cocoa" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-framework Cocoa" } } } feature { - name: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-Wl,@%{linker_param_file}" } + expand_if_all_available: "linker_param_file" } - } - feature { - name: "no_enable_modules" flag_set { - action: "objc-compile" - action: "objc++-compile" + 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: "-fmodule-maps" + flag: "@%{linker_param_file}" } - } - requires { - feature: "use_objc_modules" + expand_if_all_available: "linker_param_file" } } feature { - name: "apply_default_warnings" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" 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" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "preprocessor_defines" + name: "llvm_coverage_map_format" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } + requires { + feature: "run_coverage" + } } feature { - name: "framework_paths" + name: "module_maps" + } + feature { + name: "no_enable_modules" flag_set { action: "objc-compile" action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "-F%{framework_paths}" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "coverage" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" - } - } - flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" - action: "c++-link-executable" - flag_group { - flag: "-fprofile-instr-generate" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_MACOSX" - } - } + 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: "include_system_dirs" + name: "objc_arc" 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" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "bitcode_embedded" + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode-marker" + 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: "objc_arc" + name: "pch" 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" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - 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" + name: "run_coverage" + } + 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" - 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}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + 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: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_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}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" 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: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" - } - } - requires { - feature: "run_coverage" - } - } - feature { - name: "apply_implicit_frameworks" - flag_set { - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-framework Foundation" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } } feature { - name: "link_cocoa" + 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: "-framework Cocoa" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -918,8 +917,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -932,8 +931,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -946,83 +945,122 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "x86_64" - } + 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" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + 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: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "x86_64" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - 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: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -1035,36 +1073,43 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "x86_64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + 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: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "x86_64" } @@ -1114,17 +1159,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + 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-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "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-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -1175,106 +1262,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - 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" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_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" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -1303,6 +1290,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "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" + } cc_target_os: "apple" } toolchain { @@ -1401,6 +1402,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -1414,174 +1416,225 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" + 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: "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: "only_doth_headers_in_module_maps" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } 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" + 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: "strip_debug_symbols" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } feature { - name: "symbol_counts" + name: "apply_simulator_compiler_flags" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - 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: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + 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: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_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,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" 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" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" 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" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -1590,21 +1643,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" 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" + 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: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -1771,395 +1834,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + 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: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" 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" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + 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: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - 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" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - 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" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - 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" + name: "run_coverage" + } + 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" - 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}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + 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: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_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}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" 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}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "version_min" 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: "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: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-mios-simulator-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -2177,8 +2177,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -2191,8 +2191,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -2205,8 +2205,108 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_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: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_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" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + 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" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -2219,29 +2319,18 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "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" @@ -2270,61 +2359,17 @@ toolchain { implies: "apply_simulator_compiler_flags" } action_config { - config_name: "assemble" - action_name: "assemble" - tool { - tool_path: "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: "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" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "libtool" + tool_path: "wrapped_clang_pp" 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}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -2375,17 +2420,60 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + 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-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "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-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -2436,106 +2524,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - 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" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_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" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -2564,6 +2552,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "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" + } cc_target_os: "apple" } toolchain { @@ -2662,6 +2664,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -2675,174 +2678,225 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" + 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: "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: "only_doth_headers_in_module_maps" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } 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" + 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: "strip_debug_symbols" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } feature { - name: "symbol_counts" + name: "apply_simulator_compiler_flags" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - 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: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + 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: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_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,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" 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" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" 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" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -2851,21 +2905,33 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" 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" + 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: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" + flag: "-F%{sdk_framework_dir}" + flag: "-F%{platform_developer_framework_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -3032,397 +3098,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + 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: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" 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" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + 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: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - 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" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" - flag: "-F%{sdk_framework_dir}" - flag: "-F%{platform_developer_framework_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - 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" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - 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" + name: "run_coverage" + } + 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" - 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}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + 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: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_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}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" 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}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "version_min" 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: "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: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-mwatchos-simulator-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -3440,8 +3441,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -3454,8 +3455,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -3468,8 +3469,108 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_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: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_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" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + 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" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -3482,29 +3583,18 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "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" @@ -3533,61 +3623,17 @@ toolchain { implies: "apply_simulator_compiler_flags" } action_config { - config_name: "assemble" - action_name: "assemble" - tool { - tool_path: "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: "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" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "libtool" + tool_path: "wrapped_clang_pp" 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}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "i386" @@ -3638,17 +3684,60 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + 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-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "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-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "i386" @@ -3699,106 +3788,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - 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" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_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" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -3827,6 +3816,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "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" + } cc_target_os: "apple" } toolchain { @@ -3906,6 +3909,10 @@ toolchain { compiler_flag: "-DDEBUG" } compilation_mode_flags { + mode: DBG + compiler_flag: "-g" + } + compilation_mode_flags { mode: OPT compiler_flag: "-g0" compiler_flag: "-O2" @@ -3915,10 +3922,6 @@ toolchain { compiler_flag: "-fdata-sections" compiler_flag: "-DNS_BLOCK_ASSERTIONS=1" } - compilation_mode_flags { - mode: DBG - compiler_flag: "-g" - } linking_mode_flags { mode: DYNAMIC } @@ -3926,6 +3929,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -3939,186 +3943,239 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" + 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: "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: "only_doth_headers_in_module_maps" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_TVOS" + } + } } 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" + 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: "strip_debug_symbols" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } feature { - name: "symbol_counts" + name: "apply_simulator_compiler_flags" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - 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: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + 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: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "cpp_linker_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "%{output_execpath}" + flag: "-lc++" + flag: "-undefined" + flag: "dynamic_lookup" + flag: "-target" + flag: "x86_64-apple-tvos" } - expand_if_all_available: "output_execpath" } } feature { - name: "global_whole_archive_open" + name: "dbg" + } + feature { + name: "dead_strip" 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" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,-all_load" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "global_whole_archive" + } + requires { + feature: "opt" } } feature { - name: "cc_archiver_flags" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_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" + action: "c++-link-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-pie" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" + expand_if_all_available: "force_pic" } } feature { - name: "runtime_root_flags" + name: "framework_paths" 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" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-F%{framework_paths}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "gcc_coverage_map_format" 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" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{runtime_root_flags}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_root_flags" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -4127,9 +4184,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "-Wl,-all_load" + } + expand_if_all_available: "global_whole_archive" + } + } + feature { + name: "has_configured_linker_path" + } + 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 %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -4296,424 +4375,347 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + 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: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" 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" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + 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: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_TVOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - 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" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - 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" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - 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" + name: "run_coverage" + } + 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" - 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}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + 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: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_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}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" 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}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "unfiltered_cxx_flags" flag_set { action: "c-compile" action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" - } - } - requires { - feature: "run_coverage" - } - } - feature { - name: "apply_implicit_frameworks" - flag_set { - action: "objc-executable" - action: "objc++-executable" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-no-canonical-prefixes" + flag: "-pthread" } } } feature { - name: "apply_simulator_compiler_flags" + name: "use_objc_modules" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } } feature { - name: "unfiltered_cxx_flags" + 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++-module-compile" action: "c++-header-parsing" - action: "assemble" - action: "preprocess-assemble" - flag_group { - flag: "-no-canonical-prefixes" - flag: "-pthread" - } - } - } - feature { - name: "cpp_linker_flags" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-lc++" - flag: "-undefined" - flag: "dynamic_lookup" - flag: "-target" - flag: "x86_64-apple-tvos" + flag: "-mtvos-simulator-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" implies: "unfiltered_cxx_flags" } @@ -4733,8 +4735,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -4748,8 +4750,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -4763,87 +4765,125 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" - implies: "unfiltered_cxx_flags" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "x86_64" - } + 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-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + 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: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" - implies: "apply_simulator_compiler_flags" + implies: "cpp_linker_flags" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "x86_64" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - 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: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" - implies: "apply_simulator_compiler_flags" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" 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" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -4857,36 +4897,44 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "x86_64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + 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: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "x86_64" } @@ -4936,17 +4984,60 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + 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-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "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-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -4997,108 +5088,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - 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: "wrapped_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -5127,6 +5116,21 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "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" + } cc_target_os: "apple" } toolchain { @@ -5225,6 +5229,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -5238,174 +5243,225 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" + 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: "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: "only_doth_headers_in_module_maps" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } 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" + 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: "strip_debug_symbols" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } feature { - name: "symbol_counts" + name: "apply_simulator_compiler_flags" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - 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: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + 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: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_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,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" 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" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" 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" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -5414,21 +5470,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" 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" + 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: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -5595,395 +5661,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + 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: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" 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" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + 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: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - 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" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - 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" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - 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" + name: "run_coverage" + } + 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" - 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}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + 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: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_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}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" 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}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } - } - feature { - name: "run_coverage" } feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "version_min" 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: "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: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-mios-simulator-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -6001,8 +6004,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -6015,8 +6018,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -6029,8 +6032,108 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_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: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_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" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + 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" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -6043,29 +6146,18 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "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" @@ -6094,61 +6186,17 @@ toolchain { implies: "apply_simulator_compiler_flags" } action_config { - config_name: "assemble" - action_name: "assemble" - tool { - tool_path: "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: "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" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "libtool" + tool_path: "wrapped_clang_pp" 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}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "i386" @@ -6199,17 +6247,60 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + 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-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "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-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "i386" @@ -6260,106 +6351,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - 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" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_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" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -6388,6 +6379,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "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" + } cc_target_os: "apple" } toolchain { @@ -6486,6 +6491,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -6499,174 +6505,212 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - 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" + 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: "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: "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" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + 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: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" + flag: "-framework UIKit" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - 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: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + 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: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_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,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" 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" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" 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" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -6675,21 +6719,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" 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" + 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: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -6856,382 +6910,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + 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: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" 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" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + 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: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - 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" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - 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" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - 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" + name: "run_coverage" + } + 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" - 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}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + 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: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_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}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" 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}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } - } - feature { - name: "run_coverage" } feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + 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: "-framework Foundation" - flag: "-framework UIKit" + flag: "-miphoneos-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -7249,8 +7253,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -7263,8 +7267,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -7277,83 +7281,122 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "armv7" - } + 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" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + 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: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "armv7" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - 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: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -7366,36 +7409,43 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "armv7" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + 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: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "armv7" } @@ -7445,17 +7495,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + 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-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "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-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "armv7" @@ -7506,106 +7598,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - 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" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_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" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -7634,6 +7626,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "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" + } cc_target_os: "apple" } toolchain { @@ -7732,6 +7738,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -7745,174 +7752,212 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - 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" + 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: "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: "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" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + 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: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" + flag: "-framework UIKit" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - 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: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + 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: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_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,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" 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" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" 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" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -7921,21 +7966,33 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" 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" + 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: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" + flag: "-F%{sdk_framework_dir}" + flag: "-F%{platform_developer_framework_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -8102,384 +8159,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + 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: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" 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" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + 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: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - 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" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" - flag: "-F%{sdk_framework_dir}" - flag: "-F%{platform_developer_framework_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - 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" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - 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" + name: "run_coverage" + } + 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" - 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}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + 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: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_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}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" 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}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + 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: "-framework Foundation" - flag: "-framework UIKit" + flag: "-mwatchos-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -8497,8 +8502,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -8511,8 +8516,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -8525,83 +8530,122 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "armv7k" - } + 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" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + 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: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "armv7k" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - 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: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -8614,36 +8658,43 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "armv7k" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + 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: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "armv7k" } @@ -8693,17 +8744,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + 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-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "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-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "armv7k" @@ -8754,106 +8847,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - 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" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_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" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -8882,6 +8875,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "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" + } cc_target_os: "apple" } toolchain { @@ -8961,6 +8968,10 @@ toolchain { compiler_flag: "-DDEBUG" } compilation_mode_flags { + mode: DBG + compiler_flag: "-g" + } + compilation_mode_flags { mode: OPT compiler_flag: "-g0" compiler_flag: "-O2" @@ -8970,10 +8981,6 @@ toolchain { compiler_flag: "-fdata-sections" compiler_flag: "-DNS_BLOCK_ASSERTIONS=1" } - compilation_mode_flags { - mode: DBG - compiler_flag: "-g" - } linking_mode_flags { mode: DYNAMIC } @@ -8981,6 +8988,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -8994,186 +9002,226 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - 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" + 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: "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: "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" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_TVOS" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + 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: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" + flag: "-framework UIKit" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - 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: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + 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: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "cpp_linker_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "%{output_execpath}" + flag: "-lc++" + flag: "-undefined" + flag: "dynamic_lookup" + flag: "-target" + flag: "arm64-apple-tvos" } - expand_if_all_available: "output_execpath" } } feature { - name: "global_whole_archive_open" + name: "dbg" + } + feature { + name: "dead_strip" 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" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,-all_load" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "global_whole_archive" + } + requires { + feature: "opt" } } feature { - name: "cc_archiver_flags" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_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" + action: "c++-link-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-pie" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" + expand_if_all_available: "force_pic" } } feature { - name: "runtime_root_flags" + name: "framework_paths" 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" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-F%{framework_paths}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "gcc_coverage_map_format" 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" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{runtime_root_flags}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_root_flags" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -9182,9 +9230,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "-Wl,-all_load" + } + expand_if_all_available: "global_whole_archive" + } + } + feature { + name: "has_configured_linker_path" + } + 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 %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -9351,368 +9421,287 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + 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: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" 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" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + 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: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_TVOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - 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" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - 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" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - 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" + name: "run_coverage" + } + 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" - 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}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + 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: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_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}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" 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}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" - } - } - requires { - feature: "opt" - } - } - feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" - flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" - } - } - requires { - feature: "run_coverage" - } - } - feature { - name: "gcc_coverage_map_format" - flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "symbol_counts" flag_set { - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { @@ -9731,31 +9720,48 @@ toolchain { } } feature { - name: "cpp_linker_flags" + 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: "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: "-lc++" - flag: "-undefined" - flag: "dynamic_lookup" - flag: "-target" - flag: "arm64-apple-tvos" + flag: "-mtvos-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" implies: "unfiltered_cxx_flags" } @@ -9775,8 +9781,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -9790,8 +9796,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -9805,85 +9811,125 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" - implies: "unfiltered_cxx_flags" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "arm64" - } + 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-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + 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: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" + implies: "cpp_linker_flags" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "arm64" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - 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: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" 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" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -9897,36 +9943,43 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "arm64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + 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: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "arm64" } @@ -9976,17 +10029,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + 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-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "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-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "arm64" @@ -10037,108 +10132,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - 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: "wrapped_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -10167,6 +10160,21 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "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" + } cc_target_os: "apple" } toolchain { @@ -10265,6 +10273,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -10278,174 +10287,212 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - 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" + 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: "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: "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" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + 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: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" + flag: "-framework UIKit" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - 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: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + 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: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_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,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" 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" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" 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" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -10454,21 +10501,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" 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" + 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: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -10635,382 +10692,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + 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: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" 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" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + 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: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - 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" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - 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" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - 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" + name: "run_coverage" + } + 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" - 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}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + 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: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_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}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" 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}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + 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: "-framework Foundation" - flag: "-framework UIKit" + flag: "-miphoneos-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -11028,8 +11035,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -11042,8 +11049,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -11056,83 +11063,122 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "arm64" - } + 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" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + 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: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "arm64" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - 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: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -11145,36 +11191,43 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "arm64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + 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: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "arm64" } @@ -11224,17 +11277,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + 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-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "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-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "arm64" @@ -11285,106 +11380,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - 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" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_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" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -11413,6 +11408,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "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" + } cc_target_os: "apple" } toolchain { @@ -11491,6 +11500,10 @@ toolchain { compiler_flag: "-DDEBUG" } compilation_mode_flags { + mode: DBG + compiler_flag: "-g" + } + compilation_mode_flags { mode: OPT compiler_flag: "-g0" compiler_flag: "-O2" @@ -11500,10 +11513,6 @@ toolchain { compiler_flag: "-fdata-sections" compiler_flag: "-DNS_BLOCK_ASSERTIONS=1" } - compilation_mode_flags { - mode: DBG - compiler_flag: "-g" - } linking_mode_flags { mode: DYNAMIC } @@ -11514,6 +11523,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -11530,174 +11540,212 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - 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" + 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: "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: "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" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + 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: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" + flag: "-framework UIKit" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - 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: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + 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: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_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,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" 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" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" 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" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -11706,21 +11754,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" 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" + 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: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -11887,382 +11945,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + 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: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" 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" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + 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: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - 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" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - 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" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - 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" + name: "run_coverage" + } + 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" - 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}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + 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: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_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}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" 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: "-m<platform_for_version_min>-version-min=%{version_min}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } - } - feature { - name: "run_coverage" } feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + 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: "-framework Foundation" - flag: "-framework UIKit" + flag: "-m<platform_for_version_min>-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -12280,8 +12288,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -12294,8 +12302,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -12308,83 +12316,122 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "<architecture>" - } + 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" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + 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: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "<architecture>" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - 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: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -12397,36 +12444,43 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "<architecture>" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + 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: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "<architecture>" } @@ -12476,17 +12530,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "<architecture>" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" + } + } + implies: "apple_env" + } + action_config { + config_name: "objc-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "<architecture>" } + } + 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-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "<architecture>" @@ -12537,106 +12633,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - 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" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_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" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_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: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -12665,5 +12661,19 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "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" + } cc_target_os: "apple" } |