diff options
author | dmarting <dmarting@google.com> | 2017-05-02 15:30:23 +0200 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2017-05-02 15:44:41 +0200 |
commit | 5fc036efd389e99470b7a9c45c1db87834675f68 (patch) | |
tree | 9e8a3ca1615447638789f51972f0abf8ff314473 /tools | |
parent | 7beadb7277453efec7e12b925005e7f0e003b592 (diff) |
Automated g4 rollback of commit 5038016e6573962d2554fcf9c10faa0cca8714e2.
*** Reason for rollback ***
Broke rules_go and all its dependencies:
http://ci.bazel.io/job/rules_web/BAZEL_VERSION=HEAD,PLATFORM_NAME=darwin-x86_64/464/console
http://ci.bazel.io/job/rules_go/BAZEL_VERSION=HEAD,PLATFORM_NAME=darwin-x86_64/823/console
http://ci.bazel.io/job/buildifier/BAZEL_VERSION=HEAD,PLATFORM_NAME=darwin-x86_64/557/console
Bisected with `bazel build ...` in rules_go
The error message is still -whole-archive appearing in rules_go.
*** Original change description ***
Rollforward of: Basic open-source crosstool to support targeting apple platform types.
RELNOTES: None.
PiperOrigin-RevId: 154825240
Diffstat (limited to 'tools')
-rw-r--r-- | tools/cpp/cc_configure.bzl | 193 | ||||
-rwxr-xr-x | tools/objc/libtool.sh | 10 | ||||
-rw-r--r-- | tools/osx/crosstool/BUILD.tpl | 71 | ||||
-rw-r--r-- | tools/osx/crosstool/CROSSTOOL.tpl | 9856 | ||||
-rw-r--r-- | tools/osx/crosstool/osx_archs.bzl | 28 | ||||
-rw-r--r-- | tools/osx/crosstool/wrapped_clang.tpl | 10 | ||||
-rw-r--r-- | tools/osx/crosstool/wrapped_clang_pp.tpl | 10 | ||||
-rw-r--r-- | tools/osx/xcode_configure.bzl | 101 |
8 files changed, 5041 insertions, 5238 deletions
diff --git a/tools/cpp/cc_configure.bzl b/tools/cpp/cc_configure.bzl index 7754c8376d..4e77db5e6b 100644 --- a/tools/cpp/cc_configure.bzl +++ b/tools/cpp/cc_configure.bzl @@ -13,7 +13,6 @@ # limitations under the License. """Rules for configuring the C++ toolchain (experimental).""" -load("@bazel_tools//tools/osx:xcode_configure.bzl", "run_xcode_locator") def _get_value(it): """Convert `it` in serialized protobuf format.""" @@ -111,7 +110,7 @@ def _execute(repository_ctx, command, environment = None, return stripped_stdout -def _get_tool_paths(repository_ctx, cc): +def _get_tool_paths(repository_ctx, darwin, cc): """Compute the path to the various tools.""" return {k: _which(repository_ctx, k, "/usr/bin/" + k) for k in [ @@ -125,7 +124,8 @@ def _get_tool_paths(repository_ctx, cc): "strip", ]} + { "gcc": cc, - "ar": _which(repository_ctx, "ar", "/usr/bin/ar") + "ar": "/usr/bin/libtool" + if darwin else _which(repository_ctx, "ar", "/usr/bin/ar") } @@ -220,7 +220,7 @@ def _is_gold_supported(repository_ctx, cc): ]) return result.return_code == 0 -def _crosstool_content(repository_ctx, cc, cpu_value): +def _crosstool_content(repository_ctx, cc, cpu_value, darwin): """Return the content for the CROSSTOOL file, in a dictionary.""" supports_gold_linker = _is_gold_supported(repository_ctx, cc) return { @@ -236,7 +236,7 @@ def _crosstool_content(repository_ctx, cc, cpu_value): "supports_interface_shared_objects": False, "supports_normalizing_ar": False, "supports_start_end_lib": supports_gold_linker, - "target_libc": _get_env_var(repository_ctx, "BAZEL_TARGET_LIBC", "local", False), + "target_libc": "macosx" if darwin else _get_env_var(repository_ctx, "BAZEL_TARGET_LIBC", "local", False), "target_cpu": _get_env_var(repository_ctx, "BAZEL_TARGET_CPU", cpu_value, False), "target_system_name": _get_env_var(repository_ctx, "BAZEL_TARGET_SYSTEM", "local", False), "cxx_flag": [ @@ -252,17 +252,24 @@ def _crosstool_content(repository_ctx, cc, cpu_value): repository_ctx, cc, "-Wl,-no-as-needed" ) + _add_option_if_supported( repository_ctx, cc, "-Wl,-z,relro,-z,now" - ) + (["-B" + str(repository_ctx.path(cc).dirname), - # Always have -B/usr/bin, see https://github.com/bazelbuild/bazel/issues/760. - "-B/usr/bin", - # Gold linker only? Can we enable this by default? - # "-Wl,--warn-execstack", - # "-Wl,--detect-odr-violations" - ] + _add_option_if_supported( - # Have gcc return the exit code from ld. - repository_ctx, cc, "-pass-exit-codes") - ), - "ar_flag": [], + ) + ( + [ + "-undefined", + "dynamic_lookup", + "-headerpad_max_install_names", + ] if darwin else [ + "-B" + str(repository_ctx.path(cc).dirname), + # Always have -B/usr/bin, see https://github.com/bazelbuild/bazel/issues/760. + "-B/usr/bin", + # Gold linker only? Can we enable this by default? + # "-Wl,--warn-execstack", + # "-Wl,--detect-odr-violations" + ] + _add_option_if_supported( + # Have gcc return the exit code from ld. + repository_ctx, cc, "-pass-exit-codes" + ) + ), + "ar_flag": ["-static", "-s", "-o"] if darwin else [], "cxx_builtin_include_directory": _get_cxx_inc_directories(repository_ctx, cc), "objcopy_embed_flag": ["-I", "binary"], "unfiltered_cxx_flag": @@ -285,7 +292,7 @@ def _crosstool_content(repository_ctx, cc, cpu_value): # All warnings are enabled. Maybe enable -Werror as well? "-Wall", # Enable a few more warnings that aren't part of -Wall. - ] + ([ + ] + (["-Wthread-safety", "-Wself-assign"] if darwin else [ "-B" + str(repository_ctx.path(cc).dirname), # Always have -B/usr/bin, see https://github.com/bazelbuild/bazel/issues/760. "-B/usr/bin", @@ -343,7 +350,7 @@ def _get_windows_msys_crosstool_content(repository_ctx): ' tool_path { name: "objdump" path: "%susr/bin/objdump" }\n' % msys_root + ' tool_path { name: "strip" path: "%susr/bin/strip" }'% msys_root ) -def _opt_content(): +def _opt_content(darwin): """Return the content of the opt specific section of the CROSSTOOL file.""" return { "compiler_flag": [ @@ -369,7 +376,7 @@ def _opt_content(): "-ffunction-sections", "-fdata-sections" ], - "linker_flag": ["-Wl,--gc-sections"] + "linker_flag": [] if darwin else ["-Wl,--gc-sections"] } @@ -621,7 +628,23 @@ def _get_env(repository_ctx): else: return "" -def _coverage_feature(): +def _coverage_feature(darwin): + if darwin: + compile_flags = """flag_group { + flag: '-fprofile-instr-generate' + flag: '-fcoverage-mapping' + }""" + link_flags = """flag_group { + flag: '-fprofile-instr-generate' + }""" + else: + compile_flags = """flag_group { + flag: '-fprofile-arcs' + flag: '-ftest-coverage' + }""" + link_flags = """flag_group { + flag: '-lgcov' + }""" return """ feature { name: 'coverage' @@ -633,51 +656,17 @@ def _coverage_feature(): action: 'c++-header-parsing' action: 'c++-header-preprocessing' action: 'c++-module-compile' - flag_group { - flag: '-fprofile-arcs' - flag: '-ftest-coverage' - } + """ + compile_flags + """ } flag_set { action: 'c++-link-interface-dynamic-library' action: 'c++-link-dynamic-library' action: 'c++-link-executable' - flag_group { - flag: '-lgcov' - } + """ + link_flags + """ } } """ -def _get_darwin_cxx_inc_directories(repository_ctx, cc): - """Compute the list of default C++ include directories on darwin. - - Uses the xcode-locator tool to add all xcode developer directories to the - list of builtin include paths. - - This should only be invoked on a darwin OS, as xcode-locator cannot be built - otherwise. - - Args: - repository_ctx: The repository context. - cc: The default C++ compiler on the local system. - Returns: - A 2-tuple containing: - include_paths: A list of builtin include paths. - err: An error string describing the error that occurred when attempting - to build and run xcode-locator, or None if the run was successful. - """ - - (toolchains, xcodeloc_err) = run_xcode_locator(repository_ctx, - Label("@bazel_tools//tools/osx:xcode_locator.m")) - - # TODO(cparsons): Falling back to the default C++ compiler builtin include - # paths shouldn't be unnecessary once all actions are using xcrun. - include_dirs = _get_cxx_inc_directories(repository_ctx, cc) - for toolchain in toolchains: - include_dirs.append(toolchain.developer_dir) - return (include_dirs, xcodeloc_err) - def _impl(repository_ctx): repository_ctx.file("tools/cpp/empty.cc", "int main() {}") cpu_value = _get_cpu_value(repository_ctx) @@ -746,69 +735,37 @@ def _impl(repository_ctx): else: darwin = cpu_value == "darwin" cc = _find_cc(repository_ctx) + tool_paths = _get_tool_paths(repository_ctx, darwin, + "cc_wrapper.sh" if darwin else str(cc)) + crosstool_content = _crosstool_content(repository_ctx, cc, cpu_value, darwin) + opt_content = _opt_content(darwin) + dbg_content = _dbg_content() + _tpl(repository_ctx, "BUILD", { + "%{name}": cpu_value, + "%{supports_param_files}": "0" if darwin else "1", + "%{cc_compiler_deps}": ":cc_wrapper" if darwin else ":empty", + "%{compiler}": _get_env_var(repository_ctx, "BAZEL_COMPILER", "compiler", False), + }) _tpl(repository_ctx, - "osx_cc_wrapper.sh" if darwin else "linux_cc_wrapper.sh", - {"%{cc}": str(cc), "%{env}": _get_env(repository_ctx)}, - "cc_wrapper.sh") - if darwin: - repository_ctx.symlink( - Label("@bazel_tools//tools/objc:xcrunwrapper.sh"), "xcrunwrapper.sh") - repository_ctx.symlink( - Label("@bazel_tools//tools/objc:libtool.sh"), "libtool") - repository_ctx.symlink( - Label("@bazel_tools//tools/objc:make_hashed_objlist.py"), - "make_hashed_objlist.py") - repository_ctx.symlink( - Label("@bazel_tools//tools/osx/crosstool:wrapped_clang.tpl"), - "wrapped_clang") - repository_ctx.symlink( - Label("@bazel_tools//tools/osx/crosstool:wrapped_clang_pp.tpl"), - "wrapped_clang_pp") - repository_ctx.symlink( - Label("@bazel_tools//tools/osx/crosstool:BUILD.tpl"), - "BUILD") - repository_ctx.symlink( - Label("@bazel_tools//tools/osx/crosstool:osx_archs.bzl"), - "osx_archs.bzl") - (include_paths, xcodeloc_err) = _get_darwin_cxx_inc_directories(repository_ctx, cc) - cxx_include_directories = [] - for path in include_paths: - cxx_include_directories.append(("cxx_builtin_include_directory: \"%s\"" % path)) - if xcodeloc_err: - cxx_include_directories.append("# Error: " + xcodeloc_err + "\n") - repository_ctx.template( - "CROSSTOOL", - Label("@bazel_tools//tools/osx/crosstool:CROSSTOOL.tpl"), - {"%{cxx_builtin_include_directory}": "\n".join(cxx_include_directories)}) - else: - tool_paths = _get_tool_paths(repository_ctx, str(cc)) - crosstool_content = _crosstool_content(repository_ctx, cc, cpu_value) - opt_content = _opt_content() - dbg_content = _dbg_content() - _tpl(repository_ctx, "BUILD", { - "%{name}": cpu_value, - "%{supports_param_files}": "1", - "%{cc_compiler_deps}": ":empty", - "%{compiler}": _get_env_var(repository_ctx, "BAZEL_COMPILER", "compiler", False), - }) - _tpl(repository_ctx, "CROSSTOOL", { - "%{cpu}": cpu_value, - "%{default_toolchain_name}": _get_env_var(repository_ctx, - "CC_TOOLCHAIN_NAME", - "local", - False), - "%{toolchain_name}": _get_env_var(repository_ctx, "CC_TOOLCHAIN_NAME", "local", False), - "%{content}": _build_crosstool(crosstool_content) + "\n" + - _build_tool_path(tool_paths), - "%{opt_content}": _build_crosstool(opt_content, " "), - "%{dbg_content}": _build_crosstool(dbg_content, " "), - "%{cxx_builtin_include_directory}": "", - "%{coverage}": _coverage_feature(), - "%{msvc_env_tmp}": "", - "%{msvc_env_path}": "", - "%{msvc_env_include}": "", - "%{msvc_env_lib}": "", - }) + "osx_cc_wrapper.sh" if darwin else "linux_cc_wrapper.sh", + {"%{cc}": str(cc), "%{env}": _get_env(repository_ctx)}, + "cc_wrapper.sh") + _tpl(repository_ctx, "CROSSTOOL", { + "%{cpu}": cpu_value, + "%{default_toolchain_name}": _get_env_var(repository_ctx, "CC_TOOLCHAIN_NAME", "local", False), + "%{toolchain_name}": _get_env_var(repository_ctx, "CC_TOOLCHAIN_NAME", "local", False), + "%{content}": _build_crosstool(crosstool_content) + "\n" + + _build_tool_path(tool_paths), + "%{opt_content}": _build_crosstool(opt_content, " "), + "%{dbg_content}": _build_crosstool(dbg_content, " "), + "%{cxx_builtin_include_directory}": "", + "%{coverage}": _coverage_feature(darwin), + "%{msvc_env_tmp}": "", + "%{msvc_env_path}": "", + "%{msvc_env_include}": "", + "%{msvc_env_lib}": "", + }) + cc_autoconf = repository_rule( implementation=_impl, diff --git a/tools/objc/libtool.sh b/tools/objc/libtool.sh index e1275758ea..5ad89a019d 100755 --- a/tools/objc/libtool.sh +++ b/tools/objc/libtool.sh @@ -23,15 +23,7 @@ set -eu -# A trick to allow invoking this script in multiple contexts. -if [ -z ${MY_LOCATION+x} ]; then - if [ -d "$0.runfiles/" ]; then - MY_LOCATION="$0.runfiles/bazel_tools/tools/objc" - else - MY_LOCATION="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - fi -fi - +MY_LOCATION=${MY_LOCATION:-"$0.runfiles/bazel_tools/tools/objc"} WRAPPER="${MY_LOCATION}/xcrunwrapper.sh" # Creates a symbolic link to the input argument file and returns the symlink diff --git a/tools/osx/crosstool/BUILD.tpl b/tools/osx/crosstool/BUILD.tpl deleted file mode 100644 index 8f6ff4d2b4..0000000000 --- a/tools/osx/crosstool/BUILD.tpl +++ /dev/null @@ -1,71 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load(":osx_archs.bzl", "OSX_TOOLS_ARCHS") - -CC_TOOLCHAINS = [( - cpu + "|compiler", - ":cc-compiler-" + cpu, -) for cpu in OSX_TOOLS_ARCHS] - -cc_library( - name = "malloc", -) - -cc_library( - name = "stl", -) - -filegroup( - name = "empty", - srcs = [], -) - -filegroup( - name = "cc_wrapper", - srcs = ["cc_wrapper.sh"], -) - -sh_binary( - name = "wrapped_clang_sh", - srcs = ["wrapped_clang"], - data = [ - "@bazel_tools//tools/objc:xcrunwrapper", - ], - visibility = ["//visibility:public"], -) - -cc_toolchain_suite( - name = "toolchain", - toolchains = dict(CC_TOOLCHAINS), -) - -[ - filegroup( - name = "osx_tools_" + arch, - srcs = [ - ":cc_wrapper", - ":libtool", - ":make_hashed_objlist.py", - ":wrapped_clang", - ":xcrunwrapper.sh", - ], - ) - for arch in OSX_TOOLS_ARCHS -] - -[ - apple_cc_toolchain( - name = "cc-compiler-" + arch, - all_files = ":osx_tools_" + arch, - compiler_files = ":osx_tools_" + arch, - cpu = arch, - dwp_files = ":empty", - dynamic_runtime_libs = [":empty"], - linker_files = ":osx_tools_" + arch, - objcopy_files = ":empty", - static_runtime_libs = [":empty"], - strip_files = ":osx_tools_" + arch, - supports_param_files = 0, - ) - for arch in OSX_TOOLS_ARCHS -] diff --git a/tools/osx/crosstool/CROSSTOOL.tpl b/tools/osx/crosstool/CROSSTOOL.tpl index 9ca6ceacd5..0d0fc02d63 100644 --- a/tools/osx/crosstool/CROSSTOOL.tpl +++ b/tools/osx/crosstool/CROSSTOOL.tpl @@ -149,6 +149,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -160,174 +161,211 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "only_doth_headers_in_module_maps" + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" + } + } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_MACOSX" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } } feature { - name: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -336,21 +374,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -517,390 +565,341 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "link_cocoa" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-framework Cocoa" } } } feature { - name: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-Wl,@%{linker_param_file}" } + expand_if_all_available: "linker_param_file" } - } - feature { - name: "no_enable_modules" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-fmodule-maps" + flag: "@%{linker_param_file}" } - } - requires { - feature: "use_objc_modules" + expand_if_all_available: "linker_param_file" } } feature { - name: "apply_default_warnings" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "preprocessor_defines" + name: "llvm_coverage_map_format" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } + requires { + feature: "run_coverage" + } } feature { - name: "framework_paths" + name: "module_maps" + } + feature { + name: "no_enable_modules" flag_set { action: "objc-compile" action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "-F%{framework_paths}" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "coverage" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" - } - } - flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" - action: "c++-link-executable" - flag_group { - flag: "-fprofile-instr-generate" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_MACOSX" - } - } + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" } feature { - name: "include_system_dirs" + name: "objc_arc" flag_set { action: "c-compile" action: "c++-compile" action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" action: "assemble" action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "bitcode_embedded" + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode-marker" + flag: "-o" + } + expand_if_all_available: "output_execpath" + } + flag_set { + action: "c++-link-executable" + flag_group { + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" + } + flag_set { + action: "c++-link-executable" + flag_group { + flag: "%{output_execpath}" + } + expand_if_all_available: "output_execpath" } } feature { - name: "objc_arc" + name: "pch" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" + name: "run_coverage" + } + feature { + name: "runtime_root_flags" + flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } - flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "@%{linker_param_file}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" flag_set { - action: "objc-executable" - action: "objc++-executable" - action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" - } - } - requires { - feature: "run_coverage" - } - } - feature { - name: "apply_implicit_frameworks" - flag_set { - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-framework Foundation" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } } feature { - name: "link_cocoa" + name: "version_min" flag_set { action: "objc-executable" action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-framework Cocoa" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -918,8 +917,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -932,8 +931,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -946,83 +945,122 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "x86_64" - } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "x86_64" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -1035,36 +1073,43 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "x86_64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } } + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "x86_64" } @@ -1114,17 +1159,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "x86_64" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" + } + } + implies: "apple_env" + } + action_config { + config_name: "objc-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "x86_64" } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -1175,106 +1262,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -1303,6 +1290,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } cc_target_os: "apple" } toolchain { @@ -1401,6 +1402,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -1414,174 +1416,225 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" + } + } } feature { - name: "only_doth_headers_in_module_maps" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "apply_default_warnings" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } feature { - name: "symbol_counts" + name: "apply_simulator_compiler_flags" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -1590,21 +1643,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -1771,395 +1834,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-Wl,@%{linker_param_file}" } + expand_if_all_available: "linker_param_file" + } + flag_set { + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + flag_group { + flag: "@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" } } feature { - name: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" } feature { - name: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - feature { - name: "objc_arc" - flag_set { action: "c-compile" action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" + name: "run_coverage" + } + feature { + name: "runtime_root_flags" + flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } - flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "@%{linker_param_file}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" flag_set { - action: "objc-executable" - action: "objc++-executable" - action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-mios-simulator-version-min=%{version_min}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "version_min" flag_set { action: "objc-executable" action: "objc++-executable" - flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" - } - } - } - feature { - name: "apply_simulator_compiler_flags" - flag_set { + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-mios-simulator-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -2177,8 +2177,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -2191,8 +2191,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -2205,8 +2205,108 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -2219,29 +2319,18 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "x86_64" - } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" implies: "apple_env" - implies: "apply_simulator_compiler_flags" } action_config { config_name: "objc++-compile" @@ -2270,61 +2359,17 @@ toolchain { implies: "apply_simulator_compiler_flags" } action_config { - config_name: "assemble" - action_name: "assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "objc_arc" - implies: "no_objc_arc" - implies: "include_system_dirs" - implies: "apple_env" - } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } - action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "libtool" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "x86_64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -2375,17 +2420,60 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "x86_64" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "x86_64" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + implies: "apply_simulator_compiler_flags" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -2436,106 +2524,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -2564,6 +2552,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } cc_target_os: "apple" } toolchain { @@ -2662,6 +2664,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -2675,174 +2678,225 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" + } + } } feature { - name: "only_doth_headers_in_module_maps" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "apply_default_warnings" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } feature { - name: "symbol_counts" + name: "apply_simulator_compiler_flags" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -2851,21 +2905,33 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" + flag: "-F%{sdk_framework_dir}" + flag: "-F%{platform_developer_framework_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -3032,397 +3098,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-Wl,@%{linker_param_file}" } + expand_if_all_available: "linker_param_file" + } + flag_set { + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + flag_group { + flag: "@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" } } feature { - name: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" } feature { - name: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" - flag: "-F%{sdk_framework_dir}" - flag: "-F%{platform_developer_framework_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - feature { - name: "objc_arc" - flag_set { action: "c-compile" action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" + name: "run_coverage" + } + feature { + name: "runtime_root_flags" + flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } - flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "@%{linker_param_file}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" flag_set { - action: "objc-executable" - action: "objc++-executable" - action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-mwatchos-simulator-version-min=%{version_min}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "version_min" flag_set { action: "objc-executable" action: "objc++-executable" - flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" - } - } - } - feature { - name: "apply_simulator_compiler_flags" - flag_set { + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-mwatchos-simulator-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -3440,8 +3441,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -3454,8 +3455,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -3468,8 +3469,108 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -3482,29 +3583,18 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "i386" - } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" implies: "apple_env" - implies: "apply_simulator_compiler_flags" } action_config { config_name: "objc++-compile" @@ -3533,61 +3623,17 @@ toolchain { implies: "apply_simulator_compiler_flags" } action_config { - config_name: "assemble" - action_name: "assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "objc_arc" - implies: "no_objc_arc" - implies: "include_system_dirs" - implies: "apple_env" - } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } - action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "libtool" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "i386" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "i386" @@ -3638,17 +3684,60 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "i386" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "i386" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + implies: "apply_simulator_compiler_flags" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "i386" @@ -3699,106 +3788,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -3827,6 +3816,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } cc_target_os: "apple" } toolchain { @@ -3906,6 +3909,10 @@ toolchain { compiler_flag: "-DDEBUG" } compilation_mode_flags { + mode: DBG + compiler_flag: "-g" + } + compilation_mode_flags { mode: OPT compiler_flag: "-g0" compiler_flag: "-O2" @@ -3915,10 +3922,6 @@ toolchain { compiler_flag: "-fdata-sections" compiler_flag: "-DNS_BLOCK_ASSERTIONS=1" } - compilation_mode_flags { - mode: DBG - compiler_flag: "-g" - } linking_mode_flags { mode: DYNAMIC } @@ -3926,6 +3929,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -3939,186 +3943,239 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" + } + } } feature { - name: "only_doth_headers_in_module_maps" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_TVOS" + } + } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "apply_default_warnings" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } feature { - name: "symbol_counts" + name: "apply_simulator_compiler_flags" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "cpp_linker_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "%{output_execpath}" + flag: "-lc++" + flag: "-undefined" + flag: "dynamic_lookup" + flag: "-target" + flag: "x86_64-apple-tvos" } - expand_if_all_available: "output_execpath" } } feature { - name: "global_whole_archive_open" + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,-all_load" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "global_whole_archive" + } + requires { + feature: "opt" } } feature { - name: "cc_archiver_flags" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_flags" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-pie" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" + expand_if_all_available: "force_pic" } } feature { - name: "runtime_root_flags" + name: "framework_paths" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-F%{framework_paths}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "gcc_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{runtime_root_flags}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_root_flags" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -4127,9 +4184,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "-Wl,-all_load" + } + expand_if_all_available: "global_whole_archive" + } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" + flag_group { + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -4296,424 +4375,347 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-Wl,@%{linker_param_file}" } + expand_if_all_available: "linker_param_file" + } + flag_set { + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + flag_group { + flag: "@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" } } feature { - name: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" } feature { - name: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_TVOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - feature { - name: "objc_arc" - flag_set { action: "c-compile" action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" + name: "run_coverage" + } + feature { + name: "runtime_root_flags" + flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } - flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "@%{linker_param_file}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" flag_set { - action: "objc-executable" - action: "objc++-executable" - action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-mtvos-simulator-version-min=%{version_min}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "unfiltered_cxx_flags" flag_set { action: "c-compile" action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" - } - } - requires { - feature: "run_coverage" - } - } - feature { - name: "apply_implicit_frameworks" - flag_set { - action: "objc-executable" - action: "objc++-executable" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-no-canonical-prefixes" + flag: "-pthread" } } } feature { - name: "apply_simulator_compiler_flags" + name: "use_objc_modules" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } } feature { - name: "unfiltered_cxx_flags" + name: "version_min" flag_set { + action: "objc-executable" + action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" - action: "assemble" - action: "preprocess-assemble" - flag_group { - flag: "-no-canonical-prefixes" - flag: "-pthread" - } - } - } - feature { - name: "cpp_linker_flags" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-lc++" - flag: "-undefined" - flag: "dynamic_lookup" - flag: "-target" - flag: "x86_64-apple-tvos" + flag: "-mtvos-simulator-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" implies: "unfiltered_cxx_flags" } @@ -4733,8 +4735,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -4748,8 +4750,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -4763,87 +4765,125 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" - implies: "unfiltered_cxx_flags" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "x86_64" - } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + implies: "cpp_linker_flags" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" - implies: "apply_simulator_compiler_flags" + implies: "cpp_linker_flags" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "x86_64" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" - implies: "apply_simulator_compiler_flags" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" implies: "unfiltered_cxx_flags" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -4857,36 +4897,44 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "x86_64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } } + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" implies: "apple_env" + implies: "apply_simulator_compiler_flags" } action_config { - config_name: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "x86_64" } @@ -4936,17 +4984,60 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "x86_64" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" + } + } + implies: "apple_env" + } + action_config { + config_name: "objc-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "x86_64" } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + implies: "apply_simulator_compiler_flags" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -4997,108 +5088,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - implies: "cpp_linker_flags" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - implies: "cpp_linker_flags" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -5127,6 +5116,21 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + implies: "unfiltered_cxx_flags" + } cc_target_os: "apple" } toolchain { @@ -5225,6 +5229,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -5238,174 +5243,225 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" + } + } } feature { - name: "only_doth_headers_in_module_maps" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "apply_default_warnings" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } feature { - name: "symbol_counts" + name: "apply_simulator_compiler_flags" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -5414,21 +5470,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -5595,395 +5661,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-Wl,@%{linker_param_file}" } + expand_if_all_available: "linker_param_file" + } + flag_set { + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + flag_group { + flag: "@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" } } feature { - name: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" } feature { - name: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - feature { - name: "objc_arc" - flag_set { action: "c-compile" action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" + name: "run_coverage" + } + feature { + name: "runtime_root_flags" + flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } - flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "@%{linker_param_file}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" flag_set { - action: "objc-executable" - action: "objc++-executable" - action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-mios-simulator-version-min=%{version_min}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } - } - feature { - name: "run_coverage" } feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "version_min" flag_set { action: "objc-executable" action: "objc++-executable" - flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" - } - } - } - feature { - name: "apply_simulator_compiler_flags" - flag_set { + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-mios-simulator-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -6001,8 +6004,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -6015,8 +6018,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -6029,8 +6032,108 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -6043,29 +6146,18 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "i386" - } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" implies: "apple_env" - implies: "apply_simulator_compiler_flags" } action_config { config_name: "objc++-compile" @@ -6094,61 +6186,17 @@ toolchain { implies: "apply_simulator_compiler_flags" } action_config { - config_name: "assemble" - action_name: "assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "objc_arc" - implies: "no_objc_arc" - implies: "include_system_dirs" - implies: "apple_env" - } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } - action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "libtool" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "i386" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "i386" @@ -6199,17 +6247,60 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "i386" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "i386" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + implies: "apply_simulator_compiler_flags" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "i386" @@ -6260,106 +6351,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -6388,6 +6379,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } cc_target_os: "apple" } toolchain { @@ -6486,6 +6491,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -6499,174 +6505,212 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "only_doth_headers_in_module_maps" + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" + } + } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } } feature { - name: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" + flag: "-framework UIKit" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -6675,21 +6719,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -6856,382 +6910,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-Wl,@%{linker_param_file}" } + expand_if_all_available: "linker_param_file" + } + flag_set { + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + flag_group { + flag: "@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" } } feature { - name: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" } feature { - name: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - feature { - name: "objc_arc" - flag_set { action: "c-compile" action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" + name: "run_coverage" + } + feature { + name: "runtime_root_flags" + flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } - flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "@%{linker_param_file}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" flag_set { - action: "objc-executable" - action: "objc++-executable" - action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-miphoneos-version-min=%{version_min}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } - } - feature { - name: "run_coverage" } feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "version_min" flag_set { action: "objc-executable" action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-miphoneos-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -7249,8 +7253,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -7263,8 +7267,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -7277,83 +7281,122 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "armv7" - } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "armv7" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -7366,36 +7409,43 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "armv7" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } } + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "armv7" } @@ -7445,17 +7495,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "armv7" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "armv7" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "armv7" @@ -7506,106 +7598,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -7634,6 +7626,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } cc_target_os: "apple" } toolchain { @@ -7732,6 +7738,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -7745,174 +7752,212 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "only_doth_headers_in_module_maps" + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" + } + } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } } feature { - name: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" + flag: "-framework UIKit" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -7921,21 +7966,33 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" + flag: "-F%{sdk_framework_dir}" + flag: "-F%{platform_developer_framework_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -8102,384 +8159,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-Wl,@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" + } + flag_set { + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + flag_group { + flag: "@%{linker_param_file}" } + expand_if_all_available: "linker_param_file" } } feature { - name: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" } feature { - name: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" - flag: "-F%{sdk_framework_dir}" - flag: "-F%{platform_developer_framework_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - feature { - name: "objc_arc" - flag_set { action: "c-compile" action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" + name: "run_coverage" + } + feature { + name: "runtime_root_flags" + flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } - flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "@%{linker_param_file}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" flag_set { - action: "objc-executable" - action: "objc++-executable" - action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-mwatchos-version-min=%{version_min}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "version_min" flag_set { action: "objc-executable" action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-mwatchos-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -8497,8 +8502,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -8511,8 +8516,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -8525,83 +8530,122 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "armv7k" - } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "armv7k" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -8614,36 +8658,43 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "armv7k" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } } + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "armv7k" } @@ -8693,17 +8744,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "armv7k" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "armv7k" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "armv7k" @@ -8754,106 +8847,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -8882,6 +8875,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } cc_target_os: "apple" } toolchain { @@ -8961,6 +8968,10 @@ toolchain { compiler_flag: "-DDEBUG" } compilation_mode_flags { + mode: DBG + compiler_flag: "-g" + } + compilation_mode_flags { mode: OPT compiler_flag: "-g0" compiler_flag: "-O2" @@ -8970,10 +8981,6 @@ toolchain { compiler_flag: "-fdata-sections" compiler_flag: "-DNS_BLOCK_ASSERTIONS=1" } - compilation_mode_flags { - mode: DBG - compiler_flag: "-g" - } linking_mode_flags { mode: DYNAMIC } @@ -8981,6 +8988,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -8994,186 +9002,226 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "only_doth_headers_in_module_maps" + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" + } + } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_TVOS" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } } feature { - name: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" + flag: "-framework UIKit" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "cpp_linker_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "%{output_execpath}" + flag: "-lc++" + flag: "-undefined" + flag: "dynamic_lookup" + flag: "-target" + flag: "arm64-apple-tvos" } - expand_if_all_available: "output_execpath" } } feature { - name: "global_whole_archive_open" + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,-all_load" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "global_whole_archive" + } + requires { + feature: "opt" } } feature { - name: "cc_archiver_flags" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_flags" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-pie" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" + expand_if_all_available: "force_pic" } } feature { - name: "runtime_root_flags" + name: "framework_paths" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-F%{framework_paths}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "gcc_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{runtime_root_flags}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_root_flags" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -9182,9 +9230,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "-Wl,-all_load" + } + expand_if_all_available: "global_whole_archive" + } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" + flag_group { + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -9351,368 +9421,287 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-Wl,@%{linker_param_file}" } + expand_if_all_available: "linker_param_file" + } + flag_set { + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + flag_group { + flag: "@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" } } feature { - name: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" } feature { - name: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_TVOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - feature { - name: "objc_arc" - flag_set { action: "c-compile" action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" + name: "run_coverage" + } + feature { + name: "runtime_root_flags" + flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } - flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "@%{linker_param_file}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" flag_set { - action: "objc-executable" - action: "objc++-executable" - action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-mtvos-version-min=%{version_min}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" - } - } - requires { - feature: "opt" - } - } - feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" - flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" - } - } - requires { - feature: "run_coverage" - } - } - feature { - name: "gcc_coverage_map_format" - flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "symbol_counts" flag_set { - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { @@ -9731,31 +9720,48 @@ toolchain { } } feature { - name: "cpp_linker_flags" + name: "use_objc_modules" flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" + } + } + } + feature { + name: "version_min" + flag_set { + action: "objc-executable" + action: "objc++-executable" action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-lc++" - flag: "-undefined" - flag: "dynamic_lookup" - flag: "-target" - flag: "arm64-apple-tvos" + flag: "-mtvos-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" implies: "unfiltered_cxx_flags" } @@ -9775,8 +9781,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -9790,8 +9796,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -9805,85 +9811,125 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" - implies: "unfiltered_cxx_flags" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "arm64" - } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + implies: "cpp_linker_flags" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" + implies: "cpp_linker_flags" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "arm64" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" implies: "unfiltered_cxx_flags" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -9897,36 +9943,43 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "arm64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } } + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "arm64" } @@ -9976,17 +10029,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "arm64" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" + } + } + implies: "apple_env" + } + action_config { + config_name: "objc-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "arm64" } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "arm64" @@ -10037,108 +10132,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - implies: "cpp_linker_flags" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - implies: "cpp_linker_flags" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -10167,6 +10160,21 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + implies: "unfiltered_cxx_flags" + } cc_target_os: "apple" } toolchain { @@ -10265,6 +10273,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -10278,174 +10287,212 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "only_doth_headers_in_module_maps" + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" + } + } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } } feature { - name: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" + flag: "-framework UIKit" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -10454,21 +10501,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -10635,382 +10692,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-Wl,@%{linker_param_file}" } + expand_if_all_available: "linker_param_file" + } + flag_set { + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + flag_group { + flag: "@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" } } feature { - name: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" } feature { - name: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - feature { - name: "objc_arc" - flag_set { action: "c-compile" action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" + name: "run_coverage" + } + feature { + name: "runtime_root_flags" + flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } - flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "@%{linker_param_file}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" flag_set { - action: "objc-executable" - action: "objc++-executable" - action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-miphoneos-version-min=%{version_min}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } } feature { - name: "run_coverage" - } - feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "version_min" flag_set { action: "objc-executable" action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-miphoneos-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -11028,8 +11035,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -11042,8 +11049,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -11056,83 +11063,122 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "arm64" - } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "arm64" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -11145,36 +11191,43 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "arm64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } } + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "arm64" } @@ -11224,17 +11277,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "arm64" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "arm64" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "arm64" @@ -11285,106 +11380,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -11413,6 +11408,20 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } cc_target_os: "apple" } toolchain { @@ -11491,6 +11500,10 @@ toolchain { compiler_flag: "-DDEBUG" } compilation_mode_flags { + mode: DBG + compiler_flag: "-g" + } + compilation_mode_flags { mode: OPT compiler_flag: "-g0" compiler_flag: "-O2" @@ -11500,10 +11513,6 @@ toolchain { compiler_flag: "-fdata-sections" compiler_flag: "-DNS_BLOCK_ASSERTIONS=1" } - compilation_mode_flags { - mode: DBG - compiler_flag: "-g" - } linking_mode_flags { mode: DYNAMIC } @@ -11514,6 +11523,7 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } + cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -11530,174 +11540,212 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "fastbuild" - } - feature { - name: "opt" - } - feature { - name: "dbg" - } - feature { - name: "compile_all_modules" - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "only_doth_headers_in_module_maps" + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" + } + } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "apply_default_compiler_flags" + flag_set { + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-DOS_IOS" + } + } } feature { - name: "strip_debug_symbols" + name: "apply_default_warnings" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } } feature { - name: "symbol_counts" + name: "apply_implicit_frameworks" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-framework Foundation" + flag: "-framework UIKit" } - expand_if_all_available: "symbol_counts_output" } } feature { - name: "shared_flag" + name: "bitcode_embedded" flag_set { - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-fembed-bitcode" } } } feature { - name: "linkstamps" + name: "bitcode_embedded_markers" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fembed-bitcode-marker" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "output_execpath_flags" + name: "cc_archiver_flags" flag_set { - action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-o" + flag: "rcs" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "output_execpath_flags_executable" + name: "compile_all_modules" + } + feature { + name: "coverage" flag_set { - action: "c++-link-executable" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "output_execpath" } flag_set { + action: "c++-link-interface-dynamic-library" + action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + provides: "profile" + } + feature { + name: "dbg" + } + feature { + name: "dead_strip" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{output_execpath}" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } - expand_if_all_available: "output_execpath" + } + requires { + feature: "opt" } } feature { - name: "global_whole_archive_open" + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "fastbuild" + } + feature { + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "-pie" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "force_pic" } } feature { - name: "cc_archiver_flags" + name: "framework_paths" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "-F%{framework_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "runtime_root_flags" + name: "gcc_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } - expand_if_all_available: "runtime_library_search_directories" } + requires { + feature: "run_coverage" + } + } + feature { + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -11706,21 +11754,31 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_flags}" + flag: "-Wl,-all_load" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "global_whole_archive" } + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "%{runtime_root_entries}" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "runtime_root_entries" } } feature { @@ -11887,382 +11945,332 @@ toolchain { } } feature { - name: "force_pic_flags" + name: "legacy_link_flags" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-pie" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "force_pic" + expand_if_all_available: "legacy_link_flags" } } feature { - name: "pch" + name: "linker_param_file" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "c-compile" - action: "c++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-Wl,@%{linker_param_file}" } + expand_if_all_available: "linker_param_file" + } + flag_set { + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" + flag_group { + flag: "@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" } } feature { - name: "module_maps" - } - feature { - name: "use_objc_modules" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "no_enable_modules" + name: "llvm_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } requires { - feature: "use_objc_modules" + feature: "run_coverage" } } feature { - name: "apply_default_warnings" + name: "module_maps" + } + feature { + name: "no_enable_modules" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-fmodule-maps" } } + requires { + feature: "use_objc_modules" + } } feature { - name: "preprocessor_defines" + name: "no_objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fno-objc-arc" } + expand_if_all_available: "no_objc_arc" } } feature { - name: "framework_paths" - flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - flag_group { - flag: "-F%{framework_paths}" - } - } + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" } feature { - name: "coverage" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "opt" + } + feature { + name: "output_execpath_flags" flag_set { - action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" - action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - provides: "profile" } feature { - name: "apply_default_compiler_flags" + name: "output_execpath_flags_executable" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-DOS_IOS" + flag: "-o" } + expand_if_all_available: "output_execpath" } - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "bitcode_embedded" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fembed-bitcode" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } } feature { - name: "bitcode_embedded_markers" + name: "pch" flag_set { action: "objc-compile" action: "objc++-compile" - flag_group { - flag: "-fembed-bitcode-marker" - } - } - } - feature { - name: "objc_arc" - flag_set { action: "c-compile" action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "objc_arc" } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" + name: "run_coverage" + } + feature { + name: "runtime_root_flags" + flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" + flag_group { + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - } - feature { - name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } - flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "@%{linker_param_file}" + flag: "%{runtime_root_entries}" } - expand_if_all_available: "linker_param_file" + expand_if_all_available: "runtime_root_entries" } } feature { - name: "version_min" + name: "shared_flag" flag_set { - action: "objc-executable" - action: "objc++-executable" - action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-m<platform_for_version_min>-version-min=%{version_min}" + flag: "-shared" } } } feature { - name: "dead_strip" + name: "strip_debug_symbols" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } - requires { - feature: "opt" - } - } - feature { - name: "run_coverage" } feature { - name: "llvm_coverage_map_format" + name: "symbol_counts" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } - } - requires { - feature: "run_coverage" + expand_if_all_available: "symbol_counts_output" } } feature { - name: "gcc_coverage_map_format" + name: "use_objc_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } } - requires { - feature: "run_coverage" - } } feature { - name: "apply_implicit_frameworks" + name: "version_min" flag_set { action: "objc-executable" action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-m<platform_for_version_min>-version-min=%{version_min}" } } } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -12280,8 +12288,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -12294,8 +12302,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -12308,83 +12316,122 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "/usr/bin/ar" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" tool { tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" } - flag_set { - flag_group { - flag: "-arch" - flag: "<architecture>" - } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" + tool_path: "DUMMY_TOOL" } - flag_set { - flag_group { - flag: "-arch" - flag: "<architecture>" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" } - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" implies: "apple_env" } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -12397,36 +12444,43 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "libtool" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" + flag: "-arch" flag: "<architecture>" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } } + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc-executable" - action_name: "objc-executable" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } + flag_group { flag: "-arch" flag: "<architecture>" } @@ -12476,17 +12530,59 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang_pp" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "<architecture>" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" + } + } + implies: "apple_env" + } + action_config { + config_name: "objc-compile" + action_name: "objc-compile" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { + flag_group { + flag: "-arch" + flag: "<architecture>" } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "<architecture>" @@ -12537,106 +12633,6 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -12665,5 +12661,19 @@ toolchain { } implies: "apple_env" } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } cc_target_os: "apple" } diff --git a/tools/osx/crosstool/osx_archs.bzl b/tools/osx/crosstool/osx_archs.bzl deleted file mode 100644 index 5ee87c6173..0000000000 --- a/tools/osx/crosstool/osx_archs.bzl +++ /dev/null @@ -1,28 +0,0 @@ -"""Information regarding crosstool-supported architectures.""" -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# List of architectures supported by osx crosstool. -OSX_TOOLS_ARCHS = [ - "armeabi-v7a", - "darwin_x86_64", - "ios_x86_64", - "ios_i386", - "ios_armv7", - "ios_arm64", - "watchos_i386", - "watchos_armv7k", - "tvos_x86_64", - "tvos_arm64", -] diff --git a/tools/osx/crosstool/wrapped_clang.tpl b/tools/osx/crosstool/wrapped_clang.tpl deleted file mode 100644 index 3a523d2280..0000000000 --- a/tools/osx/crosstool/wrapped_clang.tpl +++ /dev/null @@ -1,10 +0,0 @@ -# A trick to allow invoking this script in multiple contexts. -if [ -z ${MY_LOCATION+x} ]; then - if [ -d "$0.runfiles/" ]; then - MY_LOCATION="$0.runfiles/bazel_tools/tools/objc" - else - MY_LOCATION="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - fi -fi - -"${MY_LOCATION}"/xcrunwrapper.sh clang $@ diff --git a/tools/osx/crosstool/wrapped_clang_pp.tpl b/tools/osx/crosstool/wrapped_clang_pp.tpl deleted file mode 100644 index 4afc7b056e..0000000000 --- a/tools/osx/crosstool/wrapped_clang_pp.tpl +++ /dev/null @@ -1,10 +0,0 @@ -# A trick to allow invoking this script in multiple contexts. -if [ -z ${MY_LOCATION+x} ]; then - if [ -d "$0.runfiles/" ]; then - MY_LOCATION="$0.runfiles/bazel_tools/tools/objc" - else - MY_LOCATION="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - fi -fi - -"${MY_LOCATION}"/xcrunwrapper.sh clang++ $@ diff --git a/tools/osx/xcode_configure.bzl b/tools/osx/xcode_configure.bzl index 7326e602a4..82833c07bf 100644 --- a/tools/osx/xcode_configure.bzl +++ b/tools/osx/xcode_configure.bzl @@ -89,30 +89,22 @@ def _xcode_version_output(repository_ctx, name, version, aliases, developer_dir) VERSION_CONFIG_STUB = "xcode_config(name = 'host_xcodes')" -def run_xcode_locator(repository_ctx, xcode_locator_src_label): - """Generates xcode-locator from source and runs it. - - Builds xcode-locator in the current repository directory. - Returns the standard output of running xcode-locator with -v, which will - return information about locally installed Xcode toolchains and the versions - they are associated with. - - This should only be invoked on a darwin OS, as xcode-locator cannot be built - otherwise. +def _darwin_build_file(repository_ctx): + """Evaluates local system state to create xcode_config and xcode_version targets.""" + xcodebuild_result = repository_ctx.execute(["env", "-i", "xcrun", "xcodebuild", "-version"], 30) + # "xcodebuild -version" failing may be indicative of no versions of xcode + # installed, which is an acceptable machine configuration to have for using + # bazel. Thus no print warning should be emitted here. + if (xcodebuild_result.return_code != 0): + error_msg = ( + "Running xcodebuild -version failed, " + + "return code {code}, stderr: {err}, stdout: {out}").format( + code=xcodebuild_result.return_code, + err=xcodebuild_result.stderr, + out=xcodebuild_result.stdout) + return VERSION_CONFIG_STUB + "\n# Error: " + error_msg.replace("\n", " ") + "\n" - Args: - repository_ctx: The repository context. - xcode_locator_src_label: The label of the source file for xcode-locator. - Returns: - A 2-tuple containing: - output: A list representing installed xcode toolchain information. Each - element of the list is a struct containing information for one installed - toolchain. This is instead None if there was an error building or - running xcode-locator. - err: An error string describing the error that occurred when attempting - to build and run xcode-locator, or None if the run was successful. - """ - xcodeloc_src_path = str(repository_ctx.path(xcode_locator_src_label)) + xcodeloc_src_path = str(repository_ctx.path(Label(repository_ctx.attr.xcode_locator))) xcrun_result = repository_ctx.execute(["env", "-i", "xcrun", "clang", "-fobjc-arc", "-framework", "CoreServices", "-framework", "Foundation", "-o", "xcode-locator-bin", xcodeloc_src_path], 30) @@ -124,7 +116,8 @@ def run_xcode_locator(repository_ctx, xcode_locator_src_label): code=xcrun_result.return_code, err=xcrun_result.stderr, out=xcrun_result.stdout) - return (None, error_msg.replace("\n", " ")) + print(error_msg) + return VERSION_CONFIG_STUB + "\n# Error: " + error_msg.replace("\n", " ") + "\n" xcode_locator_result = repository_ctx.execute(["./xcode-locator-bin", "-v"], 30) if (xcode_locator_result.return_code != 0): @@ -134,58 +127,28 @@ def run_xcode_locator(repository_ctx, xcode_locator_src_label): code=xcode_locator_result.return_code, err=xcode_locator_result.stderr, out=xcode_locator_result.stdout) - return (None, error_msg.replace("\n", " ")) - xcode_toolchains = [] - # xcode_dump is comprised of newlines with different installed xcode versions, - # each line of the form <version>:<comma_separated_aliases>:<developer_dir>. - xcode_dump = xcode_locator_result.stdout - for xcodeversion in xcode_dump.split("\n"): - if ":" in xcodeversion: - infosplit = xcodeversion.split(":") - toolchain = struct( - version = infosplit[0], - aliases = infosplit[1].split(","), - developer_dir = infosplit[2] - ) - xcode_toolchains.append(toolchain) - return (xcode_toolchains, None) - - -def _darwin_build_file(repository_ctx): - """Evaluates local system state to create xcode_config and xcode_version targets.""" - xcodebuild_result = repository_ctx.execute(["env", "-i", "xcrun", "xcodebuild", "-version"], 30) - # "xcodebuild -version" failing may be indicative of no versions of xcode - # installed, which is an acceptable machine configuration to have for using - # bazel. Thus no print warning should be emitted here. - if (xcodebuild_result.return_code != 0): - error_msg = ( - "Running xcodebuild -version failed, " + - "return code {code}, stderr: {err}, stdout: {out}").format( - code=xcodebuild_result.return_code, - err=xcodebuild_result.stderr, - out=xcodebuild_result.stdout) + print(error_msg) return VERSION_CONFIG_STUB + "\n# Error: " + error_msg.replace("\n", " ") + "\n" - (toolchains, xcodeloc_err) = run_xcode_locator(repository_ctx, - Label(repository_ctx.attr.xcode_locator)) - - if xcodeloc_err: - return VERSION_CONFIG_STUB + "\n# Error: " + xcodeloc_err + "\n" - default_xcode_version = _search_string(xcodebuild_result.stdout, "Xcode ", "\n") default_xcode_target = "" target_names = [] buildcontents = "" - for toolchain in toolchains: - version = toolchain.version - aliases = toolchain.aliases - developer_dir = toolchain.developer_dir - target_name = "version%s" % version.replace(".", "_") - buildcontents += _xcode_version_output(repository_ctx, target_name, version, aliases, developer_dir) - target_names.append("':%s'" % target_name) - if (version == default_xcode_version or default_xcode_version in aliases): - default_xcode_target = target_name + # xcode_dump is comprised of newlines with different installed xcode versions, + # each line of the form <version>:<comma_separated_aliases>:<developer_dir>. + xcode_dump = xcode_locator_result.stdout + for xcodeversion in xcode_dump.split("\n"): + if ":" in xcodeversion: + infosplit = xcodeversion.split(":") + version = infosplit[0] + aliases = infosplit[1].split(",") + developer_dir = infosplit[2] + target_name = "version%s" % version.replace(".", "_") + buildcontents += _xcode_version_output(repository_ctx, target_name, version, aliases, developer_dir) + target_names.append("':%s'" % target_name) + if (version == default_xcode_version or default_xcode_version in aliases): + default_xcode_target = target_name buildcontents += "xcode_config(name = 'host_xcodes'," if target_names: buildcontents += "\n versions = [%s]," % ", ".join(target_names) |