"""This module encapsulates logic to create emscripten_cc_toolchain_config rule."""

load(
    "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl",
    "action_config",
    "env_entry",
    "env_set",
    "feature",
    "feature_set",
    "flag_group",
    "tool",
    "tool_path",
    "variable_with_value",
    "with_feature_set",
    _flag_set = "flag_set",
)
load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES")

def flag_set(flags = None, features = None, not_features = None, **kwargs):
    """Extension to flag_set which allows for a "simple" form.

    The simple form allows specifying flags as a simple list instead of a flag_group
    if enable_if or expand_if semantics are not required.

    Similarly, the simple form allows passing features/not_features if they are a simple
    list of semantically "and" features.
    (i.e. "asan" and "dbg", rather than "asan" or "dbg")

    Args:
      flags: list, set of flags
      features: list, set of features required to be enabled.
      not_features: list, set of features required to not be enabled.
      **kwargs: The rest of the args for flag_set.

    Returns:
      flag_set
    """
    if flags:
        if kwargs.get("flag_groups"):
            fail("Cannot set flags and flag_groups")
        else:
            kwargs["flag_groups"] = [flag_group(flags = flags)]

    if features or not_features:
        if kwargs.get("with_features"):
            fail("Cannot set features/not_feature and with_features")
        kwargs["with_features"] = [with_feature_set(
            features = features or [],
            not_features = not_features or [],
        )]
    return _flag_set(**kwargs)

CROSSTOOL_DEFAULT_WARNINGS = [
    "-Wall",
]

