diff --git cc/private/toolchain/unix_cc_configure.bzl cc/private/toolchain/unix_cc_configure.bzl index ba992fc..e4e8364 100644 --- cc/private/toolchain/unix_cc_configure.bzl +++ cc/private/toolchain/unix_cc_configure.bzl @@ -27,6 +27,7 @@ load( "which", "write_builtin_include_directory_paths", ) +load("@rules_cuda//cuda:toolchain.bzl", "cuda_compiler_deps") def _field(name, value): """Returns properly indented top level crosstool field.""" @@ -397,7 +398,7 @@ def configure_unix_toolchain(repository_ctx, cpu_value, overriden_tools): cxx_opts = split_escaped(get_env_var( repository_ctx, "BAZEL_CXXOPTS", - "-std=c++0x", + "-std=c++11", False, ), ":") @@ -463,7 +464,7 @@ def configure_unix_toolchain(repository_ctx, cpu_value, overriden_tools): )), "%{cc_compiler_deps}": get_starlark_list([":builtin_include_directory_paths"] + ( [":cc_wrapper"] if darwin else [] - )), + ) + cuda_compiler_deps()), "%{cc_toolchain_identifier}": cc_toolchain_identifier, "%{compile_flags}": get_starlark_list( [ diff --git cc/private/toolchain/unix_cc_toolchain_config.bzl cc/private/toolchain/unix_cc_toolchain_config.bzl index c3cf3ba..1744eb4 100644 --- cc/private/toolchain/unix_cc_toolchain_config.bzl +++ cc/private/toolchain/unix_cc_toolchain_config.bzl @@ -25,6 +25,7 @@ load( "variable_with_value", "with_feature_set", ) +load("@rules_cuda//cuda:toolchain.bzl", "cuda_toolchain_config") all_compile_actions = [ ACTION_NAMES.c_compile, @@ -580,7 +581,8 @@ def _impl(ctx): ], flag_groups = [ flag_group( - flags = ["-iquote", "%{quote_include_paths}"], + # -isystem because there is an nvcc thing where it doesn't forward -iquote to host compiler. + flags = ["-isystem", "%{quote_include_paths}"], iterate_over = "quote_include_paths", ), flag_group( @@ -1152,10 +1154,15 @@ def _impl(ctx): unfiltered_compile_flags_feature, ] + cuda = cuda_toolchain_config( + cuda_toolchain_info = ctx.attr._cuda_toolchain_info, + compiler_path = ctx.attr.tool_paths["gcc"], + ) + return cc_common.create_cc_toolchain_config_info( ctx = ctx, - features = features, - action_configs = action_configs, + features = features + cuda.features, + action_configs = action_configs + cuda.action_configs, cxx_builtin_include_directories = ctx.attr.cxx_builtin_include_directories, toolchain_identifier = ctx.attr.toolchain_identifier, host_system_name = ctx.attr.host_system_name, @@ -1192,6 +1199,9 @@ cc_toolchain_config = rule( "tool_paths": attr.string_dict(), "toolchain_identifier": attr.string(mandatory = True), "unfiltered_compile_flags": attr.string_list(), + "_cuda_toolchain_info": attr.label( + default = Label("@rules_cuda//cuda:cuda_toolchain_info"), + ), }, provides = [CcToolchainConfigInfo], )