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