| # Copyright 2018 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. |
| load("@bazel_skylib//:bzl_library.bzl", "bzl_library") |
| |
| package(default_visibility = ["//visibility:private"]) |
| |
| licenses(["notice"]) # Apache 2.0 |
| |
| bzl_library( |
| name = "bzl", |
| srcs = glob(["*.bzl"]), |
| visibility = ["//visibility:public"], |
| ) |
| |
| filegroup( |
| name = "package_contents", |
| srcs = glob(["*"]), |
| visibility = ["//:__pkg__"], |
| ) |
| |
| # node toolchain type |
| toolchain_type( |
| name = "toolchain_type", |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Allow targets to use a toolchains attribute, such as sh_binary and genrule |
| # This way they can reference the NODE_PATH make variable. |
| alias( |
| name = "toolchain", |
| actual = select({ |
| "@bazel_tools//src/conditions:darwin_arm64": "@nodejs_darwin_arm64_config//:toolchain", |
| "@bazel_tools//src/conditions:darwin_x86_64": "@nodejs_darwin_amd64_config//:toolchain", |
| "@bazel_tools//src/conditions:linux_aarch64": "@nodejs_linux_arm64_config//:toolchain", |
| "@bazel_tools//src/conditions:linux_s390x": "@nodejs_linux_s390x_config//:toolchain", |
| "@bazel_tools//src/conditions:linux_x86_64": "@nodejs_linux_amd64_config//:toolchain", |
| "@bazel_tools//src/conditions:windows": "@nodejs_windows_amd64_config//:toolchain", |
| "@bazel_tools//src/conditions:linux_ppc64le": "@nodejs_linux_ppc64le_config//:toolchain", |
| "//conditions:default": "@nodejs_linux_amd64_config//:toolchain", |
| }), |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Allow targets to declare a dependency on the node binary for the current host platform |
| alias( |
| name = "node_bin", |
| actual = select({ |
| "@bazel_tools//src/conditions:darwin_arm64": "@nodejs_darwin_arm64//:node_bin", |
| "@bazel_tools//src/conditions:darwin_x86_64": "@nodejs_darwin_amd64//:node_bin", |
| "@bazel_tools//src/conditions:linux_aarch64": "@nodejs_linux_arm64//:node_bin", |
| "@bazel_tools//src/conditions:linux_s390x": "@nodejs_linux_s390x//:node_bin", |
| "@bazel_tools//src/conditions:linux_x86_64": "@nodejs_linux_amd64//:node_bin", |
| "@bazel_tools//src/conditions:linux_ppc64le": "@nodejs_linux_ppc64le//:node_bin", |
| "@bazel_tools//src/conditions:windows": "@nodejs_windows_amd64//:node_bin", |
| "//conditions:default": "@nodejs_linux_amd64//:node_bin", |
| }), |
| visibility = ["//visibility:public"], |
| ) |
| |
| toolchain( |
| name = "node_linux_amd64_toolchain", |
| target_compatible_with = [ |
| "@platforms//os:linux", |
| "@platforms//cpu:x86_64", |
| ], |
| toolchain = "@nodejs_linux_amd64_config//:toolchain", |
| toolchain_type = ":toolchain_type", |
| ) |
| |
| toolchain( |
| name = "node_linux_arm64_toolchain", |
| target_compatible_with = [ |
| "@platforms//os:linux", |
| "@platforms//cpu:aarch64", |
| ], |
| toolchain = "@nodejs_linux_arm64_config//:toolchain", |
| toolchain_type = ":toolchain_type", |
| ) |
| |
| toolchain( |
| name = "node_darwin_amd64_toolchain", |
| target_compatible_with = [ |
| "@platforms//os:osx", |
| "@platforms//cpu:x86_64", |
| ], |
| toolchain = "@nodejs_darwin_amd64_config//:toolchain", |
| toolchain_type = ":toolchain_type", |
| ) |
| |
| toolchain( |
| name = "node_darwin_arm64_toolchain", |
| target_compatible_with = [ |
| "@platforms//os:osx", |
| "@platforms//cpu:aarch64", |
| ], |
| toolchain = "@nodejs_darwin_arm64_config//:toolchain", |
| toolchain_type = ":toolchain_type", |
| ) |
| |
| toolchain( |
| name = "node_windows_amd64_toolchain", |
| target_compatible_with = [ |
| "@platforms//os:windows", |
| "@platforms//cpu:x86_64", |
| ], |
| toolchain = "@nodejs_windows_amd64_config//:toolchain", |
| toolchain_type = ":toolchain_type", |
| ) |
| |
| toolchain( |
| name = "node_linux_s390x_toolchain", |
| target_compatible_with = [ |
| "@platforms//os:linux", |
| "@platforms//cpu:s390x", |
| ], |
| toolchain = "@nodejs_linux_s390x_config//:toolchain", |
| toolchain_type = ":toolchain_type", |
| ) |
| |
| toolchain( |
| name = "node_linux_ppc64le_toolchain", |
| target_compatible_with = [ |
| "@platforms//os:linux", |
| "@platforms//cpu:ppc", |
| ], |
| toolchain = "@nodejs_linux_ppc64le_config//:toolchain", |
| toolchain_type = ":toolchain_type", |
| ) |