diff --git a/.bazelrc b/.bazelrc index d6580be5..6362e03c 100644 --- a/.bazelrc +++ b/.bazelrc @@ -13,3 +13,5 @@ build:clang --//cuda:compiler=clang # https://github.com/cloudhan/rules_cuda/issues/1 build --ui_event_filters=-INFO + +common:bzlmod --enable_bzlmod diff --git a/.github/workflows/build-tests.yaml b/.github/workflows/build-tests.yaml index 1092bc9b..993b46aa 100644 --- a/.github/workflows/build-tests.yaml +++ b/.github/workflows/build-tests.yaml @@ -67,4 +67,9 @@ jobs: - run: bazelisk build @rules_cuda_examples//if_cuda:main - run: bazelisk build @rules_cuda_examples//if_cuda:main --enable_cuda=False + - run: bazelisk build @rules_cuda_examples//basic:main --config=bzlmod + - run: bazelisk build @rules_cuda_examples//rdc:main --config=bzlmod + - run: bazelisk build @rules_cuda_examples//if_cuda:main --config=bzlmod + - run: bazelisk build @rules_cuda_examples//if_cuda:main --enable_cuda=False --config=bzlmod + - run: bazelisk shutdown diff --git a/MODULE.bazel b/MODULE.bazel new file mode 100644 index 00000000..eae6e6fb --- /dev/null +++ b/MODULE.bazel @@ -0,0 +1,17 @@ +module( + name = "rules_cuda", + compatibility_level = 1, + version = "0.1.1", +) + +bazel_dep(name = "bazel_skylib", version = "1.2.1") +bazel_dep(name = "platforms", version = "0.0.4") + +toolchain = use_extension("@rules_cuda//cuda:extensions.bzl", "local_toolchain") +use_repo(toolchain, "local_cuda") + +register_toolchains( + "@local_cuda//toolchain:nvcc-local-toolchain", + "@local_cuda//toolchain/clang:clang-local-toolchain", +) + diff --git a/WORKSPACE b/WORKSPACE.bazel similarity index 100% rename from WORKSPACE rename to WORKSPACE.bazel diff --git a/WORKSPACE.bzlmod b/WORKSPACE.bzlmod new file mode 100644 index 00000000..a277358a --- /dev/null +++ b/WORKSPACE.bzlmod @@ -0,0 +1,4 @@ +local_repository( + name = "rules_cuda_examples", + path = "examples", +) diff --git a/cuda/extensions.bzl b/cuda/extensions.bzl new file mode 100644 index 00000000..649662e5 --- /dev/null +++ b/cuda/extensions.bzl @@ -0,0 +1,8 @@ +"""Entry point for extensions used by bzlmod.""" + +load("//cuda/private:repositories.bzl", "local_cuda") + +def _init(module_ctx): + local_cuda(name = "local_cuda") + +local_toolchain = module_extension(implementation = _init) diff --git a/cuda/private/repositories.bzl b/cuda/private/repositories.bzl index c93a6744..804a69db 100644 --- a/cuda/private/repositories.bzl +++ b/cuda/private/repositories.bzl @@ -182,7 +182,7 @@ def _local_cuda_impl(repository_ctx): clang_path = detect_clang(repository_ctx) config_clang(repository_ctx, cuda, clang_path) -_local_cuda = repository_rule( +local_cuda = repository_rule( implementation = _local_cuda_impl, configure = True, local = True, @@ -212,4 +212,4 @@ def rules_cuda_dependencies(): ], ) - _local_cuda(name = "local_cuda") + local_cuda(name = "local_cuda") diff --git a/examples/.bazelrc b/examples/.bazelrc index e4c7cd20..6d5c25fa 100644 --- a/examples/.bazelrc +++ b/examples/.bazelrc @@ -13,3 +13,5 @@ build:clang --//cuda:compiler=clang # https://github.com/cloudhan/rules_cuda/issues/1 build --ui_event_filters=-INFO + +common:bzlmod --enable_bzlmod diff --git a/examples/MODULE.bazel b/examples/MODULE.bazel new file mode 100644 index 00000000..eda468f1 --- /dev/null +++ b/examples/MODULE.bazel @@ -0,0 +1,12 @@ +module( + name = "rules_cuda_examples", + compatibility_level = 1, + version = "0.0.0", +) + +bazel_dep(name = "rules_cuda", version = "0.1.1") + +cuda_toolchain = use_extension("@rules_cuda//cuda:extensions.bzl", "local_toolchain") +use_repo(cuda_toolchain, "local_cuda") + +local_path_override(module_name = "rules_cuda", path = "..") diff --git a/examples/WORKSPACE.bzlmod b/examples/WORKSPACE.bzlmod new file mode 100644 index 00000000..e69de29b