def _impl(ctx):
    target_cpu = ctx.attr.cpu
    toolchain_identifier = "emscripten-" + target_cpu
    target_system_name = target_cpu + "-unknown-emscripten"

    host_system_name = "i686-unknown-linux-gnu"

    target_libc = "musl/js"

    abi_version = "emscripten_syscalls"

    compiler = "emscripten"
    abi_libc_version = "default"

    cc_target_os = "emscripten"
    emscripten_version = ctx.attr.emscripten_version

    builtin_sysroot = "external/emscripten/emscripten/cache/sysroot"

    ################################################################
    # Tools
    ################################################################
    clang_tool = tool(path = "emcc.sh")
    clif_match_tool = tool(path = "dummy_clif_matcher")
    link_tool = tool(path = "emcc_link.sh")
    archive_tool = tool(path = "emar.sh")
    strip_tool = tool(path = "NOT_USED_STRIP_TOOL")

    #### Legacy tool paths (much of this is redundant with action_configs, but
    #### these are still used for some things)
    tool_paths = [
        tool_path(name = "ar", path = "emar.sh"),
        tool_path(name = "cpp", path = "/bin/false"),
        tool_path(name = "gcc", path = "emcc.sh"),
        tool_path(name = "gcov", path = "/bin/false"),
        tool_path(name = "ld", path = "emcc_link.sh"),
        tool_path(name = "nm", path = "NOT_USED"),
        tool_path(name = "objdump", path = "/bin/false"),
        tool_path(name = "strip", path = "NOT_USED"),
    ]

    ################################################################
    # Action Configs
    ################################################################

    cpp_compile_action = action_config(
        action_name = ACTION_NAMES.cpp_compile,
        tools = [clang_tool],
    )

    cpp_module_compile_action = action_config(
        action_name = ACTION_NAMES.cpp_module_compile,
        tools = [clang_tool],
    )

    cpp_module_codegen_action = action_config(
        action_name = ACTION_NAMES.cpp_module_codegen,
        tools = [clang_tool],
    )

    clif_match_action = action_config(
        action_name = ACTION_NAMES.clif_match,
        tools = [clif_match_tool],
    )

    cpp_link_dynamic_library_action = action_config(
        action_name = ACTION_NAMES.cpp_link_dynamic_library,
        tools = [link_tool],
    )

    strip_action = action_config(
        action_name = ACTION_NAMES.strip,
        tools = [strip_tool],
    )

    preprocess_assemble_action = action_config(
        action_name = ACTION_NAMES.preprocess_assemble,
        tools = [clang_tool],
    )

    cpp_header_parsing_action = action_config(
        action_name = ACTION_NAMES.cpp_header_parsing,
        tools = [clang_tool],
    )

    cpp_link_static_library_action = action_config(
        action_name = ACTION_NAMES.cpp_link_static_library,
        enabled = True,
        flag_sets = [
            flag_set(
                flag_groups = [
                    flag_group(
                        flags = ["rcsD", "%{output_execpath}"],
                        expand_if_available = "output_execpath",
                    ),
                ],
            ),
            flag_set(
                flag_groups = [
                    flag_group(
                        iterate_over = "libraries_to_link",
                        flag_groups = [
                            flag_group(
                                flags = ["%{libraries_to_link.name}"],
                                expand_if_equal = variable_with_value(
                                    name = "libraries_to_link.type",
                                    value = "object_file",
                                ),
                            ),
                            flag_group(
                                flags = ["%{libraries_to_link.object_files}"],
                                iterate_over = "libraries_to_link.object_files",
                                expand_if_equal = variable_with_value(
                                    name = "libraries_to_link.type",
                                    value = "object_file_group",
                                ),
                            ),
                        ],
                        expand_if_available = "libraries_to_link",
                    ),
                ],
            ),
            flag_set(
                flag_groups = [
                    flag_group(
                        flags = ["@%{linker_param_file}"],
                        expand_if_available = "linker_param_file",
                    ),
                ],
            ),
        ],
        tools = [archive_tool],
    )

    c_compile_action = action_config(
        action_name = ACTION_NAMES.c_compile,
        tools = [clang_tool],
    )

    linkstamp_compile_action = action_config(
        action_name = ACTION_NAMES.linkstamp_compile,
        tools = [clang_tool],
    )

    assemble_action = action_config(
        action_name = ACTION_NAMES.assemble,
        tools = [clang_tool],
    )

    cpp_link_executable_action = action_config(
        action_name = ACTION_NAMES.cpp_link_executable,
        tools = [link_tool],
    )

    cpp_link_nodeps_dynamic_library_action = action_config(
        action_name = ACTION_NAMES.cpp_link_nodeps_dynamic_library,
        tools = [link_tool],
    )

    action_configs = [
        strip_action,
        c_compile_action,
        cpp_compile_action,
        linkstamp_compile_action,
        assemble_action,
        preprocess_assemble_action,
        cpp_header_parsing_action,
        cpp_module_compile_action,
        cpp_module_codegen_action,
        cpp_link_executable_action,
        cpp_link_dynamic_library_action,
        cpp_link_nodeps_dynamic_library_action,
        cpp_link_static_library_action,
        clif_match_action,
    ]

    all_compile_actions = [
        ACTION_NAMES.c_compile,
        ACTION_NAMES.cpp_compile,
        ACTION_NAMES.linkstamp_compile,
        ACTION_NAMES.assemble,
        ACTION_NAMES.preprocess_assemble,
        ACTION_NAMES.cpp_header_parsing,
        ACTION_NAMES.cpp_module_compile,
        ACTION_NAMES.cpp_module_codegen,
        ACTION_NAMES.clif_match,
        ACTION_NAMES.lto_backend,
    ]

    all_cpp_compile_actions = [
        ACTION_NAMES.cpp_compile,
        ACTION_NAMES.linkstamp_compile,
        ACTION_NAMES.cpp_header_parsing,
        ACTION_NAMES.cpp_module_compile,
        ACTION_NAMES.cpp_module_codegen,
        ACTION_NAMES.clif_match,
    ]

    preprocessor_compile_actions = [
        ACTION_NAMES.c_compile,
        ACTION_NAMES.cpp_compile,
        ACTION_NAMES.linkstamp_compile,
        ACTION_NAMES.preprocess_assemble,
        ACTION_NAMES.cpp_header_parsing,
        ACTION_NAMES.cpp_module_compile,
        ACTION_NAMES.clif_match,
    ]

    all_link_actions = [
        ACTION_NAMES.cpp_link_executable,
        ACTION_NAMES.cpp_link_dynamic_library,
        ACTION_NAMES.cpp_link_nodeps_dynamic_library,
    ]

    ################################################################
    # Features
    ################################################################

    features = [
        # This set of magic "feature"s are important configuration information for blaze.
        feature(name = "no_legacy_features", enabled = True),
        feature(
            name = "has_configured_linker_path",
            enabled = True,
        ),

        # Blaze requests this feature by default, but we don't care.
        feature(name = "dependency_file"),

        # Blaze requests this feature by default, but we don't care.
        feature(name = "random_seed"),

        # Formerly "needsPic" attribute
        feature(name = "supports_pic", enabled = False),

        # Blaze requests this feature by default.
        # Blaze also tests if this feature is supported, before setting the "pic" build-variable.
        feature(name = "pic"),

        # Blaze requests this feature if fission is requested
        # Blaze also tests if it's supported to see if we support fission.
        feature(name = "per_object_debug_info"),

        # Blaze requests this feature by default.
        # Blaze also tests if this feature is supported before setting preprocessor_defines
        # (...but why?)
        feature(name = "preprocessor_defines"),

        # Blaze requests this feature by default.
        # Blaze also tests if this feature is supported before setting includes. (...but why?)
        feature(name = "include_paths"),

        # Blaze tests if this feature is enabled in order to create implicit
        # "nodeps" .so outputs from cc_library rules.
        feature(name = "supports_dynamic_linker", enabled = False),

        # Blaze requests this feature when linking a cc_binary which is
        # "dynamic" aka linked against nodeps-dynamic-library cc_library
        # outputs.
        feature(name = "dynamic_linking_mode"),

        #### Configuration features
        feature(
            name = "crosstool_cpu",
            enabled = True,
            implies = ["crosstool_cpu_" + target_cpu],
        ),
        feature(
            name = "crosstool_cpu_asmjs",
            provides = ["variant:crosstool_cpu"],
        ),
        feature(
            name = "crosstool_cpu_wasm",
            provides = ["variant:crosstool_cpu"],
        ),

        # These 3 features will be automatically enabled by blaze in the
        # corresponding build mode.
        feature(
            name = "opt",
            provides = ["variant:crosstool_build_mode"],
        ),
        feature(
            name = "dbg",
            provides = ["variant:crosstool_build_mode"],
        ),
        feature(
            name = "fastbuild",
            provides = ["variant:crosstool_build_mode"],
        ),

        #### User-settable features

        # Set if enabling exceptions.
        feature(name = "exceptions"),

        # This feature overrides the default optimization to prefer execution speed
        # over binary size (like clang -O3).
        feature(
            name = "optimized_for_speed",
            provides = ["variant:crosstool_optimization_mode"],
        ),

        # This feature overrides the default optimization to prefer binary size over
        # execution speed (like clang -Oz).
        feature(
            name = "optimized_for_size",
            provides = ["variant:crosstool_optimization_mode"],
        ),

        # Convenience aliases / alt-spellings.
        feature(
            name = "optimize_for_speed",
            implies = ["optimized_for_speed"],
        ),
        feature(
            name = "optimize_for_size",
            implies = ["optimized_for_size"],
        ),

        # This feature allows easier use of profiling tools by preserving mangled
        # C++ names. This does everything profiling_funcs does and more.
        feature(name = "profiling"),

        # This feature emits only enough debug info for function names to appear
        # in profiles.
        feature(name = "profiling_funcs"),

        # This feature allows source maps to be generated.
        feature(
            name = "source_maps",
            implies = ["full_debug_info"],
        ),
        feature(
            name = "dwarf_debug_info",
            implies = ["profiling"],
        ),

        # Turns on full debug info (-g4).
        feature(name = "full_debug_info"),

        # Enables the use of "Emscripten" Pthread implementation.
        # https://kripken.github.io/emscripten-site/docs/porting/pthreads.html
        # https://github.com/kripken/emscripten/wiki/Pthreads-with-WebAssembly
        feature(name = "use_pthreads"),

        # If enabled, the runtime will exit when main() completes.
        feature(name = "exit_runtime"),

        # Primarily for toolchain maintainers:
        feature(name = "emcc_debug"),
        feature(name = "emcc_debug_link"),
        feature(
            name = "llvm_backend",
            requires = [feature_set(features = ["crosstool_cpu_wasm"])],
            enabled = True,
        ),

        # Remove once flag is flipped.
        # See https://github.com/bazelbuild/bazel/issues/7687
        feature(
            name = "do_not_split_linking_cmdline",
        ),

        # Adds simd support, only available with the llvm backend.
        feature(
            name = "wasm_simd",
            requires = [feature_set(features = ["llvm_backend"])],
        ),
        feature(
            name = "precise_long_double_printf",
            enabled = True,
        ),
        feature(
            name = "wasm_warnings_as_errors",
            enabled = True,
        ),

        # ASan and UBSan. See also:
        # https://emscripten.org/docs/debugging/Sanitizers.html
        feature(name = "wasm_asan"),
        feature(name = "wasm_ubsan"),
    ]

    crosstool_default_flag_sets = [
        # Compile, Link, and CC_FLAGS make variable
        flag_set(
            actions = [
                ACTION_NAMES.c_compile,
                ACTION_NAMES.cpp_compile,
                ACTION_NAMES.linkstamp_compile,
                ACTION_NAMES.assemble,
                ACTION_NAMES.preprocess_assemble,
                ACTION_NAMES.cpp_header_parsing,
                ACTION_NAMES.cpp_module_compile,
                ACTION_NAMES.cpp_module_codegen,
                ACTION_NAMES.clif_match,
                ACTION_NAMES.cpp_link_executable,
                ACTION_NAMES.cpp_link_dynamic_library,
                ACTION_NAMES.cpp_link_nodeps_dynamic_library,
            ],
            flag_groups = [
                flag_group(
                    flags = ["--sysroot=%{sysroot}"],
                    expand_if_available = "sysroot",
                ),
            ],
        ),
        # Compile + Link
        flag_set(
            actions = [
                ACTION_NAMES.c_compile,
                ACTION_NAMES.cpp_compile,
                ACTION_NAMES.linkstamp_compile,
                ACTION_NAMES.assemble,
                ACTION_NAMES.preprocess_assemble,
                ACTION_NAMES.cpp_header_parsing,
                ACTION_NAMES.cpp_module_compile,
                ACTION_NAMES.cpp_module_codegen,
                ACTION_NAMES.clif_match,
                ACTION_NAMES.cpp_link_executable,
                ACTION_NAMES.cpp_link_dynamic_library,
                ACTION_NAMES.cpp_link_nodeps_dynamic_library,
            ],
            # This forces color diagnostics even on Forge (where we don't have an
            # attached terminal).
            flags = [
                "-fdiagnostics-color",
            ],
        ),
        # C++ compiles (and implicitly link)
        flag_set(
            actions = all_cpp_compile_actions,
            flags = [
                "-fno-exceptions",
            ],
            not_features = ["exceptions"],
        ),
        flag_set(
            actions = all_cpp_compile_actions,
            flags = [
                "-fexceptions",
            ],
            features = ["exceptions"],
        ),
        # All compiles (and implicitly link)
        flag_set(
            actions = all_compile_actions +
                      all_link_actions,
            flags = [
                "-fno-strict-aliasing",
                "-funsigned-char",
                "-no-canonical-prefixes",
            ],
        ),
        # Language Features
        flag_set(
            actions = all_cpp_compile_actions,
            flags = ["-std=gnu++17", "-nostdinc", "-nostdinc++",],
        ),

        # Emscripten-specific settings:
        flag_set(
            actions = all_compile_actions + all_link_actions,
            flags = ["-s", "WASM=0"],
            features = ["crosstool_cpu_asmjs"],
        ),
        flag_set(
            actions = all_compile_actions +
                      all_link_actions,
            flags = ["-s", "USE_PTHREADS=1"],
            features = ["use_pthreads"],
        ),
        flag_set(
            actions = all_link_actions,
            flags = ["-s", "EXIT_RUNTIME=1"],
            features = ["exit_runtime"],
        ),
        flag_set(
            actions = all_compile_actions + all_link_actions,
            flags = ["-pthread"],
            features = ["llvm_backend", "use_pthreads"],
        ),
        flag_set(
            actions = all_compile_actions + all_link_actions,
            flags = ["-msimd128"],
            features = ["wasm_simd"],
        ),
        flag_set(
            actions = all_link_actions,
            flags = ["-s", "PRINTF_LONG_DOUBLE=1"],
            features = ["precise_long_double_printf"],
        ),

        # Opt
        flag_set(
            actions = preprocessor_compile_actions,
            flags = ["-DNDEBUG"],
            features = ["opt"],
        ),
        flag_set(
            actions = all_compile_actions,
            flags = ["-fomit-frame-pointer"],
            features = ["opt"],
        ),
        flag_set(
            actions = all_compile_actions +
                      all_link_actions,
            flags = ["-O3"],
            features = ["opt"],
        ),
        # Users can override opt-level with semantic names...
        flag_set(
            actions = all_compile_actions +
                      all_link_actions,
            flags = ["-Oz"],
            features = ["optimized_for_size", "opt"],
        ),
        flag_set(
            actions = all_compile_actions +
                      all_link_actions,
            flags = ["-O3"],
            features = ["optimized_for_speed", "opt"],
        ),

        # Fastbuild
        flag_set(
            actions = all_compile_actions,
            flags = ["-fomit-frame-pointer"],
            features = ["fastbuild"],
        ),
        flag_set(
            actions = all_compile_actions +
                      all_link_actions,
            flags = ["-O2"],
            features = ["fastbuild"],
        ),

        # Dbg
        flag_set(
            actions = all_compile_actions,
            flags = ["-fno-omit-frame-pointer"],
            features = ["dbg"],
        ),
        flag_set(
            actions = all_compile_actions +
                      all_link_actions,
            flags = ["-g", "-O0"],
            features = ["dbg"],
        ),
        flag_set(
            actions = all_compile_actions +
                      all_link_actions,
            flags = [
                "-g4",
                "-fsanitize=address",
                "-O1",
                "-DADDRESS_SANITIZER=1",
                "-fno-omit-frame-pointer",
            ],
            features = ["wasm_asan"],
        ),
        flag_set(
            actions = all_compile_actions +
                      all_link_actions,
            flags = [
                "-g4",
                "-fsanitize=undefined",
                "-O1",
                "-DUNDEFINED_BEHAVIOR_SANITIZER=1",
                "-fno-omit-frame-pointer",
                "-fno-sanitize=vptr",
            ],
            features = ["wasm_ubsan"],
        ),

        # Profiling provides full debug info and a special --profiling flag
        # to control name mangling
        flag_set(
            actions = all_link_actions,
            flags = ["--profiling"],
            features = ["profiling"],
        ),
        flag_set(
            actions = all_link_actions,
            flags = ["--profiling_funcs"],
            features = ["profiling_funcs"],
        ),
        flag_set(
            actions = all_compile_actions +
                      all_link_actions,
            flags = ["-g4"],
            features = ["full_debug_info"],
        ),
        flag_set(
            actions = all_link_actions,
            flags = ["-gseparate-dwarf"],
            features = ["dwarf_debug_info"],
        ),
        flag_set(
            actions = all_compile_actions +
                      all_link_actions,
            flags = ["-fdebug-compilation-dir=."],
            features = ["dwarf_debug_info"],
        ),
        # Generic warning flag list
        flag_set(
            actions = all_compile_actions,
            flags = CROSSTOOL_DEFAULT_WARNINGS,
        ),

        # Defines and Includes and Paths and such
        flag_set(
            actions = all_compile_actions,
            flag_groups = [
                flag_group(flags = ["-fPIC"], expand_if_available = "pic"),
            ],
        ),
        flag_set(
            actions = preprocessor_compile_actions,
            flag_groups = [
                flag_group(
                    flags = ["-D%{preprocessor_defines}"],
                    iterate_over = "preprocessor_defines",
                ),
            ],
        ),
        flag_set(
            actions = preprocessor_compile_actions,
            flag_groups = [
                flag_group(
                    flags = ["-include", "%{includes}"],
                    iterate_over = "includes",
                    expand_if_available = "includes",
                ),
            ],
        ),
        flag_set(
            actions = preprocessor_compile_actions,
            flag_groups = [
                flag_group(
                    flags = ["-iquote", "%{quote_include_paths}"],
                    iterate_over = "quote_include_paths",
                ),
                flag_group(
                    flags = ["-I%{include_paths}"],
                    iterate_over = "include_paths",
                ),
                flag_group(
                    flags = ["-isystem", "%{system_include_paths}"],
                    iterate_over = "system_include_paths",
                ),
            ],
        ),

        ## Linking options (not libs -- those go last)

        # Generic link options
        flag_set(
            actions = [
                ACTION_NAMES.cpp_link_dynamic_library,
                ACTION_NAMES.cpp_link_nodeps_dynamic_library,
            ],
            flags = ["-shared"],
        ),

        # Linker search paths and objects:
        flag_set(
            actions = all_link_actions,
            flag_groups = [
                flag_group(
                    iterate_over = "runtime_library_search_directories",
                    flag_groups = [
                        flag_group(
                            flags = [
                                "-Wl,-rpath,$EXEC_ORIGIN/%{runtime_library_search_directories}",
                            ],
                            expand_if_true = "is_cc_test",
                        ),
                        flag_group(
                            flags = [
                                "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}",
                            ],
                            expand_if_false = "is_cc_test",
                        ),
                    ],
                    expand_if_available = "runtime_library_search_directories",
                ),
            ],
        ),
        flag_set(
            actions = all_link_actions,
            flag_groups = [
                flag_group(
                    flags = ["-L%{library_search_directories}"],
                    iterate_over = "library_search_directories",
                    expand_if_available = "library_search_directories",
                ),
            ],
        ),
        flag_set(
            actions = all_link_actions,
            flag_groups = [
                flag_group(
                    # This is actually a list of object files from the linkstamp steps
                    flags = ["%{linkstamp_paths}"],
                    iterate_over = "linkstamp_paths",
                    expand_if_available = "linkstamp_paths",
                ),
            ],
        ),
        flag_set(
            actions = all_link_actions,
            flag_groups = [
                flag_group(
                    flags = ["@%{thinlto_param_file}"],
                    expand_if_available = "libraries_to_link",
                    expand_if_true = "thinlto_param_file",
                ),
                flag_group(
                    iterate_over = "libraries_to_link",
                    flag_groups = [
                        flag_group(
                            flags = ["-Wl,--start-lib"],
                            expand_if_equal = variable_with_value(
                                name = "libraries_to_link.type",
                                value = "object_file_group",
                            ),
                        ),
                        flag_group(
                            flags = ["-Wl,-whole-archive"],
                            expand_if_true = "libraries_to_link.is_whole_archive",
                        ),
                        flag_group(
                            flags = ["%{libraries_to_link.object_files}"],
                            iterate_over = "libraries_to_link.object_files",
                            expand_if_equal = variable_with_value(
                                name = "libraries_to_link.type",
                                value = "object_file_group",
                            ),
                        ),
                        flag_group(
                            flags = ["%{libraries_to_link.name}"],
                            expand_if_equal = variable_with_value(
                                name = "libraries_to_link.type",
                                value = "object_file",
                            ),
                        ),
                        flag_group(
                            flags = ["%{libraries_to_link.name}"],
                            expand_if_equal = variable_with_value(
                                name = "libraries_to_link.type",
                                value = "interface_library",
                            ),
                        ),
                        flag_group(
                            flags = ["%{libraries_to_link.name}"],
                            expand_if_equal = variable_with_value(
                                name = "libraries_to_link.type",
                                value = "static_library",
                            ),
                        ),
                        flag_group(
                            flags = ["-l%{libraries_to_link.name}"],
                            expand_if_equal = variable_with_value(
                                name = "libraries_to_link.type",
                                value = "dynamic_library",
                            ),
                        ),
                        flag_group(
                            flags = ["-l:%{libraries_to_link.name}"],
                            expand_if_equal = variable_with_value(
                                name = "libraries_to_link.type",
                                value = "versioned_dynamic_library",
                            ),
                        ),
                        flag_group(
                            flags = ["-Wl,-no-whole-archive"],
                            expand_if_true = "libraries_to_link.is_whole_archive",
                        ),
                        flag_group(
                            flags = ["-Wl,--end-lib"],
                            expand_if_equal = variable_with_value(
                                name = "libraries_to_link.type",
                                value = "object_file_group",
                            ),
                        ),
                    ],
                    expand_if_available = "libraries_to_link",
                ),
            ],
        ),

        # Configure the header parsing and preprocessing.
        flag_set(
            actions = [ACTION_NAMES.cpp_header_parsing],
            flags = ["-xc++-header", "-fsyntax-only"],
            features = ["parse_headers"],
        ),

        # Note: user compile flags should be nearly last -- you probably
        # don't want to put any more features after this!
        flag_set(
            actions = [
                ACTION_NAMES.c_compile,
                ACTION_NAMES.cpp_compile,
                ACTION_NAMES.linkstamp_compile,
                ACTION_NAMES.assemble,
                ACTION_NAMES.preprocess_assemble,
                ACTION_NAMES.cpp_header_parsing,
                ACTION_NAMES.cpp_module_compile,
                ACTION_NAMES.cpp_module_codegen,
                ACTION_NAMES.clif_match,
            ],
            flag_groups = [
                flag_group(
                    flags = ["%{user_compile_flags}"],
                    iterate_over = "user_compile_flags",
                    expand_if_available = "user_compile_flags",
                ),
            ],
        ),
        flag_set(
            actions = all_link_actions,
            flag_groups = [
                flag_group(
                    flags = ["%{user_link_flags}"],
                    iterate_over = "user_link_flags",
                    expand_if_available = "user_link_flags",
                ),
            ],
        ),
        ## Options which need to go late -- after all the user options -- go here.
        flag_set(
            # One might hope that these options would only be needed for C++
            # compiles. But, sadly, users compile ".c" files with custom
            # copts=["-x", "c++"], and expect that to be able to find C++ stdlib
            # headers. It might be worth pondering how blaze could support this sort
            # of use-case better.
            actions = preprocessor_compile_actions +
                      [ACTION_NAMES.cc_flags_make_variable],
            flags = [
                "-iwithsysroot" + "/include/c++/v1",
                "-iwithsysroot" + "/include/compat",
                "-iwithsysroot" + "/include",
                "-isystem", "external/emscripten/lib/clang/13.0.0/include",
            ],
        ),
        # Inputs and outputs
        flag_set(
            actions = [
                ACTION_NAMES.c_compile,
                ACTION_NAMES.cpp_compile,
                ACTION_NAMES.linkstamp_compile,
                ACTION_NAMES.assemble,
                ACTION_NAMES.preprocess_assemble,
                ACTION_NAMES.cpp_header_parsing,
                ACTION_NAMES.cpp_module_compile,
                ACTION_NAMES.cpp_module_codegen,
                ACTION_NAMES.clif_match,
            ],
            flag_groups = [
                flag_group(
                    flags = ["-MD", "-MF", "%{dependency_file}"],
                    expand_if_available = "dependency_file",
                ),
            ],
        ),
        flag_set(
            actions = [
                ACTION_NAMES.c_compile,
                ACTION_NAMES.cpp_compile,
                ACTION_NAMES.linkstamp_compile,
                ACTION_NAMES.assemble,
                ACTION_NAMES.preprocess_assemble,
                ACTION_NAMES.cpp_header_parsing,
                ACTION_NAMES.cpp_module_compile,
                ACTION_NAMES.cpp_module_codegen,
                ACTION_NAMES.clif_match,
            ],
            flag_groups = [
                flag_group(
                    flags = ["-c", "%{source_file}"],
                    expand_if_available = "source_file",
                ),
            ],
        ),
        flag_set(
            actions = [
                ACTION_NAMES.c_compile,
                ACTION_NAMES.cpp_compile,
                ACTION_NAMES.linkstamp_compile,
                ACTION_NAMES.assemble,
                ACTION_NAMES.preprocess_assemble,
                ACTION_NAMES.cpp_header_parsing,
                ACTION_NAMES.cpp_module_compile,
                ACTION_NAMES.cpp_module_codegen,
                ACTION_NAMES.clif_match,
            ],
            flag_groups = [
                flag_group(
                    flags = ["-S"],
                    expand_if_available = "output_assembly_file",
                ),
                flag_group(
                    flags = ["-E"],
                    expand_if_available = "output_preprocess_file",
                ),
                flag_group(
                    flags = ["-o", "%{output_file}"],
                    expand_if_available = "output_file",
                ),
            ],
        ),
        flag_set(
            actions = all_link_actions,
            flag_groups = [
                flag_group(
                    flags = ["-o", "%{output_execpath}"],
                    expand_if_available = "output_execpath",
                ),
            ],
        ),
        # And finally, the params file!
        flag_set(
            actions = all_link_actions,
            flag_groups = [
                flag_group(
                    flags = ["@%{linker_param_file}"],
                    expand_if_available = "linker_param_file",
                ),
            ],
        ),
        flag_set(
            actions = all_compile_actions,
            flags = [
                "-Wno-builtin-macro-redefined",
                # Genrules may not escape quotes enough for these, so
                # don't put them into $(CC_FLAGS):
                '-D__DATE__="redacted"',
                '-D__TIMESTAMP__="redacted"',
                '-D__TIME__="redacted"',
            ],
        ),
        flag_set(
            actions = all_compile_actions,
            flags = ["-Werror"],
            features = ["wasm_warnings_as_errors"],
        ),
    ]

    crosstool_default_env_sets = [
        # Use llvm backend.  Off by default, enabled via --features=llvm_backend
        env_set(
            actions = all_compile_actions +
                      all_link_actions +
                      [ACTION_NAMES.cpp_link_static_library],
            env_entries = [env_entry(key = "EMCC_WASM_BACKEND", value = "1")],
            with_features = [with_feature_set(features = ["llvm_backend"])],
        ),
        # Debug compile and link. Off by default, enabled via --features=emcc_debug
        env_set(
            actions = all_compile_actions,
            env_entries = [env_entry(key = "EMCC_DEBUG", value = "1")],
            with_features = [with_feature_set(features = ["emcc_debug"])],
        ),

        # Debug only link step. Off by default, enabled via --features=emcc_debug_link
        env_set(
            actions = all_link_actions,
            env_entries = [env_entry(key = "EMCC_DEBUG", value = "1")],
            with_features = [
                with_feature_set(features = ["emcc_debug"]),
                with_feature_set(features = ["emcc_debug_link"]),
            ],
        ),
    ]

    crosstool_default_flags_feature = feature(
        name = "crosstool_default_flags",
        enabled = True,
        flag_sets = crosstool_default_flag_sets,
        env_sets = crosstool_default_env_sets,
    )

    features.append(crosstool_default_flags_feature)

    cxx_builtin_include_directories = [
        "external/emscripten/emscripten/cache/sysroot/include/c++/v1",
        "external/emscripten/emscripten/cache/sysroot/include/compat",
        "external/emscripten/emscripten/cache/sysroot/include",
        "external/emscripten/lib/clang/13.0.0/include",
    ]

    artifact_name_patterns = []

    make_variables = []

    out = ctx.actions.declare_file(ctx.label.name)
    ctx.actions.write(out, "Fake executable")
    return [
        cc_common.create_cc_toolchain_config_info(
            ctx = ctx,
            features = features,
            action_configs = action_configs,
            artifact_name_patterns = artifact_name_patterns,
            cxx_builtin_include_directories = cxx_builtin_include_directories,
            toolchain_identifier = toolchain_identifier,
            host_system_name = host_system_name,
            target_system_name = target_system_name,
            target_cpu = target_cpu,
            target_libc = target_libc,
            compiler = compiler,
            abi_version = abi_version,
            abi_libc_version = abi_libc_version,
            tool_paths = tool_paths,
            make_variables = make_variables,
            builtin_sysroot = builtin_sysroot,
            cc_target_os = cc_target_os,
        ),
        DefaultInfo(
            executable = out,
        ),
    ]

emscripten_cc_toolchain_config_rule = rule(
    implementation = _impl,
    attrs = {
        "cpu": attr.string(mandatory = True, values = ["asmjs", "wasm"]),
        "emscripten_version": attr.string(mandatory = True),
    },
    provides = [CcToolchainConfigInfo],
    executable = True,
)
