diff --git a/cc/action_names.bzl b/cc/action_names.bzl index 7689a4c1a..fd04ac7ee 100644 --- a/cc/action_names.bzl +++ b/cc/action_names.bzl @@ -21,6 +21,9 @@ C_COMPILE_ACTION_NAME = "c-compile" # Name of the C++ compilation action. CPP_COMPILE_ACTION_NAME = "c++-compile" +# Name of the Cuda compilation action. +CUDA_COMPILE_ACTION_NAME = "cuda-compile" + # Name of the linkstamp-compile action. LINKSTAMP_COMPILE_ACTION_NAME = "linkstamp-compile" @@ -115,6 +118,7 @@ DWP = "dwp" ACTION_NAMES = struct( c_compile = C_COMPILE_ACTION_NAME, cpp_compile = CPP_COMPILE_ACTION_NAME, + cuda_compile = CUDA_COMPILE_ACTION_NAME, linkstamp_compile = LINKSTAMP_COMPILE_ACTION_NAME, cc_flags_make_variable = CC_FLAGS_MAKE_VARIABLE_ACTION_NAME, cpp_module_codegen = CPP_MODULE_CODEGEN_ACTION_NAME, @@ -152,6 +156,7 @@ ACTION_NAMES = struct( ALL_CPP_COMPILE_ACTION_NAMES = [ ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, diff --git a/cc/common/cc_helper.bzl b/cc/common/cc_helper.bzl index 0628196ba..b192add54 100644 --- a/cc/common/cc_helper.bzl +++ b/cc/common/cc_helper.bzl @@ -1032,6 +1032,7 @@ def _create_cc_instrumented_files_info(ctx, cc_config, cc_toolchain, metadata_fi source_extensions = extensions.CC_SOURCE + \ extensions.C_SOURCE + \ extensions.CC_HEADER + \ + extensions.CUDA_SOURCE + \ extensions.ASSEMBLER_WITH_C_PREPROCESSOR + \ extensions.ASSEMBLER coverage_environment = {} diff --git a/cc/common/cc_helper_internal.bzl b/cc/common/cc_helper_internal.bzl index 320954b4e..6dd1f75db 100644 --- a/cc/common/cc_helper_internal.bzl +++ b/cc/common/cc_helper_internal.bzl @@ -92,6 +92,7 @@ PRIVATE_STARLARKIFICATION_ALLOWLIST = [ _CC_SOURCE = [".cc", ".cpp", ".cxx", ".c++", ".C", ".cu", ".cl"] _C_SOURCE = [".c"] +_CUDA_SOURCE = [".cu"] _OBJC_SOURCE = [".m"] _OBJCPP_SOURCE = [".mm"] _CLIF_INPUT_PROTO = [".ipb"] @@ -115,6 +116,7 @@ _LTO_INDEXING_OBJECT_FILE = [".indexing.o"] _CC_AND_OBJC = [] _CC_AND_OBJC.extend(_CC_SOURCE) _CC_AND_OBJC.extend(_C_SOURCE) +_CC_AND_OBJC.extend(_CUDA_SOURCE) _CC_AND_OBJC.extend(_OBJC_SOURCE) _CC_AND_OBJC.extend(_OBJCPP_SOURCE) _CC_AND_OBJC.extend(_CC_HEADER) @@ -134,6 +136,7 @@ _DISALLOWED_HDRS_FILES.extend(_PIC_OBJECT_FILE) extensions = struct( CC_SOURCE = _CC_SOURCE, C_SOURCE = _C_SOURCE, + CUDA_SOURCE = _CUDA_SOURCE, OBJC_SOURCE = _OBJC_SOURCE, OBJCPP_SOURCE = _OBJCPP_SOURCE, CC_HEADER = _CC_HEADER, diff --git a/cc/private/compile/compile.bzl b/cc/private/compile/compile.bzl index 4a6cd2257..fe98f893b 100644 --- a/cc/private/compile/compile.bzl +++ b/cc/private/compile/compile.bzl @@ -72,6 +72,7 @@ SOURCE_CATEGORY_CC = set( extensions.CC_SOURCE + extensions.CC_HEADER + extensions.C_SOURCE + + extensions.CUDA_SOURCE + extensions.ASSEMBLER + extensions.ASSESMBLER_WITH_C_PREPROCESSOR + extensions.CLIF_INPUT_PROTO, @@ -81,6 +82,7 @@ SOURCE_CATEGORY_CC = set( SOURCE_CATEGORY_CC_AND_OBJC = set( extensions.CC_SOURCE + extensions.CC_HEADER + + extensions.CUDA_SOURCE + extensions.OBJC_SOURCE + extensions.OBJCPP_SOURCE + extensions.C_SOURCE + @@ -90,7 +92,7 @@ SOURCE_CATEGORY_CC_AND_OBJC = set( # LINT.ThenChange(https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java:cc_and_objc_file_types) # Filetypes that generate LLVM bitcode when -flto is specified. -LTO_SOURCE_EXTENSIONS = set(extensions.CC_SOURCE + extensions.C_SOURCE) +LTO_SOURCE_EXTENSIONS = set(extensions.CC_SOURCE + extensions.C_SOURCE + extensions.CUDA_SOURCE) # LINT.IfChange(compile_api) def compile( @@ -874,7 +876,7 @@ def _create_cc_compile_actions_with_cpp20_module_helper( modmap_input_file = None # Only C++ compilation unit will be compiled with C++20 Modules. - if "." + source_artifact.extension in extensions.CC_SOURCE: + if "." + source_artifact.extension in extensions.CC_SOURCE + extensions.CUDA_SOURCE: modmap_file = _get_compile_output_file( action_construction_context, label, @@ -1764,9 +1766,10 @@ def _create_temps_action( extension = filename[filename.find("."):] c_source = extension in extensions.C_SOURCE cpp_source = extension in extensions.CC_SOURCE + cuda_source = extension in extensions.CUDA_SOURCE objc_source = extension in extensions.OBJC_SOURCE objcpp_source = extension in extensions.OBJCPP_SOURCE - if not c_source and not cpp_source and not objc_source and not objcpp_source: + if not c_source and not cpp_source and not objc_source and not objcpp_source and not cuda_source: return [] category = artifact_category.PREPROCESSED_C_SOURCE if c_source else artifact_category.PREPROCESSED_CPP_SOURCE @@ -2155,7 +2158,7 @@ def _use_dotd_file(feature_configuration, source_file): header_discover_required = extension not in (extensions.ASSEMBLER + extensions.CPP_MODULE) use_header_modules = ( feature_configuration.is_enabled("use_header_modules") and - extension in extensions.CC_SOURCE + extensions.CC_HEADER + extensions.CPP_MODULE_MAP + extension in extensions.CC_SOURCE + extensions.CC_HEADER + extensions.CPP_MODULE_MAP + extensions.CUDA_SOURCE ) return header_discover_required and not use_header_modules diff --git a/cc/private/compile/compile_build_variables.bzl b/cc/private/compile/compile_build_variables.bzl index ce212212f..39cd34651 100644 --- a/cc/private/compile/compile_build_variables.bzl +++ b/cc/private/compile/compile_build_variables.bzl @@ -370,6 +370,7 @@ def get_specific_compile_build_variables( _SOURCE_TYPES_FOR_CXXOPTS = set( extensions.CC_SOURCE + extensions.CC_HEADER + + extensions.CUDA_SOURCE + extensions.CLIF_INPUT_PROTO + extensions.CPP_MODULE_MAP + extensions.OBJCPP_SOURCE, diff --git a/cc/private/rules_impl/cc_binary_impl.bzl b/cc/private/rules_impl/cc_binary_impl.bzl index 72b02ddb2..2971bf0b2 100644 --- a/cc/private/rules_impl/cc_binary_impl.bzl +++ b/cc/private/rules_impl/cc_binary_impl.bzl @@ -828,6 +828,7 @@ ALLOWED_SRC_FILES = [] ALLOWED_SRC_FILES.extend(cc_helper.extensions.CC_SOURCE) ALLOWED_SRC_FILES.extend(cc_helper.extensions.C_SOURCE) ALLOWED_SRC_FILES.extend(cc_helper.extensions.CC_HEADER) +ALLOWED_SRC_FILES.extend(cc_helper.extensions.CUDA_SOURCE) ALLOWED_SRC_FILES.extend(cc_helper.extensions.ASSEMBLER_WITH_C_PREPROCESSOR) ALLOWED_SRC_FILES.extend(cc_helper.extensions.ASSEMBLER) ALLOWED_SRC_FILES.extend(cc_helper.extensions.ARCHIVE) diff --git a/cc/private/rules_impl/cc_library_impl.bzl b/cc/private/rules_impl/cc_library_impl.bzl index dabef7660..dabd1e4b2 100755 --- a/cc/private/rules_impl/cc_library_impl.bzl +++ b/cc/private/rules_impl/cc_library_impl.bzl @@ -535,6 +535,7 @@ ALLOWED_SRC_FILES = [] ALLOWED_SRC_FILES.extend(cc_helper.extensions.CC_SOURCE) ALLOWED_SRC_FILES.extend(cc_helper.extensions.C_SOURCE) ALLOWED_SRC_FILES.extend(cc_helper.extensions.CC_HEADER) +ALLOWED_SRC_FILES.extend(cc_helper.extensions.CUDA_SOURCE) ALLOWED_SRC_FILES.extend(cc_helper.extensions.ASSEMBLER_WITH_C_PREPROCESSOR) ALLOWED_SRC_FILES.extend(cc_helper.extensions.ASSEMBLER) ALLOWED_SRC_FILES.extend(cc_helper.extensions.ARCHIVE) @@ -546,6 +547,7 @@ ALLOWED_SRC_FILES.extend(cc_helper.extensions.SHARED_LIBRARY) SRCS_FOR_COMPILATION = [] SRCS_FOR_COMPILATION.extend(cc_helper.extensions.CC_SOURCE) SRCS_FOR_COMPILATION.extend(cc_helper.extensions.C_SOURCE) +SRCS_FOR_COMPILATION.extend(cc_helper.extensions.CUDA_SOURCE) SRCS_FOR_COMPILATION.extend(cc_helper.extensions.ASSEMBLER_WITH_C_PREPROCESSOR) SRCS_FOR_COMPILATION.extend(cc_helper.extensions.ASSEMBLER) diff --git a/cc/private/toolchain/bsd_cc_toolchain_config.bzl b/cc/private/toolchain/bsd_cc_toolchain_config.bzl index 83b9313f0..25fd3aa19 100644 --- a/cc/private/toolchain/bsd_cc_toolchain_config.bzl +++ b/cc/private/toolchain/bsd_cc_toolchain_config.bzl @@ -30,6 +30,7 @@ load("@rules_cc//cc/toolchains:cc_toolchain_config_info.bzl", "CcToolchainConfig all_compile_actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.assemble, ACTION_NAMES.preprocess_assemble, @@ -42,6 +43,7 @@ all_compile_actions = [ all_cpp_compile_actions = [ ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, @@ -208,6 +210,7 @@ def _impl(ctx): actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.preprocess_assemble, ACTION_NAMES.cpp_header_parsing, diff --git a/cc/private/toolchain/unix_cc_toolchain_config.bzl b/cc/private/toolchain/unix_cc_toolchain_config.bzl index 5bc205e3d..ef27c2fe1 100644 --- a/cc/private/toolchain/unix_cc_toolchain_config.bzl +++ b/cc/private/toolchain/unix_cc_toolchain_config.bzl @@ -51,6 +51,7 @@ def layering_check_features(compiler, extra_flags_per_feature, is_macos): actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ], @@ -81,6 +82,7 @@ def layering_check_features(compiler, extra_flags_per_feature, is_macos): actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ], @@ -154,6 +156,7 @@ def parse_headers_support(parse_headers_tool_path): all_compile_actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.assemble, ACTION_NAMES.preprocess_assemble, @@ -169,6 +172,7 @@ all_compile_actions = [ all_cpp_compile_actions = [ ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, @@ -182,6 +186,7 @@ all_cpp_compile_actions = [ preprocessor_compile_actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.preprocess_assemble, ACTION_NAMES.cpp_header_parsing, @@ -194,6 +199,7 @@ preprocessor_compile_actions = [ codegen_compile_actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.assemble, ACTION_NAMES.preprocess_assemble, @@ -503,6 +509,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -533,6 +540,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_deps_scanning, @@ -574,6 +582,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -620,7 +629,7 @@ def _impl(ctx): name = "fdo_optimize", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [ flag_group( flags = [ @@ -714,6 +723,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp20_module_compile, @@ -736,6 +746,7 @@ def _impl(ctx): ACTION_NAMES.preprocess_assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp20_module_codegen, ], @@ -759,6 +770,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_deps_scanning, @@ -800,7 +812,7 @@ def _impl(ctx): name = "autofdo", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [ flag_group( flags = [ @@ -981,6 +993,7 @@ def _impl(ctx): actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_deps_scanning, @@ -1007,6 +1020,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_deps_scanning, @@ -1033,6 +1047,7 @@ def _impl(ctx): actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ] + all_link_actions + lto_index_actions, flag_groups = [ flag_group( @@ -1055,6 +1070,7 @@ def _impl(ctx): actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.lto_backend, ] + all_link_actions + lto_index_actions, flag_groups = [ @@ -1080,6 +1096,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_deps_scanning, @@ -1115,6 +1132,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_deps_scanning, @@ -1332,6 +1350,7 @@ def _impl(ctx): actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.lto_backend, ], flag_groups = [ @@ -1483,6 +1502,7 @@ def _impl(ctx): ACTION_NAMES.preprocess_assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.objc_compile, ACTION_NAMES.objcpp_compile, @@ -1510,6 +1530,7 @@ def _impl(ctx): ACTION_NAMES.preprocess_assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.objc_compile, ACTION_NAMES.objcpp_compile, @@ -1598,6 +1619,7 @@ def _impl(ctx): ACTION_NAMES.preprocess_assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ], @@ -1629,6 +1651,7 @@ def _impl(ctx): actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ] + all_link_actions + lto_index_actions, flag_groups = [ flag_group(flags = ["-flto=thin"]), @@ -1689,7 +1712,7 @@ def _impl(ctx): name = "treat_warnings_as_errors", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["-Werror"])], ), flag_set( @@ -1783,6 +1806,7 @@ def _impl(ctx): flag_set( actions = [ ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp20_module_compile, ACTION_NAMES.cpp20_module_codegen, ], diff --git a/cc/private/toolchain/windows_cc_toolchain_config.bzl b/cc/private/toolchain/windows_cc_toolchain_config.bzl index 125905ee1..ebe6f89d9 100644 --- a/cc/private/toolchain/windows_cc_toolchain_config.bzl +++ b/cc/private/toolchain/windows_cc_toolchain_config.bzl @@ -37,6 +37,7 @@ load("@rules_cc//cc/toolchains:feature_injection.bzl", "FeatureInfo", "convert_f all_compile_actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.assemble, ACTION_NAMES.preprocess_assemble, @@ -52,6 +53,7 @@ all_compile_actions = [ all_cpp_compile_actions = [ ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, @@ -65,6 +67,7 @@ all_cpp_compile_actions = [ preprocessor_compile_actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.preprocess_assemble, ACTION_NAMES.cpp_header_parsing, @@ -77,6 +80,7 @@ preprocessor_compile_actions = [ codegen_compile_actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.assemble, ACTION_NAMES.preprocess_assemble, @@ -242,6 +246,19 @@ def _impl(ctx): tools = [tool(path = ctx.attr.msvc_cl_path)], ) + cuda_compile_action = action_config( + action_name = ACTION_NAMES.cuda_compile, + implies = [ + "compiler_input_flags", + "compiler_output_flags", + "nologo", + "msvc_env", + "user_compile_flags", + "sysroot", + ], + tools = [tool(path = ctx.attr.msvc_cl_path)], + ) + cpp_link_executable_action = action_config( action_name = ACTION_NAMES.cpp_link_executable, implies = [ @@ -348,6 +365,7 @@ def _impl(ctx): c_compile_action, linkstamp_compile_action, cpp_compile_action, + cuda_compile_action, cpp_link_executable_action, cpp_link_dynamic_library_action, cpp_link_nodeps_dynamic_library_action, @@ -389,7 +407,11 @@ def _impl(ctx): enabled = True, flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group( flags = [ @@ -414,6 +436,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -445,6 +468,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -549,7 +573,11 @@ def _impl(ctx): name = "fastbuild", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [flag_group(flags = ["/Od", "/Z7"])], ), flag_set( @@ -579,6 +607,7 @@ def _impl(ctx): actions = [ ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -597,6 +626,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -660,12 +690,12 @@ def _impl(ctx): name = "static_link_msvcrt", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["/MT"])], with_features = [with_feature_set(not_features = ["dbg"])], ), flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["/MTd"])], with_features = [with_feature_set(features = ["dbg"])], ), @@ -687,12 +717,12 @@ def _impl(ctx): enabled = True, flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["/MD"])], with_features = [with_feature_set(not_features = ["dbg", "static_link_msvcrt"])], ), flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["/MDd"])], with_features = [with_feature_set(features = ["dbg"], not_features = ["static_link_msvcrt"])], ), @@ -713,7 +743,7 @@ def _impl(ctx): name = "dbg", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["/Od", "/Z7"])], ), flag_set( @@ -732,7 +762,7 @@ def _impl(ctx): name = "opt", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["/O2"])], ), ], @@ -809,6 +839,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -835,6 +866,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_header_parsing, @@ -860,6 +892,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_deps_scanning, @@ -918,7 +951,7 @@ def _impl(ctx): enabled = True, flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["/DNDEBUG"])], with_features = [with_feature_set(features = ["opt"])], ), @@ -970,6 +1003,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_deps_scanning, @@ -985,6 +1019,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_header_parsing, ], @@ -1010,7 +1045,7 @@ def _impl(ctx): name = "treat_warnings_as_errors", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile] + all_link_actions, + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile] + all_link_actions, flag_groups = [flag_group(flags = ["/WX"])], ), ], @@ -1031,6 +1066,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ], @@ -1061,6 +1097,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_deps_scanning, @@ -1116,7 +1153,7 @@ def _impl(ctx): name = "frame_pointer", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["/Oy-"])], ), ], @@ -1146,6 +1183,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -1195,6 +1233,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_header_parsing, @@ -1218,7 +1257,7 @@ def _impl(ctx): enabled = True, flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["/Gy", "/Gw"])], with_features = [with_feature_set(features = ["opt"])], ), @@ -1235,7 +1274,7 @@ def _impl(ctx): enabled = True, flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["/Zc:inline"])], ), ], @@ -1251,6 +1290,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -1291,6 +1331,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_header_parsing, @@ -1397,6 +1438,7 @@ def _impl(ctx): ACTION_NAMES.c_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_header_parsing, @@ -1425,6 +1467,7 @@ def _impl(ctx): actions = [ ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -1459,7 +1502,7 @@ def _impl(ctx): name = "dbg", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["-g", "-Og"])], ), ], @@ -1469,7 +1512,7 @@ def _impl(ctx): name = "opt", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = [ "-g0", "-O3", @@ -1523,6 +1566,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -1549,7 +1593,7 @@ def _impl(ctx): name = "fdo_optimize", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [ flag_group( flags = [ @@ -1567,7 +1611,7 @@ def _impl(ctx): name = "treat_warnings_as_errors", flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [flag_group(flags = ["-Werror"])], ), flag_set( @@ -1593,6 +1637,7 @@ def _impl(ctx): actions = [ ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -1612,6 +1657,7 @@ def _impl(ctx): ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -1679,6 +1725,7 @@ def _impl(ctx): flag_set( actions = [ ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp20_module_compile, ACTION_NAMES.cpp20_module_codegen, ], diff --git a/cc/private/toolchain_config/configure_features.bzl b/cc/private/toolchain_config/configure_features.bzl index 06544e9c6..e75450982 100644 --- a/cc/private/toolchain_config/configure_features.bzl +++ b/cc/private/toolchain_config/configure_features.bzl @@ -19,6 +19,7 @@ load("//cc/common:semantics.bzl", cc_semantics = "semantics") ALL_COMPILE_ACTIONS = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, diff --git a/cc/private/toolchain_config/legacy_features.bzl b/cc/private/toolchain_config/legacy_features.bzl index c68e82774..c69840a97 100644 --- a/cc/private/toolchain_config/legacy_features.bzl +++ b/cc/private/toolchain_config/legacy_features.bzl @@ -54,6 +54,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) ACTION_NAMES.assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_compile, @@ -90,6 +91,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) ACTION_NAMES.assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.clif_match, @@ -118,6 +120,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_compile, ], @@ -137,6 +140,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) ACTION_NAMES.assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.linkstamp_compile, @@ -157,6 +161,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) ACTION_NAMES.assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.preprocess_assemble, ], @@ -175,6 +180,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.clif_match, @@ -196,6 +202,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.clif_match, @@ -220,6 +227,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.clif_match, @@ -257,6 +265,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_link_dynamic_library, ACTION_NAMES.cpp_link_executable, ACTION_NAMES.cpp_link_nodeps_dynamic_library, @@ -281,6 +290,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ], flag_groups = [flag_group( expand_if_available = "fdo_profile_path", @@ -301,6 +311,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_link_dynamic_library, ACTION_NAMES.cpp_link_executable, ACTION_NAMES.cpp_link_nodeps_dynamic_library, @@ -340,6 +351,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.lto_backend, ], flag_groups = [flag_group( @@ -360,6 +372,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ], flag_groups = [flag_group( expand_if_available = "fdo_profile_path", @@ -383,6 +396,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.lto_backend, ], flag_groups = [flag_group( @@ -981,6 +995,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.objc_compile, ACTION_NAMES.objcpp_compile, @@ -1015,6 +1030,7 @@ def get_legacy_features(ctx, platform, existing_feature_names, linker_tool_path) actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.objc_compile, ACTION_NAMES.objc_executable, @@ -1083,6 +1099,7 @@ def get_features_to_appear_last(existing_feature_names): ACTION_NAMES.assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_compile, @@ -1107,6 +1124,7 @@ def get_features_to_appear_last(existing_feature_names): actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_link_dynamic_library, ACTION_NAMES.cpp_link_executable, @@ -1139,6 +1157,7 @@ def get_features_to_appear_last(existing_feature_names): ACTION_NAMES.assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_compile, @@ -1194,6 +1213,7 @@ def get_features_to_appear_last(existing_feature_names): ACTION_NAMES.assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_compile, @@ -1219,6 +1239,7 @@ def get_features_to_appear_last(existing_feature_names): ACTION_NAMES.assemble, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_compile, @@ -1281,6 +1302,7 @@ def get_legacy_action_configs( "c++-header-parsing", "c++-module-compile", "c++-module-codegen", + "cuda-compile", ]: if action_name not in existing_action_config_names: result.append(action_config( diff --git a/cc/toolchains/actions/BUILD b/cc/toolchains/actions/BUILD index b231568c6..663785690 100644 --- a/cc/toolchains/actions/BUILD +++ b/cc/toolchains/actions/BUILD @@ -28,6 +28,11 @@ cc_action_type( action_name = ACTION_NAMES.cpp_compile, ) +cc_action_type( + name = "cuda_compile", + action_name = ACTION_NAMES.cuda_compile, +) + cc_action_type( name = "linkstamp_compile", action_name = ACTION_NAMES.linkstamp_compile, @@ -224,6 +229,7 @@ cc_action_type_set( actions = [ ":linkstamp_compile", ":cpp_compile", + ":cuda_compile", ":cpp_header_parsing", ":cpp_module_compile", ":cpp_module_codegen", @@ -240,6 +246,7 @@ cc_action_type_set( actions = [ ":linkstamp_compile", ":cpp_compile", + ":cuda_compile", ":cpp_header_parsing", ":cpp_module_compile", ":cpp_module_codegen", @@ -312,6 +319,7 @@ cc_action_type_set( actions = [ ":c_compile", ":cpp_compile", + ":cuda_compile", ":linkstamp_compile", ":cc_flags_make_variable", ":cpp_module_codegen", diff --git a/cc/toolchains/args/thin_lto/BUILD.bazel b/cc/toolchains/args/thin_lto/BUILD.bazel index b03b6b777..a6f15ac90 100644 --- a/cc/toolchains/args/thin_lto/BUILD.bazel +++ b/cc/toolchains/args/thin_lto/BUILD.bazel @@ -17,6 +17,7 @@ cc_args( ":lto_index_actions", "@rules_cc//cc/toolchains/actions:c_compile", "@rules_cc//cc/toolchains/actions:cpp_compile", + "@rules_cc//cc/toolchains/actions:cuda_compile", "@rules_cc//cc/toolchains/actions:link_actions", ], args = [ diff --git a/cc/toolchains/toolchain.bzl b/cc/toolchains/toolchain.bzl index fa41163ab..79872cb92 100644 --- a/cc/toolchains/toolchain.bzl +++ b/cc/toolchains/toolchain.bzl @@ -37,6 +37,7 @@ _LEGACY_FILE_GROUPS = { Label("//cc/toolchains/actions:c_compile"), Label("//cc/toolchains/actions:cpp_compile"), Label("//cc/toolchains/actions:cpp_header_parsing"), + Label("//cc/toolchains/actions:cuda_compile"), ], # There are no actions listed for coverage and objcopy in action_names.bzl. "coverage_files": [], diff --git a/tests/cc/common/cc_binary_configured_target_tests.bzl b/tests/cc/common/cc_binary_configured_target_tests.bzl index 4ea9b4dad..f06ab77be 100644 --- a/tests/cc/common/cc_binary_configured_target_tests.bzl +++ b/tests/cc/common/cc_binary_configured_target_tests.bzl @@ -288,6 +288,7 @@ def _test_missing_action_config_for_strip_is_a_rule_error(name, **kwargs): test_features = [FEATURE_NAMES.no_legacy_features, FEATURE_NAMES.pic], with_action_configs = [ ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_link_static_library, ACTION_NAMES.cpp_link_executable, ], diff --git a/tests/cc/testutil/toolchains/cc_toolchain_config.bzl b/tests/cc/testutil/toolchains/cc_toolchain_config.bzl index 90c0eef90..fbc823a01 100644 --- a/tests/cc/testutil/toolchains/cc_toolchain_config.bzl +++ b/tests/cc/testutil/toolchains/cc_toolchain_config.bzl @@ -58,6 +58,7 @@ _define_with_space = feature( flag_set( actions = [ ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, @@ -81,6 +82,7 @@ _pic_feature = feature( ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.cpp_module_compile, ], @@ -115,6 +117,7 @@ _layering_check_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ], @@ -134,7 +137,10 @@ _simple_layering_check_feature = feature( name = FEATURE_NAMES.layering_check, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [flag_group(flags = [""])], ), ], @@ -194,6 +200,7 @@ _module_maps_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ], @@ -216,6 +223,7 @@ _use_header_modules_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ], @@ -245,6 +253,7 @@ _module_map_home_cwd_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_header_parsing, @@ -271,6 +280,7 @@ _static_env_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.lto_backend, @@ -293,6 +303,7 @@ _module_maps_env_var_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ], @@ -313,6 +324,7 @@ _simple_module_maps_feature = feature( flag_set( actions = [ ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ], flag_groups = [ flag_group( @@ -338,7 +350,11 @@ _host_feature = feature( name = FEATURE_NAMES.host, flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [flag_group(flags = ["-host"])], ), ], @@ -348,7 +364,11 @@ _nonhost_feature = feature( name = FEATURE_NAMES.nonhost, flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [flag_group(flags = ["-nonhost"])], ), ], @@ -370,6 +390,7 @@ _user_compile_flags_feature = feature( ACTION_NAMES.linkstamp_compile, ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, @@ -412,7 +433,11 @@ _thin_lto_feature = feature( ], ), flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group(flags = ["-flto=thin"]), flag_group( @@ -473,7 +498,10 @@ _simple_thin_lto_feature = feature( name = FEATURE_NAMES.thin_lto, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group( flags = [""], @@ -523,6 +551,7 @@ _memprof_optimize_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_codegen, ], flag_groups = [ @@ -564,6 +593,7 @@ _split_functions_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.lto_backend, ], @@ -603,6 +633,7 @@ _fsafdo_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_module_codegen, ACTION_NAMES.lto_backend, ], @@ -654,6 +685,7 @@ _autofdo_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.lto_backend, ], flag_groups = [ @@ -679,6 +711,7 @@ _xbinaryfdo_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.lto_backend, ], flag_groups = [ @@ -701,7 +734,11 @@ _fdo_optimize_feature = feature( name = FEATURE_NAMES.fdo_optimize, flag_sets = [ flag_set( - actions = [ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.c_compile, + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group( flags = [ @@ -726,6 +763,7 @@ _fdo_instrument_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_link_dynamic_library, ACTION_NAMES.cpp_link_nodeps_dynamic_library, ACTION_NAMES.cpp_link_executable, @@ -748,6 +786,7 @@ _per_object_debug_info_feature = feature( actions = [ ACTION_NAMES.c_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.assemble, ACTION_NAMES.preprocess_assemble, ACTION_NAMES.cpp_module_codegen, @@ -812,7 +851,10 @@ _simple_compile_feature = feature( name = FEATURE_NAMES.simple_compile_feature, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group(flags = [""]), ], @@ -911,7 +953,10 @@ _dbg_compilation_feature = feature( name = FEATURE_NAMES.dbg, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group(flags = ["-dbg"]), ], @@ -923,7 +968,10 @@ _fastbuild_compilation_feature = feature( name = FEATURE_NAMES.fastbuild, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group(flags = ["-fastbuild"]), ], @@ -935,7 +983,7 @@ _opt_compilation_feature = feature( name = FEATURE_NAMES.opt, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ACTION_NAMES.cpp_compile, ACTION_NAMES.cuda_compile], flag_groups = [ flag_group(flags = ["-opt"]), ], @@ -980,7 +1028,10 @@ _min_os_version_flag_feature = feature( name = FEATURE_NAMES.min_os_version_flag, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group( expand_if_available = "min_os_version_flag", @@ -996,7 +1047,10 @@ _include_directories_feature = feature( enabled = True, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group( flags = [ @@ -1016,7 +1070,10 @@ _external_include_paths_feature = feature( name = FEATURE_NAMES.external_include_paths, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group( flags = [ @@ -1045,7 +1102,10 @@ _absolute_path_directories_feature = feature( enabled = True, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group( flags = [ @@ -1101,7 +1161,10 @@ _check_additional_variables_feature = feature( name = FEATURE_NAMES.check_additional_variables, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group( expand_if_available = "string_variable", @@ -1239,7 +1302,10 @@ _layering_check_module_maps_header_modules_simple_features = [ name = FEATURE_NAMES.module_maps, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group(flags = [""]), ], @@ -1250,7 +1316,10 @@ _layering_check_module_maps_header_modules_simple_features = [ name = FEATURE_NAMES.layering_check, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group(flags = [""]), ], @@ -1261,7 +1330,10 @@ _layering_check_module_maps_header_modules_simple_features = [ name = FEATURE_NAMES.header_modules, flag_sets = [ flag_set( - actions = [ACTION_NAMES.cpp_compile], + actions = [ + ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, + ], flag_groups = [ flag_group(flags = [""]), ], @@ -1473,6 +1545,7 @@ def _impl(ctx): actions = [ ACTION_NAMES.linkstamp_compile, ACTION_NAMES.cpp_compile, + ACTION_NAMES.cuda_compile, ACTION_NAMES.cpp_header_parsing, ACTION_NAMES.cpp_module_compile, ACTION_NAMES.cpp_module_codegen, diff --git a/tests/rule_based_toolchain/args/args_test.bzl b/tests/rule_based_toolchain/args/args_test.bzl index 2adc82b0b..be67dc55e 100644 --- a/tests/rule_based_toolchain/args/args_test.bzl +++ b/tests/rule_based_toolchain/args/args_test.bzl @@ -134,6 +134,7 @@ def _env_only_requires_test(env, targets): "c++-module-compile", "c-compile", "clif-match", + "cuda-compile", "linkstamp-compile", "lto-backend", "objc++-compile", @@ -310,6 +311,7 @@ def _good_env_format_test(env, targets): "c++-module-compile", "c-compile", "clif-match", + "cuda-compile", "linkstamp-compile", "lto-backend", "objc++-compile", @@ -340,6 +342,7 @@ def _good_env_format_optional_test(env, targets): "c++-module-compile", "c-compile", "clif-match", + "cuda-compile", "linkstamp-compile", "lto-backend", "objc++-compile",