diff options
author | cparsons <cparsons@google.com> | 2017-05-03 22:13:44 +0200 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2017-05-04 13:13:49 +0200 |
commit | cc21998c299b4d1f97df37b961552ff8168da17f (patch) | |
tree | 85a5a1845a1802842e5bf127d3b07f34c36eb52d /tools | |
parent | 655c07b87161030f73f8e2103aebcf8277051582 (diff) |
Rollforward #2 of: Basic open-source crosstool to support targeting apple platform types.
RELNOTES: None.
PiperOrigin-RevId: 154993630
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 | 9858 | ||||
-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, 5239 insertions, 5042 deletions
diff --git a/tools/cpp/cc_configure.bzl b/tools/cpp/cc_configure.bzl index 4e77db5e6b..7754c8376d 100644 --- a/tools/cpp/cc_configure.bzl +++ b/tools/cpp/cc_configure.bzl @@ -13,6 +13,7 @@ # 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.""" @@ -110,7 +111,7 @@ def _execute(repository_ctx, command, environment = None, return stripped_stdout -def _get_tool_paths(repository_ctx, darwin, cc): +def _get_tool_paths(repository_ctx, cc): """Compute the path to the various tools.""" return {k: _which(repository_ctx, k, "/usr/bin/" + k) for k in [ @@ -124,8 +125,7 @@ def _get_tool_paths(repository_ctx, darwin, cc): "strip", ]} + { "gcc": cc, - "ar": "/usr/bin/libtool" - if darwin else _which(repository_ctx, "ar", "/usr/bin/ar") + "ar": _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, darwin): +def _crosstool_content(repository_ctx, cc, cpu_value): """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, darwin): "supports_interface_shared_objects": False, "supports_normalizing_ar": False, "supports_start_end_lib": supports_gold_linker, - "target_libc": "macosx" if darwin else _get_env_var(repository_ctx, "BAZEL_TARGET_LIBC", "local", False), + "target_libc": _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,24 +252,17 @@ def _crosstool_content(repository_ctx, cc, cpu_value, darwin): repository_ctx, cc, "-Wl,-no-as-needed" ) + _add_option_if_supported( repository_ctx, cc, "-Wl,-z,relro,-z,now" - ) + ( - [ - "-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 [], + ) + (["-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": [], "cxx_builtin_include_directory": _get_cxx_inc_directories(repository_ctx, cc), "objcopy_embed_flag": ["-I", "binary"], "unfiltered_cxx_flag": @@ -292,7 +285,7 @@ def _crosstool_content(repository_ctx, cc, cpu_value, darwin): # 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", @@ -350,7 +343,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(darwin): +def _opt_content(): """Return the content of the opt specific section of the CROSSTOOL file.""" return { "compiler_flag": [ @@ -376,7 +369,7 @@ def _opt_content(darwin): "-ffunction-sections", "-fdata-sections" ], - "linker_flag": [] if darwin else ["-Wl,--gc-sections"] + "linker_flag": ["-Wl,--gc-sections"] } @@ -628,23 +621,7 @@ def _get_env(repository_ctx): else: return "" -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' - }""" +def _coverage_feature(): return """ feature { name: 'coverage' @@ -656,17 +633,51 @@ def _coverage_feature(darwin): action: 'c++-header-parsing' action: 'c++-header-preprocessing' action: 'c++-module-compile' - """ + compile_flags + """ + flag_group { + flag: '-fprofile-arcs' + flag: '-ftest-coverage' + } } flag_set { action: 'c++-link-interface-dynamic-library' action: 'c++-link-dynamic-library' action: 'c++-link-executable' - """ + link_flags + """ + flag_group { + flag: '-lgcov' + } } } """ +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) @@ -735,37 +746,69 @@ 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") - _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}": "", - }) - + "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}": "", + }) cc_autoconf = repository_rule( implementation=_impl, diff --git a/tools/objc/libtool.sh b/tools/objc/libtool.sh index 5ad89a019d..e1275758ea 100755 --- a/tools/objc/libtool.sh +++ b/tools/objc/libtool.sh @@ -23,7 +23,15 @@ set -eu -MY_LOCATION=${MY_LOCATION:-"$0.runfiles/bazel_tools/tools/objc"} +# 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 + 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 new file mode 100644 index 0000000000..8f6ff4d2b4 --- /dev/null +++ b/tools/osx/crosstool/BUILD.tpl @@ -0,0 +1,71 @@ +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 0d0fc02d63..5b1c286b37 100644 --- a/tools/osx/crosstool/CROSSTOOL.tpl +++ b/tools/osx/crosstool/CROSSTOOL.tpl @@ -6,7 +6,7 @@ major_version: "1" minor_version: "0" -default_target_cpu: "ios_x86_64" +default_target_cpu: "same_as_host" default_toolchain { cpu: "darwin" toolchain_identifier: "darwin_x86_64" @@ -149,7 +149,6 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } - cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -161,211 +160,174 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" - } - } + name: "fastbuild" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_MACOSX" - } - } + name: "opt" } feature { - name: "apply_default_warnings" + name: "dbg" + } + feature { + name: "compile_all_modules" + } + feature { + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" + } + feature { + name: "strip_debug_symbols" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } } feature { - name: "apply_implicit_frameworks" + name: "symbol_counts" flag_set { - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-framework Foundation" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { - name: "bitcode_embedded" + name: "shared_flag" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-shared" } } } feature { - name: "bitcode_embedded_markers" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode-marker" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "cc_archiver_flags" + name: "output_execpath_flags" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-dynamic-library" flag_group { - flag: "rcs" + flag: "-o" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "compile_all_modules" - } - feature { - name: "coverage" + name: "output_execpath_flags_executable" flag_set { - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-o" } + expand_if_all_available: "output_execpath" } flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - provides: "profile" - } - feature { - name: "dbg" - } - feature { - name: "dead_strip" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "%{output_execpath}" } - } - requires { - feature: "opt" + expand_if_all_available: "output_execpath" } } feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "fastbuild" - } - feature { - name: "force_pic_flags" + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-pie" + flag: "-Wl,-all_load" } - expand_if_all_available: "force_pic" + expand_if_all_available: "global_whole_archive" } } feature { - name: "framework_paths" + name: "cc_archiver_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-F%{framework_paths}" + flag: "rcs" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "gcc_coverage_map_format" + name: "runtime_root_flags" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - requires { - feature: "run_coverage" - } - } - feature { - name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -374,31 +336,21 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "%{runtime_root_entries}" } + expand_if_all_available: "runtime_root_entries" } } feature { @@ -565,341 +517,390 @@ toolchain { } } feature { - name: "legacy_link_flags" + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "-pie" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "force_pic" } } feature { - name: "link_cocoa" + name: "pch" flag_set { - action: "objc-executable" - action: "objc++-executable" + action: "objc-compile" + action: "objc++-compile" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "-framework Cocoa" + flag: "-include" + flag: "%{pch_file}" } } } feature { - name: "linker_param_file" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } - flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" - flag_group { - flag: "@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } + name: "module_maps" } feature { - name: "linkstamps" + name: "use_objc_modules" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "llvm_coverage_map_format" + name: "no_enable_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fmodule-maps" } } requires { - feature: "run_coverage" + feature: "use_objc_modules" } } feature { - name: "module_maps" - } - feature { - name: "no_enable_modules" + name: "apply_default_warnings" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } - requires { - feature: "use_objc_modules" - } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "framework_paths" + flag_set { + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-F%{framework_paths}" + } + } } feature { - name: "objc_arc" + name: "coverage" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "objc_arc" } - } - feature { - name: "only_doth_headers_in_module_maps" - } - feature { - name: "opt" - } - feature { - name: "output_execpath_flags" flag_set { + action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" + action: "c++-link-executable" flag_group { - flag: "-o" - flag: "%{output_execpath}" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "output_execpath" } + provides: "profile" } feature { - name: "output_execpath_flags_executable" + name: "apply_default_compiler_flags" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-DOS_MACOSX" } - expand_if_all_available: "output_execpath" } + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + } + feature { + name: "bitcode_embedded" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{output_execpath}" + flag: "-fembed-bitcode" } - expand_if_all_available: "output_execpath" } } feature { - name: "pch" + name: "bitcode_embedded_markers" flag_set { action: "objc-compile" action: "objc++-compile" - action: "c-compile" - action: "c++-compile" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-fembed-bitcode-marker" } } } feature { - name: "preprocessor_defines" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "run_coverage" + name: "no_objc_arc" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-fno-objc-arc" + } + expand_if_all_available: "no_objc_arc" + } } feature { - name: "runtime_root_flags" - flag_set { + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{runtime_root_flags}" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "legacy_link_flags" } + } + feature { + name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + flag_group { + flag: "-Wl,@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" + } + flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "@%{linker_param_file}" } - expand_if_all_available: "runtime_root_entries" + expand_if_all_available: "linker_param_file" } } feature { - name: "shared_flag" + name: "version_min" flag_set { + action: "objc-executable" + action: "objc++-executable" + action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" } } } feature { - name: "strip_debug_symbols" + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } } + requires { + feature: "opt" + } } feature { - name: "symbol_counts" + name: "run_coverage" + } + feature { + name: "llvm_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "symbol_counts_output" + } + requires { + feature: "run_coverage" } } feature { - name: "use_objc_modules" + name: "gcc_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } } + requires { + feature: "run_coverage" + } } feature { - name: "version_min" + name: "apply_implicit_frameworks" flag_set { action: "objc-executable" action: "objc++-executable" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { + flag: "-framework Foundation" + } + } + } + feature { + name: "link_cocoa" + flag_set { + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-framework Cocoa" } } } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -917,8 +918,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -931,8 +932,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -945,108 +946,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -1059,12 +960,22 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "objc-compile" + action_name: "objc-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + flag_set { + flag_group { + flag: "-arch" + flag: "x86_64" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" @@ -1098,17 +1009,61 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "assemble" + action_name: "assemble" tool { - tool_path: "wrapped_clang_pp" + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "objc_arc" + implies: "no_objc_arc" + implies: "include_system_dirs" + implies: "apple_env" + } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-archive" + action_name: "objc-archive" + tool { + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "x86_64" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -1159,59 +1114,17 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" - tool { - tool_path: "libtool" - execution_requirement: "requires-darwin" - } - flag_set { - flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "x86_64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" - } - } - implies: "apple_env" - } - action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-arch" - flag: "x86_64" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -1262,6 +1175,106 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -1290,20 +1303,6 @@ toolchain { } implies: "apple_env" } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } cc_target_os: "apple" } toolchain { @@ -1402,7 +1401,6 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } - cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -1416,225 +1414,174 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" - } - } + name: "fastbuild" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_IOS" - } - } + name: "opt" } feature { - name: "apply_default_warnings" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" - } - } + name: "dbg" } feature { - name: "apply_implicit_frameworks" + name: "compile_all_modules" + } + feature { + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" + } + feature { + name: "strip_debug_symbols" flag_set { + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } } feature { - name: "apply_simulator_compiler_flags" + name: "symbol_counts" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { - name: "bitcode_embedded" + name: "shared_flag" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-shared" } } } feature { - name: "bitcode_embedded_markers" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode-marker" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "cc_archiver_flags" + name: "output_execpath_flags" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-dynamic-library" flag_group { - flag: "rcs" + flag: "-o" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "compile_all_modules" - } - feature { - name: "coverage" + name: "output_execpath_flags_executable" flag_set { - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-o" } + expand_if_all_available: "output_execpath" } flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - provides: "profile" - } - feature { - name: "dbg" - } - feature { - name: "dead_strip" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - requires { - feature: "opt" - } - } - feature { - name: "exclude_private_headers_in_module_maps" } feature { - name: "fastbuild" - } - feature { - name: "force_pic_flags" + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-pie" + flag: "-Wl,-all_load" } - expand_if_all_available: "force_pic" + expand_if_all_available: "global_whole_archive" } } feature { - name: "framework_paths" + name: "cc_archiver_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-F%{framework_paths}" + flag: "rcs" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "gcc_coverage_map_format" + name: "runtime_root_flags" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - requires { - feature: "run_coverage" - } - } - feature { - name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -1643,31 +1590,21 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "%{runtime_root_entries}" } + expand_if_all_available: "runtime_root_entries" } } feature { @@ -1834,332 +1771,395 @@ toolchain { } } feature { - name: "legacy_link_flags" + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "-pie" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "force_pic" } } feature { - name: "linker_param_file" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } + name: "pch" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "@%{linker_param_file}" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "linker_param_file" } } feature { - name: "linkstamps" + name: "module_maps" + } + feature { + name: "use_objc_modules" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "llvm_coverage_map_format" + name: "no_enable_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fmodule-maps" } } requires { - feature: "run_coverage" + feature: "use_objc_modules" } } feature { - name: "module_maps" - } - feature { - name: "no_enable_modules" + name: "apply_default_warnings" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } - requires { - feature: "use_objc_modules" - } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "framework_paths" + flag_set { + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-F%{framework_paths}" + } + } } feature { - name: "objc_arc" + name: "coverage" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "objc_arc" } - } - feature { - name: "only_doth_headers_in_module_maps" - } - feature { - name: "opt" - } - feature { - name: "output_execpath_flags" flag_set { + action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" + action: "c++-link-executable" flag_group { - flag: "-o" - flag: "%{output_execpath}" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "output_execpath" } + provides: "profile" } feature { - name: "output_execpath_flags_executable" + name: "apply_default_compiler_flags" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-DOS_IOS" } - expand_if_all_available: "output_execpath" } + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + } + feature { + name: "bitcode_embedded" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{output_execpath}" + flag: "-fembed-bitcode" } - expand_if_all_available: "output_execpath" } } feature { - name: "pch" + name: "bitcode_embedded_markers" flag_set { action: "objc-compile" action: "objc++-compile" - action: "c-compile" - action: "c++-compile" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-fembed-bitcode-marker" } } } feature { - name: "preprocessor_defines" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "run_coverage" + name: "no_objc_arc" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-fno-objc-arc" + } + expand_if_all_available: "no_objc_arc" + } } feature { - name: "runtime_root_flags" - flag_set { + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{runtime_root_flags}" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "legacy_link_flags" } + } + feature { + name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + flag_group { + flag: "-Wl,@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" + } + flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "@%{linker_param_file}" } - expand_if_all_available: "runtime_root_entries" + expand_if_all_available: "linker_param_file" } } feature { - name: "shared_flag" + name: "version_min" flag_set { + action: "objc-executable" + action: "objc++-executable" + action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-mios-simulator-version-min=%{version_min}" } } } feature { - name: "strip_debug_symbols" + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } } + requires { + feature: "opt" + } } feature { - name: "symbol_counts" + name: "run_coverage" + } + feature { + name: "llvm_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "symbol_counts_output" + } + requires { + feature: "run_coverage" } } feature { - name: "use_objc_modules" + name: "gcc_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } } + requires { + feature: "run_coverage" + } } feature { - name: "version_min" + name: "apply_implicit_frameworks" flag_set { action: "objc-executable" action: "objc++-executable" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" + flag_group { + flag: "-framework Foundation" + flag: "-framework UIKit" + } + } + } + feature { + name: "apply_simulator_compiler_flags" + flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-mios-simulator-version-min=%{version_min}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } } } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -2177,8 +2177,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -2191,8 +2191,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -2205,108 +2205,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -2319,18 +2219,29 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "objc-compile" + action_name: "objc-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + flag_set { + flag_group { + flag: "-arch" + flag: "x86_64" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" implies: "apple_env" + implies: "apply_simulator_compiler_flags" } action_config { config_name: "objc++-compile" @@ -2359,17 +2270,61 @@ toolchain { implies: "apply_simulator_compiler_flags" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "assemble" + action_name: "assemble" tool { - tool_path: "wrapped_clang_pp" + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "objc_arc" + implies: "no_objc_arc" + implies: "include_system_dirs" + implies: "apple_env" + } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-archive" + action_name: "objc-archive" + tool { + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "x86_64" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -2420,60 +2375,17 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" - tool { - tool_path: "libtool" - execution_requirement: "requires-darwin" - } - flag_set { - flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "x86_64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" - } - } - implies: "apple_env" - } - action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-arch" - flag: "x86_64" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - implies: "apply_simulator_compiler_flags" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -2524,6 +2436,106 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -2552,20 +2564,6 @@ toolchain { } implies: "apple_env" } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } cc_target_os: "apple" } toolchain { @@ -2664,7 +2662,6 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } - cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -2678,225 +2675,174 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" - } - } + name: "fastbuild" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_IOS" - } - } + name: "opt" } feature { - name: "apply_default_warnings" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" - } - } + name: "dbg" } feature { - name: "apply_implicit_frameworks" + name: "compile_all_modules" + } + feature { + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" + } + feature { + name: "strip_debug_symbols" flag_set { + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } } feature { - name: "apply_simulator_compiler_flags" + name: "symbol_counts" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { - name: "bitcode_embedded" + name: "shared_flag" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-shared" } } } feature { - name: "bitcode_embedded_markers" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode-marker" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "cc_archiver_flags" + name: "output_execpath_flags" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-dynamic-library" flag_group { - flag: "rcs" + flag: "-o" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "compile_all_modules" - } - feature { - name: "coverage" + name: "output_execpath_flags_executable" flag_set { - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-o" } + expand_if_all_available: "output_execpath" } flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - provides: "profile" - } - feature { - name: "dbg" - } - feature { - name: "dead_strip" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "%{output_execpath}" } - } - requires { - feature: "opt" + expand_if_all_available: "output_execpath" } } feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "fastbuild" - } - feature { - name: "force_pic_flags" + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-pie" + flag: "-Wl,-all_load" } - expand_if_all_available: "force_pic" + expand_if_all_available: "global_whole_archive" } } feature { - name: "framework_paths" + name: "cc_archiver_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-F%{framework_paths}" + flag: "rcs" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "gcc_coverage_map_format" + name: "runtime_root_flags" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - requires { - feature: "run_coverage" - } - } - feature { - name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -2905,33 +2851,21 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-isysroot %{sdk_dir}" - flag: "-F%{sdk_framework_dir}" - flag: "-F%{platform_developer_framework_dir}" + flag: "%{runtime_root_entries}" } + expand_if_all_available: "runtime_root_entries" } } feature { @@ -3098,332 +3032,397 @@ toolchain { } } feature { - name: "legacy_link_flags" + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "-pie" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "force_pic" } } feature { - name: "linker_param_file" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } + name: "pch" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "@%{linker_param_file}" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "linker_param_file" } } feature { - name: "linkstamps" + name: "module_maps" + } + feature { + name: "use_objc_modules" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "llvm_coverage_map_format" + name: "no_enable_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fmodule-maps" } } requires { - feature: "run_coverage" + feature: "use_objc_modules" } } feature { - name: "module_maps" - } - feature { - name: "no_enable_modules" + name: "apply_default_warnings" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } - requires { - feature: "use_objc_modules" - } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "framework_paths" + flag_set { + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-F%{framework_paths}" + } + } } feature { - name: "objc_arc" + name: "coverage" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "objc_arc" } - } - feature { - name: "only_doth_headers_in_module_maps" - } - feature { - name: "opt" - } - feature { - name: "output_execpath_flags" flag_set { + action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" + action: "c++-link-executable" flag_group { - flag: "-o" - flag: "%{output_execpath}" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "output_execpath" } + provides: "profile" } feature { - name: "output_execpath_flags_executable" + name: "apply_default_compiler_flags" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-DOS_IOS" } - expand_if_all_available: "output_execpath" } + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-isysroot %{sdk_dir}" + flag: "-F%{sdk_framework_dir}" + flag: "-F%{platform_developer_framework_dir}" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + } + feature { + name: "bitcode_embedded" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{output_execpath}" + flag: "-fembed-bitcode" } - expand_if_all_available: "output_execpath" } } feature { - name: "pch" + name: "bitcode_embedded_markers" flag_set { action: "objc-compile" action: "objc++-compile" - action: "c-compile" - action: "c++-compile" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-fembed-bitcode-marker" } } } feature { - name: "preprocessor_defines" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "run_coverage" + name: "no_objc_arc" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-fno-objc-arc" + } + expand_if_all_available: "no_objc_arc" + } } feature { - name: "runtime_root_flags" - flag_set { + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{runtime_root_flags}" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "legacy_link_flags" } + } + feature { + name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + flag_group { + flag: "-Wl,@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" + } + flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "@%{linker_param_file}" } - expand_if_all_available: "runtime_root_entries" + expand_if_all_available: "linker_param_file" } } feature { - name: "shared_flag" + name: "version_min" flag_set { + action: "objc-executable" + action: "objc++-executable" + action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-mwatchos-simulator-version-min=%{version_min}" } } } feature { - name: "strip_debug_symbols" + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } } + requires { + feature: "opt" + } } feature { - name: "symbol_counts" + name: "run_coverage" + } + feature { + name: "llvm_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "symbol_counts_output" + } + requires { + feature: "run_coverage" } } feature { - name: "use_objc_modules" + name: "gcc_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } } + requires { + feature: "run_coverage" + } } feature { - name: "version_min" + name: "apply_implicit_frameworks" flag_set { action: "objc-executable" action: "objc++-executable" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" + flag_group { + flag: "-framework Foundation" + flag: "-framework UIKit" + } + } + } + feature { + name: "apply_simulator_compiler_flags" + flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-mwatchos-simulator-version-min=%{version_min}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } } } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -3441,8 +3440,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -3455,8 +3454,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -3469,108 +3468,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -3583,18 +3482,29 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "objc-compile" + action_name: "objc-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + flag_set { + flag_group { + flag: "-arch" + flag: "i386" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" implies: "apple_env" + implies: "apply_simulator_compiler_flags" } action_config { config_name: "objc++-compile" @@ -3623,17 +3533,61 @@ toolchain { implies: "apply_simulator_compiler_flags" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "assemble" + action_name: "assemble" tool { - tool_path: "wrapped_clang_pp" + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "objc_arc" + implies: "no_objc_arc" + implies: "include_system_dirs" + implies: "apple_env" + } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-archive" + action_name: "objc-archive" + tool { + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "i386" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "i386" @@ -3684,60 +3638,17 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "libtool" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "i386" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "apple_env" - } - action_config { - config_name: "objc-compile" - action_name: "objc-compile" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { - flag_group { - flag: "-arch" - flag: "i386" - } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - implies: "apply_simulator_compiler_flags" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "i386" @@ -3788,6 +3699,106 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -3816,20 +3827,6 @@ toolchain { } implies: "apple_env" } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } cc_target_os: "apple" } toolchain { @@ -3909,10 +3906,6 @@ toolchain { compiler_flag: "-DDEBUG" } compilation_mode_flags { - mode: DBG - compiler_flag: "-g" - } - compilation_mode_flags { mode: OPT compiler_flag: "-g0" compiler_flag: "-O2" @@ -3922,6 +3915,10 @@ toolchain { compiler_flag: "-fdata-sections" compiler_flag: "-DNS_BLOCK_ASSERTIONS=1" } + compilation_mode_flags { + mode: DBG + compiler_flag: "-g" + } linking_mode_flags { mode: DYNAMIC } @@ -3929,7 +3926,6 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } - cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -3943,239 +3939,174 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" - } - } + name: "fastbuild" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_TVOS" - } - } + name: "opt" } feature { - name: "apply_default_warnings" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" - } - } + name: "dbg" } feature { - name: "apply_implicit_frameworks" + name: "compile_all_modules" + } + feature { + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" + } + feature { + name: "strip_debug_symbols" flag_set { + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } } feature { - name: "apply_simulator_compiler_flags" + name: "symbol_counts" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { - name: "bitcode_embedded" + name: "shared_flag" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-shared" } } } feature { - name: "bitcode_embedded_markers" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode-marker" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "cc_archiver_flags" + name: "output_execpath_flags" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-dynamic-library" flag_group { - flag: "rcs" + flag: "-o" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "compile_all_modules" - } - feature { - name: "coverage" - flag_set { - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" - } - } + name: "output_execpath_flags_executable" flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" } + expand_if_all_available: "output_execpath" } - provides: "profile" - } - feature { - name: "cpp_linker_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" flag_group { - flag: "-lc++" - flag: "-undefined" - flag: "dynamic_lookup" - flag: "-target" - flag: "x86_64-apple-tvos" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "dbg" - } - feature { - name: "dead_strip" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "%{output_execpath}" } - } - requires { - feature: "opt" + expand_if_all_available: "output_execpath" } } feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "fastbuild" - } - feature { - name: "force_pic_flags" + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-pie" + flag: "-Wl,-all_load" } - expand_if_all_available: "force_pic" + expand_if_all_available: "global_whole_archive" } } feature { - name: "framework_paths" + name: "cc_archiver_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-F%{framework_paths}" + flag: "rcs" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "gcc_coverage_map_format" + name: "runtime_root_flags" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - requires { - feature: "run_coverage" - } - } - feature { - name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -4184,31 +4115,21 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "%{runtime_root_entries}" } + expand_if_all_available: "runtime_root_entries" } } feature { @@ -4375,347 +4296,424 @@ toolchain { } } feature { - name: "legacy_link_flags" + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "-pie" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "force_pic" } } feature { - name: "linker_param_file" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } + name: "pch" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "@%{linker_param_file}" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "linker_param_file" } } feature { - name: "linkstamps" + name: "module_maps" + } + feature { + name: "use_objc_modules" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "llvm_coverage_map_format" + name: "no_enable_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fmodule-maps" } } requires { - feature: "run_coverage" + feature: "use_objc_modules" } } feature { - name: "module_maps" - } - feature { - name: "no_enable_modules" + name: "apply_default_warnings" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } - requires { - feature: "use_objc_modules" - } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "framework_paths" + flag_set { + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-F%{framework_paths}" + } + } } feature { - name: "objc_arc" + name: "coverage" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "objc_arc" } - } - feature { - name: "only_doth_headers_in_module_maps" - } - feature { - name: "opt" - } - feature { - name: "output_execpath_flags" flag_set { + action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" + action: "c++-link-executable" flag_group { - flag: "-o" - flag: "%{output_execpath}" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "output_execpath" } + provides: "profile" } feature { - name: "output_execpath_flags_executable" + name: "apply_default_compiler_flags" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-DOS_TVOS" } - expand_if_all_available: "output_execpath" } + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + } + feature { + name: "bitcode_embedded" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{output_execpath}" + flag: "-fembed-bitcode" } - expand_if_all_available: "output_execpath" } } feature { - name: "pch" + name: "bitcode_embedded_markers" flag_set { action: "objc-compile" action: "objc++-compile" - action: "c-compile" - action: "c++-compile" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-fembed-bitcode-marker" } } } feature { - name: "preprocessor_defines" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "run_coverage" + name: "no_objc_arc" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-fno-objc-arc" + } + expand_if_all_available: "no_objc_arc" + } } feature { - name: "runtime_root_flags" - flag_set { + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{runtime_root_flags}" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "legacy_link_flags" } + } + feature { + name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + flag_group { + flag: "-Wl,@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" + } + flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "@%{linker_param_file}" } - expand_if_all_available: "runtime_root_entries" + expand_if_all_available: "linker_param_file" } } feature { - name: "shared_flag" + name: "version_min" flag_set { + action: "objc-executable" + action: "objc++-executable" + action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-mtvos-simulator-version-min=%{version_min}" } } } feature { - name: "strip_debug_symbols" + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } } + requires { + feature: "opt" + } } feature { - name: "symbol_counts" + name: "run_coverage" + } + feature { + name: "llvm_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "symbol_counts_output" + } + requires { + feature: "run_coverage" } } feature { - name: "unfiltered_cxx_flags" + name: "gcc_coverage_map_format" flag_set { action: "c-compile" action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "assemble" - action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-no-canonical-prefixes" - flag: "-pthread" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } } + requires { + feature: "run_coverage" + } } feature { - name: "use_objc_modules" + name: "apply_implicit_frameworks" + flag_set { + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-framework Foundation" + flag: "-framework UIKit" + } + } + } + feature { + name: "apply_simulator_compiler_flags" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } } } feature { - name: "version_min" + name: "unfiltered_cxx_flags" flag_set { - action: "objc-executable" - action: "objc++-executable" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-header-parsing" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "-mtvos-simulator-version-min=%{version_min}" + flag: "-no-canonical-prefixes" + flag: "-pthread" + } + } + } + feature { + name: "cpp_linker_flags" + flag_set { + action: "c++-link-executable" + action: "c++-link-dynamic-library" + flag_group { + flag: "-lc++" + flag: "-undefined" + flag: "dynamic_lookup" + flag: "-target" + flag: "x86_64-apple-tvos" } } } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" implies: "unfiltered_cxx_flags" } @@ -4735,8 +4733,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -4750,8 +4748,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -4765,110 +4763,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - implies: "cpp_linker_flags" - } - action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - implies: "cpp_linker_flags" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -4882,19 +4778,29 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "objc-compile" + action_name: "objc-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + flag_set { + flag_group { + flag: "-arch" + flag: "x86_64" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" implies: "apple_env" - implies: "unfiltered_cxx_flags" + implies: "apply_simulator_compiler_flags" } action_config { config_name: "objc++-compile" @@ -4923,17 +4829,63 @@ toolchain { implies: "apply_simulator_compiler_flags" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "assemble" + action_name: "assemble" tool { - tool_path: "wrapped_clang_pp" + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "objc_arc" + implies: "no_objc_arc" + implies: "include_system_dirs" + implies: "apple_env" + implies: "unfiltered_cxx_flags" + } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + implies: "unfiltered_cxx_flags" + } + action_config { + config_name: "objc-archive" + action_name: "objc-archive" + tool { + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "x86_64" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -4984,60 +4936,17 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" - tool { - tool_path: "libtool" - execution_requirement: "requires-darwin" - } - flag_set { - flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "x86_64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" - } - } - implies: "apple_env" - } - action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-arch" - flag: "x86_64" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - implies: "apply_simulator_compiler_flags" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "x86_64" @@ -5088,6 +4997,108 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + implies: "cpp_linker_flags" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + implies: "cpp_linker_flags" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -5116,21 +5127,6 @@ toolchain { } implies: "apple_env" } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - implies: "unfiltered_cxx_flags" - } cc_target_os: "apple" } toolchain { @@ -5229,7 +5225,6 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } - cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -5243,225 +5238,174 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" - } - } + name: "fastbuild" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_IOS" - } - } + name: "opt" } feature { - name: "apply_default_warnings" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" - } - } + name: "dbg" } feature { - name: "apply_implicit_frameworks" + name: "compile_all_modules" + } + feature { + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" + } + feature { + name: "strip_debug_symbols" flag_set { + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } } feature { - name: "apply_simulator_compiler_flags" + name: "symbol_counts" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fexceptions" - flag: "-fasm-blocks" - flag: "-fobjc-abi-version=2" - flag: "-fobjc-legacy-dispatch" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { - name: "bitcode_embedded" + name: "shared_flag" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-shared" } } } feature { - name: "bitcode_embedded_markers" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode-marker" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "cc_archiver_flags" + name: "output_execpath_flags" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-dynamic-library" flag_group { - flag: "rcs" + flag: "-o" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "compile_all_modules" - } - feature { - name: "coverage" + name: "output_execpath_flags_executable" flag_set { - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-o" } + expand_if_all_available: "output_execpath" } flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - provides: "profile" - } - feature { - name: "dbg" - } - feature { - name: "dead_strip" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - requires { - feature: "opt" - } - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "fastbuild" } feature { - name: "force_pic_flags" + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-pie" + flag: "-Wl,-all_load" } - expand_if_all_available: "force_pic" + expand_if_all_available: "global_whole_archive" } } feature { - name: "framework_paths" + name: "cc_archiver_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-F%{framework_paths}" + flag: "rcs" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "gcc_coverage_map_format" + name: "runtime_root_flags" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - requires { - feature: "run_coverage" - } - } - feature { - name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -5470,31 +5414,21 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "%{runtime_root_entries}" } + expand_if_all_available: "runtime_root_entries" } } feature { @@ -5661,332 +5595,395 @@ toolchain { } } feature { - name: "legacy_link_flags" + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "-pie" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "force_pic" } } feature { - name: "linker_param_file" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } + name: "pch" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "@%{linker_param_file}" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "linker_param_file" } } feature { - name: "linkstamps" + name: "module_maps" + } + feature { + name: "use_objc_modules" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "llvm_coverage_map_format" + name: "no_enable_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fmodule-maps" } } requires { - feature: "run_coverage" + feature: "use_objc_modules" } } feature { - name: "module_maps" - } - feature { - name: "no_enable_modules" + name: "apply_default_warnings" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } - requires { - feature: "use_objc_modules" - } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "framework_paths" + flag_set { + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-F%{framework_paths}" + } + } } feature { - name: "objc_arc" + name: "coverage" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "objc_arc" } - } - feature { - name: "only_doth_headers_in_module_maps" - } - feature { - name: "opt" - } - feature { - name: "output_execpath_flags" flag_set { + action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" + action: "c++-link-executable" flag_group { - flag: "-o" - flag: "%{output_execpath}" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "output_execpath" } + provides: "profile" } feature { - name: "output_execpath_flags_executable" + name: "apply_default_compiler_flags" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-DOS_IOS" } - expand_if_all_available: "output_execpath" } + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + } + feature { + name: "bitcode_embedded" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{output_execpath}" + flag: "-fembed-bitcode" } - expand_if_all_available: "output_execpath" } } feature { - name: "pch" + name: "bitcode_embedded_markers" flag_set { action: "objc-compile" action: "objc++-compile" - action: "c-compile" - action: "c++-compile" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-fembed-bitcode-marker" } } } feature { - name: "preprocessor_defines" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "run_coverage" + name: "no_objc_arc" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-fno-objc-arc" + } + expand_if_all_available: "no_objc_arc" + } } feature { - name: "runtime_root_flags" - flag_set { + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{runtime_root_flags}" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "legacy_link_flags" } + } + feature { + name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + flag_group { + flag: "-Wl,@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" + } + flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "@%{linker_param_file}" } - expand_if_all_available: "runtime_root_entries" + expand_if_all_available: "linker_param_file" } } feature { - name: "shared_flag" + name: "version_min" flag_set { + action: "objc-executable" + action: "objc++-executable" + action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-mios-simulator-version-min=%{version_min}" } } } feature { - name: "strip_debug_symbols" + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } } + requires { + feature: "opt" + } } feature { - name: "symbol_counts" + name: "run_coverage" + } + feature { + name: "llvm_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "symbol_counts_output" + } + requires { + feature: "run_coverage" } } feature { - name: "use_objc_modules" + name: "gcc_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } } + requires { + feature: "run_coverage" + } } feature { - name: "version_min" + name: "apply_implicit_frameworks" flag_set { action: "objc-executable" action: "objc++-executable" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" + flag_group { + flag: "-framework Foundation" + flag: "-framework UIKit" + } + } + } + feature { + name: "apply_simulator_compiler_flags" + flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-mios-simulator-version-min=%{version_min}" + flag: "-fexceptions" + flag: "-fasm-blocks" + flag: "-fobjc-abi-version=2" + flag: "-fobjc-legacy-dispatch" } } } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -6004,8 +6001,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -6018,8 +6015,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -6032,108 +6029,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -6146,18 +6043,29 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "objc-compile" + action_name: "objc-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + flag_set { + flag_group { + flag: "-arch" + flag: "i386" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" implies: "apple_env" + implies: "apply_simulator_compiler_flags" } action_config { config_name: "objc++-compile" @@ -6186,17 +6094,61 @@ toolchain { implies: "apply_simulator_compiler_flags" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "assemble" + action_name: "assemble" tool { - tool_path: "wrapped_clang_pp" + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "objc_arc" + implies: "no_objc_arc" + implies: "include_system_dirs" + implies: "apple_env" + } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-archive" + action_name: "objc-archive" + tool { + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "i386" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "i386" @@ -6247,60 +6199,17 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" - tool { - tool_path: "libtool" - execution_requirement: "requires-darwin" - } - flag_set { - flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "i386" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" - } - } - implies: "apple_env" - } - action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-arch" - flag: "i386" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - implies: "apply_simulator_compiler_flags" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "i386" @@ -6351,6 +6260,106 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -6379,20 +6388,6 @@ toolchain { } implies: "apple_env" } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } cc_target_os: "apple" } toolchain { @@ -6491,7 +6486,6 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } - cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -6505,212 +6499,174 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" - } - } + name: "fastbuild" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_IOS" - } - } + name: "opt" } feature { - name: "apply_default_warnings" + name: "dbg" + } + feature { + name: "compile_all_modules" + } + feature { + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" + } + feature { + name: "strip_debug_symbols" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } } feature { - name: "apply_implicit_frameworks" + name: "symbol_counts" flag_set { - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { - name: "bitcode_embedded" + name: "shared_flag" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-shared" } } } feature { - name: "bitcode_embedded_markers" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode-marker" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "cc_archiver_flags" + name: "output_execpath_flags" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-dynamic-library" flag_group { - flag: "rcs" + flag: "-o" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "compile_all_modules" - } - feature { - name: "coverage" + name: "output_execpath_flags_executable" flag_set { - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-o" } + expand_if_all_available: "output_execpath" } flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - provides: "profile" - } - feature { - name: "dbg" - } - feature { - name: "dead_strip" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - requires { - feature: "opt" - } - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "fastbuild" } feature { - name: "force_pic_flags" + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-pie" + flag: "-Wl,-all_load" } - expand_if_all_available: "force_pic" + expand_if_all_available: "global_whole_archive" } } feature { - name: "framework_paths" + name: "cc_archiver_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-F%{framework_paths}" + flag: "rcs" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "gcc_coverage_map_format" + name: "runtime_root_flags" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - requires { - feature: "run_coverage" - } - } - feature { - name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -6719,31 +6675,21 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "%{runtime_root_entries}" } + expand_if_all_available: "runtime_root_entries" } } feature { @@ -6910,332 +6856,382 @@ toolchain { } } feature { - name: "legacy_link_flags" + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "-pie" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "force_pic" } } feature { - name: "linker_param_file" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } + name: "pch" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "@%{linker_param_file}" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "linker_param_file" } } feature { - name: "linkstamps" + name: "module_maps" + } + feature { + name: "use_objc_modules" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "llvm_coverage_map_format" + name: "no_enable_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fmodule-maps" } } requires { - feature: "run_coverage" + feature: "use_objc_modules" } } feature { - name: "module_maps" - } - feature { - name: "no_enable_modules" + name: "apply_default_warnings" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } - requires { - feature: "use_objc_modules" - } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "framework_paths" + flag_set { + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-F%{framework_paths}" + } + } } feature { - name: "objc_arc" + name: "coverage" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "objc_arc" } - } - feature { - name: "only_doth_headers_in_module_maps" - } - feature { - name: "opt" - } - feature { - name: "output_execpath_flags" flag_set { + action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" + action: "c++-link-executable" flag_group { - flag: "-o" - flag: "%{output_execpath}" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "output_execpath" } + provides: "profile" } feature { - name: "output_execpath_flags_executable" + name: "apply_default_compiler_flags" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-DOS_IOS" } - expand_if_all_available: "output_execpath" } + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + } + feature { + name: "bitcode_embedded" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{output_execpath}" + flag: "-fembed-bitcode" } - expand_if_all_available: "output_execpath" } } feature { - name: "pch" + name: "bitcode_embedded_markers" flag_set { action: "objc-compile" action: "objc++-compile" - action: "c-compile" - action: "c++-compile" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-fembed-bitcode-marker" } } } feature { - name: "preprocessor_defines" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "run_coverage" + name: "no_objc_arc" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-fno-objc-arc" + } + expand_if_all_available: "no_objc_arc" + } } feature { - name: "runtime_root_flags" - flag_set { + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{runtime_root_flags}" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "legacy_link_flags" } + } + feature { + name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + flag_group { + flag: "-Wl,@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" + } + flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "@%{linker_param_file}" } - expand_if_all_available: "runtime_root_entries" + expand_if_all_available: "linker_param_file" } } feature { - name: "shared_flag" + name: "version_min" flag_set { + action: "objc-executable" + action: "objc++-executable" + action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-miphoneos-version-min=%{version_min}" } } } feature { - name: "strip_debug_symbols" + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } } + requires { + feature: "opt" + } } feature { - name: "symbol_counts" + name: "run_coverage" + } + feature { + name: "llvm_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "symbol_counts_output" + } + requires { + feature: "run_coverage" } } feature { - name: "use_objc_modules" + name: "gcc_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } } + requires { + feature: "run_coverage" + } } feature { - name: "version_min" + name: "apply_implicit_frameworks" flag_set { action: "objc-executable" action: "objc++-executable" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-miphoneos-version-min=%{version_min}" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -7253,8 +7249,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -7267,8 +7263,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -7281,108 +7277,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -7395,12 +7291,22 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "objc-compile" + action_name: "objc-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + flag_set { + flag_group { + flag: "-arch" + flag: "armv7" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" @@ -7434,17 +7340,61 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "assemble" + action_name: "assemble" tool { - tool_path: "wrapped_clang_pp" + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "objc_arc" + implies: "no_objc_arc" + implies: "include_system_dirs" + implies: "apple_env" + } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-archive" + action_name: "objc-archive" + tool { + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "armv7" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "armv7" @@ -7495,59 +7445,17 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" - tool { - tool_path: "libtool" - execution_requirement: "requires-darwin" - } - flag_set { - flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "armv7" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" - } - } - implies: "apple_env" - } - action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-arch" - flag: "armv7" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "armv7" @@ -7598,6 +7506,106 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -7626,20 +7634,6 @@ toolchain { } implies: "apple_env" } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } cc_target_os: "apple" } toolchain { @@ -7738,7 +7732,6 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } - cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -7752,212 +7745,174 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" - } - } + name: "fastbuild" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_IOS" - } - } + name: "opt" } feature { - name: "apply_default_warnings" + name: "dbg" + } + feature { + name: "compile_all_modules" + } + feature { + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" + } + feature { + name: "strip_debug_symbols" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } } feature { - name: "apply_implicit_frameworks" + name: "symbol_counts" flag_set { - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { - name: "bitcode_embedded" + name: "shared_flag" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-shared" } } } feature { - name: "bitcode_embedded_markers" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode-marker" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "cc_archiver_flags" + name: "output_execpath_flags" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-dynamic-library" flag_group { - flag: "rcs" + flag: "-o" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "compile_all_modules" - } - feature { - name: "coverage" + name: "output_execpath_flags_executable" flag_set { - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-o" } + expand_if_all_available: "output_execpath" } flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - provides: "profile" - } - feature { - name: "dbg" - } - feature { - name: "dead_strip" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "%{output_execpath}" } - } - requires { - feature: "opt" + expand_if_all_available: "output_execpath" } } feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "fastbuild" - } - feature { - name: "force_pic_flags" + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-pie" + flag: "-Wl,-all_load" } - expand_if_all_available: "force_pic" + expand_if_all_available: "global_whole_archive" } } feature { - name: "framework_paths" + name: "cc_archiver_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-F%{framework_paths}" + flag: "rcs" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "gcc_coverage_map_format" + name: "runtime_root_flags" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - requires { - feature: "run_coverage" - } - } - feature { - name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -7966,33 +7921,21 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-isysroot %{sdk_dir}" - flag: "-F%{sdk_framework_dir}" - flag: "-F%{platform_developer_framework_dir}" + flag: "%{runtime_root_entries}" } + expand_if_all_available: "runtime_root_entries" } } feature { @@ -8159,332 +8102,384 @@ toolchain { } } feature { - name: "legacy_link_flags" + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "-pie" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "force_pic" } } feature { - name: "linker_param_file" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } + name: "pch" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "@%{linker_param_file}" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "linker_param_file" } } feature { - name: "linkstamps" + name: "module_maps" + } + feature { + name: "use_objc_modules" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "llvm_coverage_map_format" + name: "no_enable_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fmodule-maps" } } requires { - feature: "run_coverage" + feature: "use_objc_modules" } } feature { - name: "module_maps" - } - feature { - name: "no_enable_modules" + name: "apply_default_warnings" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } - requires { - feature: "use_objc_modules" - } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "framework_paths" + flag_set { + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-F%{framework_paths}" + } + } } feature { - name: "objc_arc" + name: "coverage" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "objc_arc" } - } - feature { - name: "only_doth_headers_in_module_maps" - } - feature { - name: "opt" - } - feature { - name: "output_execpath_flags" flag_set { + action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" + action: "c++-link-executable" flag_group { - flag: "-o" - flag: "%{output_execpath}" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "output_execpath" } + provides: "profile" } feature { - name: "output_execpath_flags_executable" + name: "apply_default_compiler_flags" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-DOS_IOS" } - expand_if_all_available: "output_execpath" } + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-isysroot %{sdk_dir}" + flag: "-F%{sdk_framework_dir}" + flag: "-F%{platform_developer_framework_dir}" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + } + feature { + name: "bitcode_embedded" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{output_execpath}" + flag: "-fembed-bitcode" } - expand_if_all_available: "output_execpath" } } feature { - name: "pch" + name: "bitcode_embedded_markers" flag_set { action: "objc-compile" action: "objc++-compile" - action: "c-compile" - action: "c++-compile" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-fembed-bitcode-marker" } } } feature { - name: "preprocessor_defines" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "run_coverage" + name: "no_objc_arc" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-fno-objc-arc" + } + expand_if_all_available: "no_objc_arc" + } } feature { - name: "runtime_root_flags" - flag_set { + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{runtime_root_flags}" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "legacy_link_flags" } + } + feature { + name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + flag_group { + flag: "-Wl,@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" + } + flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "@%{linker_param_file}" } - expand_if_all_available: "runtime_root_entries" + expand_if_all_available: "linker_param_file" } } feature { - name: "shared_flag" + name: "version_min" flag_set { + action: "objc-executable" + action: "objc++-executable" + action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-mwatchos-version-min=%{version_min}" } } } feature { - name: "strip_debug_symbols" + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } } + requires { + feature: "opt" + } } feature { - name: "symbol_counts" + name: "run_coverage" + } + feature { + name: "llvm_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "symbol_counts_output" + } + requires { + feature: "run_coverage" } } feature { - name: "use_objc_modules" + name: "gcc_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } } + requires { + feature: "run_coverage" + } } feature { - name: "version_min" + name: "apply_implicit_frameworks" flag_set { action: "objc-executable" action: "objc++-executable" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-mwatchos-version-min=%{version_min}" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -8502,8 +8497,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -8516,8 +8511,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -8530,108 +8525,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -8644,12 +8539,22 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "objc-compile" + action_name: "objc-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + flag_set { + flag_group { + flag: "-arch" + flag: "armv7k" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" @@ -8683,17 +8588,61 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "assemble" + action_name: "assemble" tool { - tool_path: "wrapped_clang_pp" + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "objc_arc" + implies: "no_objc_arc" + implies: "include_system_dirs" + implies: "apple_env" + } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-archive" + action_name: "objc-archive" + tool { + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "armv7k" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "armv7k" @@ -8744,59 +8693,17 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "libtool" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "armv7k" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "apple_env" - } - action_config { - config_name: "objc-compile" - action_name: "objc-compile" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { - flag_group { - flag: "-arch" - flag: "armv7k" - } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "armv7k" @@ -8847,6 +8754,106 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -8875,20 +8882,6 @@ toolchain { } implies: "apple_env" } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } cc_target_os: "apple" } toolchain { @@ -8968,10 +8961,6 @@ toolchain { compiler_flag: "-DDEBUG" } compilation_mode_flags { - mode: DBG - compiler_flag: "-g" - } - compilation_mode_flags { mode: OPT compiler_flag: "-g0" compiler_flag: "-O2" @@ -8981,6 +8970,10 @@ toolchain { compiler_flag: "-fdata-sections" compiler_flag: "-DNS_BLOCK_ASSERTIONS=1" } + compilation_mode_flags { + mode: DBG + compiler_flag: "-g" + } linking_mode_flags { mode: DYNAMIC } @@ -8988,7 +8981,6 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } - cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -9002,226 +8994,174 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" - } - } + name: "fastbuild" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_TVOS" - } - } + name: "opt" } feature { - name: "apply_default_warnings" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" - } - } + name: "dbg" } feature { - name: "apply_implicit_frameworks" + name: "compile_all_modules" + } + feature { + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" + } + feature { + name: "strip_debug_symbols" flag_set { + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } } feature { - name: "bitcode_embedded" + name: "symbol_counts" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { - name: "bitcode_embedded_markers" + name: "shared_flag" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode-marker" + flag: "-shared" } } } feature { - name: "cc_archiver_flags" + name: "linkstamps" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "rcs" - flag: "%{output_execpath}" + flag: "%{linkstamp_paths}" } - expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" + expand_if_all_available: "linkstamp_paths" } } feature { - name: "compile_all_modules" - } - feature { - name: "coverage" + name: "output_execpath_flags" flag_set { - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-o" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } + } + feature { + name: "output_execpath_flags_executable" flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "-o" } + expand_if_all_available: "output_execpath" } - provides: "profile" - } - feature { - name: "cpp_linker_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" flag_group { - flag: "-lc++" - flag: "-undefined" - flag: "dynamic_lookup" - flag: "-target" - flag: "arm64-apple-tvos" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - } - feature { - name: "dbg" - } - feature { - name: "dead_strip" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - requires { - feature: "opt" - } - } - feature { - name: "exclude_private_headers_in_module_maps" } feature { - name: "fastbuild" - } - feature { - name: "force_pic_flags" + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-pie" + flag: "-Wl,-all_load" } - expand_if_all_available: "force_pic" + expand_if_all_available: "global_whole_archive" } } feature { - name: "framework_paths" + name: "cc_archiver_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-F%{framework_paths}" + flag: "rcs" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "gcc_coverage_map_format" + name: "runtime_root_flags" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - requires { - feature: "run_coverage" - } - } - feature { - name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -9230,31 +9170,21 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "%{runtime_root_entries}" } + expand_if_all_available: "runtime_root_entries" } } feature { @@ -9421,347 +9351,411 @@ toolchain { } } feature { - name: "legacy_link_flags" + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "-pie" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "force_pic" } } feature { - name: "linker_param_file" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } + name: "pch" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "@%{linker_param_file}" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "linker_param_file" } } feature { - name: "linkstamps" + name: "module_maps" + } + feature { + name: "use_objc_modules" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "llvm_coverage_map_format" + name: "no_enable_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fmodule-maps" } } requires { - feature: "run_coverage" + feature: "use_objc_modules" } } feature { - name: "module_maps" - } - feature { - name: "no_enable_modules" + name: "apply_default_warnings" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } - requires { - feature: "use_objc_modules" - } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "framework_paths" + flag_set { + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-F%{framework_paths}" + } + } } feature { - name: "objc_arc" + name: "coverage" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "objc_arc" } - } - feature { - name: "only_doth_headers_in_module_maps" - } - feature { - name: "opt" - } - feature { - name: "output_execpath_flags" flag_set { + action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" + action: "c++-link-executable" flag_group { - flag: "-o" - flag: "%{output_execpath}" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "output_execpath" } + provides: "profile" } feature { - name: "output_execpath_flags_executable" + name: "apply_default_compiler_flags" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-DOS_TVOS" } - expand_if_all_available: "output_execpath" } + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + } + feature { + name: "bitcode_embedded" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{output_execpath}" + flag: "-fembed-bitcode" } - expand_if_all_available: "output_execpath" } } feature { - name: "pch" + name: "bitcode_embedded_markers" flag_set { action: "objc-compile" action: "objc++-compile" - action: "c-compile" - action: "c++-compile" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-fembed-bitcode-marker" } } } feature { - name: "preprocessor_defines" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "run_coverage" + name: "no_objc_arc" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-fno-objc-arc" + } + expand_if_all_available: "no_objc_arc" + } } feature { - name: "runtime_root_flags" - flag_set { + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{runtime_root_flags}" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "legacy_link_flags" } + } + feature { + name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + flag_group { + flag: "-Wl,@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" + } + flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "@%{linker_param_file}" } - expand_if_all_available: "runtime_root_entries" + expand_if_all_available: "linker_param_file" } } feature { - name: "shared_flag" + name: "version_min" flag_set { + action: "objc-executable" + action: "objc++-executable" + action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-mtvos-version-min=%{version_min}" } } } feature { - name: "strip_debug_symbols" + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } } + requires { + feature: "opt" + } } feature { - name: "symbol_counts" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" - } - expand_if_all_available: "symbol_counts_output" - } + name: "run_coverage" } feature { - name: "unfiltered_cxx_flags" + name: "llvm_coverage_map_format" flag_set { action: "c-compile" action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "assemble" - action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-no-canonical-prefixes" - flag: "-pthread" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } } + requires { + feature: "run_coverage" + } } feature { - name: "use_objc_modules" + name: "gcc_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } } + requires { + feature: "run_coverage" + } } feature { - name: "version_min" + name: "apply_implicit_frameworks" flag_set { action: "objc-executable" action: "objc++-executable" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "preprocess-assemble" + flag_group { + flag: "-framework Foundation" + flag: "-framework UIKit" + } + } + } + feature { + name: "unfiltered_cxx_flags" + flag_set { action: "c-compile" action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-header-parsing" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "-mtvos-version-min=%{version_min}" + flag: "-no-canonical-prefixes" + flag: "-pthread" + } + } + } + feature { + name: "cpp_linker_flags" + flag_set { + action: "c++-link-executable" + action: "c++-link-dynamic-library" + flag_group { + flag: "-lc++" + flag: "-undefined" + flag: "dynamic_lookup" + flag: "-target" + flag: "arm64-apple-tvos" } } } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" implies: "unfiltered_cxx_flags" } @@ -9781,8 +9775,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -9796,8 +9790,8 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -9811,125 +9805,85 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" + implies: "preprocessor_defines" + implies: "include_system_dirs" implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" implies: "apple_env" - implies: "cpp_linker_flags" + implies: "unfiltered_cxx_flags" } action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" + config_name: "objc-compile" + action_name: "objc-compile" tool { - tool_path: "DUMMY_TOOL" + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - implies: "cpp_linker_flags" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" + flag_set { + flag_group { + flag: "-arch" + flag: "arm64" + } } - implies: "strip_debug_symbols" + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" + config_name: "objc++-compile" + action_name: "objc++-compile" tool { - tool_path: "/usr/bin/ar" + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" + flag_set { + flag_group { + flag: "-arch" + flag: "arm64" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" + } } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "assemble" + action_name: "assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" + implies: "include_system_dirs" implies: "apple_env" implies: "unfiltered_cxx_flags" } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -9943,43 +9897,36 @@ toolchain { implies: "unfiltered_cxx_flags" } action_config { - config_name: "objc++-compile" - action_name: "objc++-compile" + config_name: "objc-archive" + action_name: "objc-archive" tool { - tool_path: "wrapped_clang" + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-arch" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" flag: "arm64" - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } } - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" implies: "apple_env" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "objc-executable" + action_name: "objc-executable" tool { - tool_path: "wrapped_clang_pp" + tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" - } - flag_group { flag: "-arch" flag: "arm64" } @@ -10029,59 +9976,17 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" - tool { - tool_path: "libtool" - execution_requirement: "requires-darwin" - } - flag_set { - flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "arm64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" - } - } - implies: "apple_env" - } - action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-arch" - flag: "arm64" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "arm64" @@ -10132,6 +10037,108 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + implies: "cpp_linker_flags" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + implies: "cpp_linker_flags" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -10160,21 +10167,6 @@ toolchain { } implies: "apple_env" } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - implies: "unfiltered_cxx_flags" - } cc_target_os: "apple" } toolchain { @@ -10273,7 +10265,6 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } - cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -10287,212 +10278,174 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" - } - } + name: "fastbuild" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_IOS" - } - } + name: "opt" } feature { - name: "apply_default_warnings" + name: "dbg" + } + feature { + name: "compile_all_modules" + } + feature { + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" + } + feature { + name: "strip_debug_symbols" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } } feature { - name: "apply_implicit_frameworks" + name: "symbol_counts" flag_set { - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { - name: "bitcode_embedded" + name: "shared_flag" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-shared" } } } feature { - name: "bitcode_embedded_markers" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode-marker" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "cc_archiver_flags" + name: "output_execpath_flags" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-dynamic-library" flag_group { - flag: "rcs" + flag: "-o" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "compile_all_modules" - } - feature { - name: "coverage" + name: "output_execpath_flags_executable" flag_set { - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-o" } + expand_if_all_available: "output_execpath" } flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - provides: "profile" - } - feature { - name: "dbg" - } - feature { - name: "dead_strip" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - requires { - feature: "opt" - } - } - feature { - name: "exclude_private_headers_in_module_maps" } feature { - name: "fastbuild" - } - feature { - name: "force_pic_flags" + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-pie" + flag: "-Wl,-all_load" } - expand_if_all_available: "force_pic" + expand_if_all_available: "global_whole_archive" } } feature { - name: "framework_paths" + name: "cc_archiver_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-F%{framework_paths}" + flag: "rcs" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "gcc_coverage_map_format" + name: "runtime_root_flags" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - requires { - feature: "run_coverage" - } - } - feature { - name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -10501,31 +10454,21 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "%{runtime_root_entries}" } + expand_if_all_available: "runtime_root_entries" } } feature { @@ -10692,332 +10635,382 @@ toolchain { } } feature { - name: "legacy_link_flags" + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "-pie" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "force_pic" } } feature { - name: "linker_param_file" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } + name: "pch" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "@%{linker_param_file}" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "linker_param_file" } } feature { - name: "linkstamps" + name: "module_maps" + } + feature { + name: "use_objc_modules" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "llvm_coverage_map_format" + name: "no_enable_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fmodule-maps" } } requires { - feature: "run_coverage" + feature: "use_objc_modules" } } feature { - name: "module_maps" - } - feature { - name: "no_enable_modules" + name: "apply_default_warnings" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } - requires { - feature: "use_objc_modules" - } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "framework_paths" + flag_set { + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-F%{framework_paths}" + } + } } feature { - name: "objc_arc" + name: "coverage" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "objc_arc" } - } - feature { - name: "only_doth_headers_in_module_maps" - } - feature { - name: "opt" - } - feature { - name: "output_execpath_flags" flag_set { + action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" + action: "c++-link-executable" flag_group { - flag: "-o" - flag: "%{output_execpath}" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "output_execpath" } + provides: "profile" } feature { - name: "output_execpath_flags_executable" + name: "apply_default_compiler_flags" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-DOS_IOS" } - expand_if_all_available: "output_execpath" } + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + } + feature { + name: "bitcode_embedded" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{output_execpath}" + flag: "-fembed-bitcode" } - expand_if_all_available: "output_execpath" } } feature { - name: "pch" + name: "bitcode_embedded_markers" flag_set { action: "objc-compile" action: "objc++-compile" - action: "c-compile" - action: "c++-compile" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-fembed-bitcode-marker" } } } feature { - name: "preprocessor_defines" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "run_coverage" + name: "no_objc_arc" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-fno-objc-arc" + } + expand_if_all_available: "no_objc_arc" + } } feature { - name: "runtime_root_flags" - flag_set { + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{runtime_root_flags}" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "legacy_link_flags" } + } + feature { + name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + flag_group { + flag: "-Wl,@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" + } + flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "@%{linker_param_file}" } - expand_if_all_available: "runtime_root_entries" + expand_if_all_available: "linker_param_file" } } feature { - name: "shared_flag" + name: "version_min" flag_set { + action: "objc-executable" + action: "objc++-executable" + action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-miphoneos-version-min=%{version_min}" } } } feature { - name: "strip_debug_symbols" + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } } + requires { + feature: "opt" + } } feature { - name: "symbol_counts" + name: "run_coverage" + } + feature { + name: "llvm_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "symbol_counts_output" + } + requires { + feature: "run_coverage" } } feature { - name: "use_objc_modules" + name: "gcc_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } } + requires { + feature: "run_coverage" + } } feature { - name: "version_min" + name: "apply_implicit_frameworks" flag_set { action: "objc-executable" action: "objc++-executable" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-miphoneos-version-min=%{version_min}" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -11035,8 +11028,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -11049,8 +11042,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -11063,108 +11056,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -11177,12 +11070,22 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "objc-compile" + action_name: "objc-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + flag_set { + flag_group { + flag: "-arch" + flag: "arm64" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" @@ -11216,17 +11119,61 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "assemble" + action_name: "assemble" tool { - tool_path: "wrapped_clang_pp" + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "objc_arc" + implies: "no_objc_arc" + implies: "include_system_dirs" + implies: "apple_env" + } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-archive" + action_name: "objc-archive" + tool { + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "arm64" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "arm64" @@ -11277,59 +11224,17 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" - tool { - tool_path: "libtool" - execution_requirement: "requires-darwin" - } - flag_set { - flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "arm64" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" - } - } - implies: "apple_env" - } - action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-arch" - flag: "arm64" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "arm64" @@ -11380,6 +11285,106 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -11408,20 +11413,6 @@ toolchain { } implies: "apple_env" } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } cc_target_os: "apple" } toolchain { @@ -11500,10 +11491,6 @@ toolchain { compiler_flag: "-DDEBUG" } compilation_mode_flags { - mode: DBG - compiler_flag: "-g" - } - compilation_mode_flags { mode: OPT compiler_flag: "-g0" compiler_flag: "-O2" @@ -11513,6 +11500,10 @@ toolchain { compiler_flag: "-fdata-sections" compiler_flag: "-DNS_BLOCK_ASSERTIONS=1" } + compilation_mode_flags { + mode: DBG + compiler_flag: "-g" + } linking_mode_flags { mode: DYNAMIC } @@ -11523,7 +11514,6 @@ toolchain { name: "STACK_FRAME_UNLIMITED" value: "-Wframe-larger-than=100000000 -Wno-vla" } - cxx_builtin_include_directory: "/" builtin_sysroot: "" unfiltered_cxx_flag: "-no-canonical-prefixes" unfiltered_cxx_flag: "-Wno-builtin-macro-redefined" @@ -11540,212 +11530,174 @@ toolchain { ar_flag: "-s" ar_flag: "-o" feature { - name: "apple_env" - env_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" - action: "objc-compile" - action: "objc++-compile" - action: "objc-archive" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" - action: "objc-executable" - action: "objc++-executable" - env_entry { - key: "XCODE_VERSION_OVERRIDE" - value: "%{xcode_version_override_value}" - } - env_entry { - key: "APPLE_SDK_VERSION_OVERRIDE" - value: "%{apple_sdk_version_override_value}" - } - env_entry { - key: "APPLE_SDK_PLATFORM" - value: "%{apple_sdk_platform_value}" - } - } + name: "fastbuild" } feature { - name: "apply_default_compiler_flags" - flag_set { - action: "objc-compile" - action: "objc++-compile" - flag_group { - flag: "-DOS_IOS" - } - } + name: "opt" } feature { - name: "apply_default_warnings" + name: "dbg" + } + feature { + name: "compile_all_modules" + } + feature { + name: "exclude_private_headers_in_module_maps" + } + feature { + name: "has_configured_linker_path" + } + feature { + name: "only_doth_headers_in_module_maps" + } + feature { + name: "objc_actions" + implies: "objc-compile" + implies: "objc++-compile" + implies: "objc-fully-link" + implies: "objc-archive" + implies: "objc-executable" + implies: "objc++-executable" + implies: "assemble" + implies: "preprocess-assemble" + implies: "c-compile" + implies: "c++-compile" + implies: "c++-link-static-library" + implies: "c++-link-pic-static-library" + implies: "c++-link-interface-dynamic-library" + implies: "c++-link-dynamic-library" + implies: "c++-link-alwayslink-static-library" + implies: "c++-link-alwayslink-pic-static-library" + implies: "c++-link-executable" + } + feature { + name: "strip_debug_symbols" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-interface-dynamic-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "-Wshorten-64-to-32" - flag: "-Wbool-conversion" - flag: "-Wconstant-conversion" - flag: "-Wduplicate-method-match" - flag: "-Wempty-body" - flag: "-Wenum-conversion" - flag: "-Wint-conversion" - flag: "-Wunreachable-code" - flag: "-Wmismatched-return-types" - flag: "-Wundeclared-selector" - flag: "-Wuninitialized" - flag: "-Wunused-function" - flag: "-Wunused-variable" + flag: "-Wl,-S" + expand_if_all_available: "strip_debug_symbols" } } } feature { - name: "apply_implicit_frameworks" + name: "symbol_counts" flag_set { - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-framework Foundation" - flag: "-framework UIKit" + flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" } + expand_if_all_available: "symbol_counts_output" } } feature { - name: "bitcode_embedded" + name: "shared_flag" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode" + flag: "-shared" } } } feature { - name: "bitcode_embedded_markers" + name: "linkstamps" flag_set { - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" flag_group { - flag: "-fembed-bitcode-marker" + flag: "%{linkstamp_paths}" } + expand_if_all_available: "linkstamp_paths" } } feature { - name: "cc_archiver_flags" + name: "output_execpath_flags" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "c++-link-dynamic-library" flag_group { - flag: "rcs" + flag: "-o" flag: "%{output_execpath}" } expand_if_all_available: "output_execpath" - expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "compile_all_modules" - } - feature { - name: "coverage" + name: "output_execpath_flags_executable" flag_set { - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-o" } + expand_if_all_available: "output_execpath" } flag_set { - action: "c++-link-interface-dynamic-library" - action: "c++-link-dynamic-library" action: "c++-link-executable" flag_group { - flag: "-fprofile-instr-generate" + flag: "/dev/null" + flag: "-MMD" + flag: "-MF" } + expand_if_all_available: "skip_mostly_static" + expand_if_all_available: "output_execpath" } - provides: "profile" - } - feature { - name: "dbg" - } - feature { - name: "dead_strip" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "--dead_strip" - flag: "--no_dead_strip_inits_and_terms" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" } - requires { - feature: "opt" - } - } - feature { - name: "exclude_private_headers_in_module_maps" - } - feature { - name: "fastbuild" } feature { - name: "force_pic_flags" + name: "global_whole_archive_open" flag_set { action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-pie" + flag: "-Wl,-all_load" } - expand_if_all_available: "force_pic" + expand_if_all_available: "global_whole_archive" } } feature { - name: "framework_paths" + name: "cc_archiver_flags" flag_set { - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-F%{framework_paths}" + flag: "rcs" + flag: "%{output_execpath}" } + expand_if_all_available: "output_execpath" + expand_if_all_available: "uses_action_configs_for_cc_archiver" } } feature { - name: "gcc_coverage_map_format" + name: "runtime_root_flags" flag_set { - action: "c-compile" - action: "c++-compile" - action: "objc-compile" - action: "objc++-compile" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-fprofile-arcs" - flag: "-ftest-coverage" + flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" + iterate_over: "runtime_library_search_directories" } + expand_if_all_available: "runtime_library_search_directories" } - requires { - feature: "run_coverage" - } - } - feature { - name: "global_whole_archive_open" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" @@ -11754,31 +11706,21 @@ toolchain { action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-Wl,-all_load" + flag: "%{runtime_root_flags}" } - expand_if_all_available: "global_whole_archive" + expand_if_all_available: "runtime_root_flags" } - } - feature { - name: "has_configured_linker_path" - } - feature { - name: "include_system_dirs" flag_set { - action: "c-compile" - action: "c++-compile" - action: "c++-module-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "objc-compile" - action: "objc++-compile" - action: "objc-executable" - action: "objc++-executable" - action: "assemble" - action: "preprocess-assemble" + action: "c++-link-executable" + action: "c++-link-dynamic-library" + action: "c++-link-static-library" + action: "c++-link-alwayslink-static-library" + action: "c++-link-pic-static-library" + action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "-isysroot %{sdk_dir}" + flag: "%{runtime_root_entries}" } + expand_if_all_available: "runtime_root_entries" } } feature { @@ -11945,332 +11887,382 @@ toolchain { } } feature { - name: "legacy_link_flags" + name: "force_pic_flags" flag_set { action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "objc-executable" - action: "objc++-executable" flag_group { - flag: "%{legacy_link_flags}" - iterate_over: "legacy_link_flags" + flag: "-pie" } - expand_if_all_available: "legacy_link_flags" + expand_if_all_available: "force_pic" } } feature { - name: "linker_param_file" - flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" - flag_group { - flag: "-Wl,@%{linker_param_file}" - } - expand_if_all_available: "linker_param_file" - } + name: "pch" flag_set { - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-compile" + action: "objc++-compile" + action: "c-compile" + action: "c++-compile" flag_group { - flag: "@%{linker_param_file}" + flag: "-include" + flag: "%{pch_file}" } - expand_if_all_available: "linker_param_file" } } feature { - name: "linkstamps" + name: "module_maps" + } + feature { + name: "use_objc_modules" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{linkstamp_paths}" + flag: "-fmodule-name=%{module_name}" + flag: "-iquote" + flag: "%{module_maps_dir}" + flag: "-fmodules-cache-path=%{modules_cache_path}" } - expand_if_all_available: "linkstamp_paths" } } feature { - name: "llvm_coverage_map_format" + name: "no_enable_modules" flag_set { - action: "c-compile" - action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fprofile-instr-generate" - flag: "-fcoverage-mapping" + flag: "-fmodule-maps" } } requires { - feature: "run_coverage" + feature: "use_objc_modules" } } feature { - name: "module_maps" - } - feature { - name: "no_enable_modules" + name: "apply_default_warnings" flag_set { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-maps" + flag: "-Wshorten-64-to-32" + flag: "-Wbool-conversion" + flag: "-Wconstant-conversion" + flag: "-Wduplicate-method-match" + flag: "-Wempty-body" + flag: "-Wenum-conversion" + flag: "-Wint-conversion" + flag: "-Wunreachable-code" + flag: "-Wmismatched-return-types" + flag: "-Wundeclared-selector" + flag: "-Wuninitialized" + flag: "-Wunused-function" + flag: "-Wunused-variable" } } - requires { - feature: "use_objc_modules" - } } feature { - name: "no_objc_arc" + name: "preprocessor_defines" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fno-objc-arc" + flag: "-D%{preprocessor_defines}" } - expand_if_all_available: "no_objc_arc" } } feature { - name: "objc_actions" - implies: "objc-compile" - implies: "objc++-compile" - implies: "objc-fully-link" - implies: "objc-archive" - implies: "objc-executable" - implies: "objc++-executable" - implies: "assemble" - implies: "preprocess-assemble" - implies: "c-compile" - implies: "c++-compile" - implies: "c++-link-static-library" - implies: "c++-link-pic-static-library" - implies: "c++-link-interface-dynamic-library" - implies: "c++-link-dynamic-library" - implies: "c++-link-alwayslink-static-library" - implies: "c++-link-alwayslink-pic-static-library" - implies: "c++-link-executable" + name: "framework_paths" + flag_set { + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + flag_group { + flag: "-F%{framework_paths}" + } + } } feature { - name: "objc_arc" + name: "coverage" flag_set { + action: "preprocess-assemble" action: "c-compile" action: "c++-compile" - action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "assemble" - action: "preprocess-assemble" + action: "c++-module-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fobjc-arc" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "objc_arc" } - } - feature { - name: "only_doth_headers_in_module_maps" - } - feature { - name: "opt" - } - feature { - name: "output_execpath_flags" flag_set { + action: "c++-link-interface-dynamic-library" action: "c++-link-dynamic-library" + action: "c++-link-executable" flag_group { - flag: "-o" - flag: "%{output_execpath}" + flag: "-fprofile-instr-generate" } - expand_if_all_available: "output_execpath" } + provides: "profile" } feature { - name: "output_execpath_flags_executable" + name: "apply_default_compiler_flags" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-o" + flag: "-DOS_IOS" } - expand_if_all_available: "output_execpath" } + } + feature { + name: "include_system_dirs" flag_set { - action: "c++-link-executable" + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "objc-compile" + action: "objc++-compile" + action: "objc-executable" + action: "objc++-executable" + action: "assemble" + action: "preprocess-assemble" flag_group { - flag: "/dev/null" - flag: "-MMD" - flag: "-MF" + flag: "-isysroot %{sdk_dir}" } - expand_if_all_available: "skip_mostly_static" - expand_if_all_available: "output_execpath" } + } + feature { + name: "bitcode_embedded" flag_set { - action: "c++-link-executable" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "%{output_execpath}" + flag: "-fembed-bitcode" } - expand_if_all_available: "output_execpath" } } feature { - name: "pch" + name: "bitcode_embedded_markers" flag_set { action: "objc-compile" action: "objc++-compile" - action: "c-compile" - action: "c++-compile" flag_group { - flag: "-include" - flag: "%{pch_file}" + flag: "-fembed-bitcode-marker" } } } feature { - name: "preprocessor_defines" + name: "objc_arc" flag_set { - action: "preprocess-assemble" action: "c-compile" action: "c++-compile" + action: "c++-module-compile" action: "c++-header-parsing" action: "c++-header-preprocessing" - action: "c++-module-compile" + action: "assemble" + action: "preprocess-assemble" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-D%{preprocessor_defines}" + flag: "-fobjc-arc" } + expand_if_all_available: "objc_arc" } } feature { - name: "run_coverage" + name: "no_objc_arc" + flag_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + flag_group { + flag: "-fno-objc-arc" + } + expand_if_all_available: "no_objc_arc" + } } feature { - name: "runtime_root_flags" - flag_set { + name: "apple_env" + env_set { + action: "c-compile" + action: "c++-compile" + action: "c++-module-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "assemble" + action: "preprocess-assemble" + action: "objc-compile" + action: "objc++-compile" + action: "objc-archive" action: "c++-link-executable" action: "c++-link-dynamic-library" action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" - flag_group { - flag: "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}" - iterate_over: "runtime_library_search_directories" + action: "objc-executable" + action: "objc++-executable" + env_entry { + key: "XCODE_VERSION_OVERRIDE" + value: "%{xcode_version_override_value}" + } + env_entry { + key: "APPLE_SDK_VERSION_OVERRIDE" + value: "%{apple_sdk_version_override_value}" + } + env_entry { + key: "APPLE_SDK_PLATFORM" + value: "%{apple_sdk_platform_value}" } - expand_if_all_available: "runtime_library_search_directories" } + } + feature { + name: "legacy_link_flags" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-static-library" - action: "c++-link-alwayslink-static-library" - action: "c++-link-pic-static-library" - action: "c++-link-alwayslink-pic-static-library" + action: "objc-executable" + action: "objc++-executable" flag_group { - flag: "%{runtime_root_flags}" + flag: "%{legacy_link_flags}" + iterate_over: "legacy_link_flags" } - expand_if_all_available: "runtime_root_flags" + expand_if_all_available: "legacy_link_flags" } + } + feature { + name: "linker_param_file" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" + flag_group { + flag: "-Wl,@%{linker_param_file}" + } + expand_if_all_available: "linker_param_file" + } + flag_set { action: "c++-link-static-library" action: "c++-link-alwayslink-static-library" action: "c++-link-pic-static-library" action: "c++-link-alwayslink-pic-static-library" flag_group { - flag: "%{runtime_root_entries}" + flag: "@%{linker_param_file}" } - expand_if_all_available: "runtime_root_entries" + expand_if_all_available: "linker_param_file" } } feature { - name: "shared_flag" + name: "version_min" flag_set { + action: "objc-executable" + action: "objc++-executable" + action: "c++-link-executable" action: "c++-link-dynamic-library" + action: "preprocess-assemble" + action: "c-compile" + action: "c++-compile" + action: "c++-header-parsing" + action: "c++-header-preprocessing" + action: "c++-module-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-shared" + flag: "-m<platform_for_version_min>-version-min=%{version_min}" } } } feature { - name: "strip_debug_symbols" + name: "dead_strip" flag_set { action: "c++-link-executable" action: "c++-link-dynamic-library" - action: "c++-link-interface-dynamic-library" action: "objc-executable" action: "objc++-executable" flag_group { - flag: "-Wl,-S" - expand_if_all_available: "strip_debug_symbols" + flag: "--dead_strip" + flag: "--no_dead_strip_inits_and_terms" } } + requires { + feature: "opt" + } } feature { - name: "symbol_counts" + name: "run_coverage" + } + feature { + name: "llvm_coverage_map_format" flag_set { - action: "c++-link-executable" - action: "c++-link-dynamic-library" + action: "c-compile" + action: "c++-compile" + action: "objc-compile" + action: "objc++-compile" flag_group { - flag: "-Wl,--print-symbol-counts=%{symbol_counts_output}" + flag: "-fprofile-instr-generate" + flag: "-fcoverage-mapping" } - expand_if_all_available: "symbol_counts_output" + } + requires { + feature: "run_coverage" } } feature { - name: "use_objc_modules" + name: "gcc_coverage_map_format" flag_set { + action: "c-compile" + action: "c++-compile" action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-fmodule-name=%{module_name}" - flag: "-iquote" - flag: "%{module_maps_dir}" - flag: "-fmodules-cache-path=%{modules_cache_path}" + flag: "-fprofile-arcs" + flag: "-ftest-coverage" } } + requires { + feature: "run_coverage" + } } feature { - name: "version_min" + name: "apply_implicit_frameworks" flag_set { action: "objc-executable" action: "objc++-executable" - action: "c++-link-executable" - action: "c++-link-dynamic-library" - action: "preprocess-assemble" - action: "c-compile" - action: "c++-compile" - action: "c++-header-parsing" - action: "c++-header-preprocessing" - action: "c++-module-compile" - action: "objc-compile" - action: "objc++-compile" flag_group { - flag: "-m<platform_for_version_min>-version-min=%{version_min}" + flag: "-framework Foundation" + flag: "-framework UIKit" } } } action_config { - config_name: "assemble" - action_name: "assemble" + config_name: "c-compile" + action_name: "c-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" implies: "objc_arc" implies: "no_objc_arc" - implies: "include_system_dirs" implies: "apple_env" } action_config { @@ -12288,8 +12280,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-parsing" - action_name: "c++-header-parsing" + config_name: "c++-module-compile" + action_name: "c++-module-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -12302,8 +12294,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-header-preprocessing" - action_name: "c++-header-preprocessing" + config_name: "c++-header-parsing" + action_name: "c++-header-parsing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -12316,108 +12308,8 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c++-link-alwayslink-pic-static-library" - action_name: "c++-link-alwayslink-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-alwayslink-static-library" - action_name: "c++-link-alwayslink-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-dynamic-library" - action_name: "c++-link-dynamic-library" - tool { - tool_path: "wrapped_clang" - } - implies: "has_configured_linker_path" - implies: "symbol_counts" - implies: "shared_flag" - implies: "linkstamps" - implies: "output_execpath_flags" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-executable" - action_name: "c++-link-executable" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "symbol_counts" - implies: "linkstamps" - implies: "output_execpath_flags_executable" - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "input_param_flags" - implies: "force_pic_flags" - implies: "legacy_link_flags" - implies: "strip_debug_symbols" - implies: "linker_param_file" - implies: "version_min" - implies: "apple_env" - } - action_config { - config_name: "c++-link-interface-dynamic-library" - action_name: "c++-link-interface-dynamic-library" - tool { - tool_path: "DUMMY_TOOL" - } - implies: "strip_debug_symbols" - implies: "apple_env" - } - action_config { - config_name: "c++-link-pic-static-library" - action_name: "c++-link-pic-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-link-static-library" - action_name: "c++-link-static-library" - tool { - tool_path: "/usr/bin/ar" - } - implies: "global_whole_archive_open" - implies: "runtime_root_flags" - implies: "cc_archiver_flags" - implies: "input_param_flags" - implies: "linker_param_file" - implies: "apple_env" - } - action_config { - config_name: "c++-module-compile" - action_name: "c++-module-compile" + config_name: "c++-header-preprocessing" + action_name: "c++-header-preprocessing" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" @@ -12430,12 +12322,22 @@ toolchain { implies: "apple_env" } action_config { - config_name: "c-compile" - action_name: "c-compile" + config_name: "objc-compile" + action_name: "objc-compile" tool { tool_path: "wrapped_clang" execution_requirement: "requires-darwin" } + flag_set { + flag_group { + flag: "-arch" + flag: "<architecture>" + } + } + implies: "objc_actions" + implies: "apply_default_compiler_flags" + implies: "apply_default_warnings" + implies: "framework_paths" implies: "preprocessor_defines" implies: "include_system_dirs" implies: "version_min" @@ -12469,17 +12371,61 @@ toolchain { implies: "apple_env" } action_config { - config_name: "objc++-executable" - action_name: "objc++-executable" + config_name: "assemble" + action_name: "assemble" tool { - tool_path: "wrapped_clang_pp" + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "objc_arc" + implies: "no_objc_arc" + implies: "include_system_dirs" + implies: "apple_env" + } + action_config { + config_name: "preprocess-assemble" + action_name: "preprocess-assemble" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + implies: "preprocessor_defines" + implies: "include_system_dirs" + implies: "version_min" + implies: "objc_arc" + implies: "no_objc_arc" + implies: "apple_env" + } + action_config { + config_name: "objc-archive" + action_name: "objc-archive" + tool { + tool_path: "libtool" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-stdlib=libc++" - flag: "-std=gnu++11" + flag: "-static" + flag: "-filelist" + flag: "%{obj_list_path}" + flag: "-arch_only" + flag: "<architecture>" + flag: "-syslibroot" + flag: "%{sdk_dir}" + flag: "-o" + flag: "%{archive_path}" } + } + implies: "apple_env" + } + action_config { + config_name: "objc-executable" + action_name: "objc-executable" + tool { + tool_path: "wrapped_clang" + execution_requirement: "requires-darwin" + } + flag_set { flag_group { flag: "-arch" flag: "<architecture>" @@ -12530,59 +12476,17 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { - config_name: "objc-archive" - action_name: "objc-archive" - tool { - tool_path: "libtool" - execution_requirement: "requires-darwin" - } - flag_set { - flag_group { - flag: "-static" - flag: "-filelist" - flag: "%{obj_list_path}" - flag: "-arch_only" - flag: "<architecture>" - flag: "-syslibroot" - flag: "%{sdk_dir}" - flag: "-o" - flag: "%{archive_path}" - } - } - implies: "apple_env" - } - action_config { - config_name: "objc-compile" - action_name: "objc-compile" + config_name: "objc++-executable" + action_name: "objc++-executable" tool { - tool_path: "wrapped_clang" + tool_path: "wrapped_clang_pp" execution_requirement: "requires-darwin" } flag_set { flag_group { - flag: "-arch" - flag: "<architecture>" + flag: "-stdlib=libc++" + flag: "-std=gnu++11" } - } - implies: "objc_actions" - implies: "apply_default_compiler_flags" - implies: "apply_default_warnings" - implies: "framework_paths" - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } - action_config { - config_name: "objc-executable" - action_name: "objc-executable" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - flag_set { flag_group { flag: "-arch" flag: "<architecture>" @@ -12633,6 +12537,106 @@ toolchain { implies: "apply_implicit_frameworks" } action_config { + config_name: "c++-link-executable" + action_name: "c++-link-executable" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "symbol_counts" + implies: "linkstamps" + implies: "output_execpath_flags_executable" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "force_pic_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-dynamic-library" + action_name: "c++-link-dynamic-library" + tool { + tool_path: "wrapped_clang" + } + implies: "has_configured_linker_path" + implies: "symbol_counts" + implies: "shared_flag" + implies: "linkstamps" + implies: "output_execpath_flags" + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "input_param_flags" + implies: "legacy_link_flags" + implies: "strip_debug_symbols" + implies: "linker_param_file" + implies: "version_min" + implies: "apple_env" + } + action_config { + config_name: "c++-link-static-library" + action_name: "c++-link-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-static-library" + action_name: "c++-link-alwayslink-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-pic-static-library" + action_name: "c++-link-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-alwayslink-pic-static-library" + action_name: "c++-link-alwayslink-pic-static-library" + tool { + tool_path: "/usr/bin/ar" + } + implies: "global_whole_archive_open" + implies: "runtime_root_flags" + implies: "cc_archiver_flags" + implies: "input_param_flags" + implies: "linker_param_file" + implies: "apple_env" + } + action_config { + config_name: "c++-link-interface-dynamic-library" + action_name: "c++-link-interface-dynamic-library" + tool { + tool_path: "DUMMY_TOOL" + } + implies: "strip_debug_symbols" + implies: "apple_env" + } + action_config { config_name: "objc-fully-link" action_name: "objc-fully-link" tool { @@ -12661,19 +12665,5 @@ toolchain { } implies: "apple_env" } - action_config { - config_name: "preprocess-assemble" - action_name: "preprocess-assemble" - tool { - tool_path: "wrapped_clang" - execution_requirement: "requires-darwin" - } - implies: "preprocessor_defines" - implies: "include_system_dirs" - implies: "version_min" - implies: "objc_arc" - implies: "no_objc_arc" - implies: "apple_env" - } cc_target_os: "apple" } diff --git a/tools/osx/crosstool/osx_archs.bzl b/tools/osx/crosstool/osx_archs.bzl new file mode 100644 index 0000000000..5ee87c6173 --- /dev/null +++ b/tools/osx/crosstool/osx_archs.bzl @@ -0,0 +1,28 @@ +"""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 new file mode 100644 index 0000000000..3a523d2280 --- /dev/null +++ b/tools/osx/crosstool/wrapped_clang.tpl @@ -0,0 +1,10 @@ +# 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 new file mode 100644 index 0000000000..4afc7b056e --- /dev/null +++ b/tools/osx/crosstool/wrapped_clang_pp.tpl @@ -0,0 +1,10 @@ +# 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 82833c07bf..7326e602a4 100644 --- a/tools/osx/xcode_configure.bzl +++ b/tools/osx/xcode_configure.bzl @@ -89,22 +89,30 @@ def _xcode_version_output(repository_ctx, name, version, aliases, developer_dir) VERSION_CONFIG_STUB = "xcode_config(name = 'host_xcodes')" -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" +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. - xcodeloc_src_path = str(repository_ctx.path(Label(repository_ctx.attr.xcode_locator))) + This should only be invoked on a darwin OS, as xcode-locator cannot be built + otherwise. + + 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)) xcrun_result = repository_ctx.execute(["env", "-i", "xcrun", "clang", "-fobjc-arc", "-framework", "CoreServices", "-framework", "Foundation", "-o", "xcode-locator-bin", xcodeloc_src_path], 30) @@ -116,8 +124,7 @@ def _darwin_build_file(repository_ctx): code=xcrun_result.return_code, err=xcrun_result.stderr, out=xcrun_result.stdout) - print(error_msg) - return VERSION_CONFIG_STUB + "\n# Error: " + error_msg.replace("\n", " ") + "\n" + return (None, error_msg.replace("\n", " ")) xcode_locator_result = repository_ctx.execute(["./xcode-locator-bin", "-v"], 30) if (xcode_locator_result.return_code != 0): @@ -127,28 +134,58 @@ def _darwin_build_file(repository_ctx): code=xcode_locator_result.return_code, err=xcode_locator_result.stderr, out=xcode_locator_result.stdout) - print(error_msg) + 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) 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 = "" - # 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 + 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 buildcontents += "xcode_config(name = 'host_xcodes'," if target_names: buildcontents += "\n versions = [%s]," % ", ".join(target_names) |