mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
444b4652a9
See associated pull request for more information.
166 lines
7.0 KiB
Python
166 lines
7.0 KiB
Python
"""Rules/toolchains for angular with Bazel."""
|
|
|
|
module(
|
|
name = "angular",
|
|
)
|
|
|
|
bazel_dep(name = "rules_pkg", version = "1.3.0")
|
|
bazel_dep(name = "rules_nodejs", version = "6.7.5")
|
|
bazel_dep(name = "aspect_rules_ts", version = "3.10.1")
|
|
bazel_dep(name = "aspect_rules_js", version = "3.4.1")
|
|
bazel_dep(name = "aspect_rules_esbuild", version = "0.27.0")
|
|
bazel_dep(name = "aspect_rules_jasmine", version = "2.0.4")
|
|
bazel_dep(name = "aspect_rules_rollup", version = "2.0.1")
|
|
bazel_dep(name = "bazel_skylib", version = "1.9.2")
|
|
bazel_dep(name = "bazel_lib", version = "3.7.1")
|
|
bazel_dep(name = "tar.bzl", version = "0.10.8")
|
|
bazel_dep(name = "yq.bzl", version = "0.3.6")
|
|
bazel_dep(name = "rules_angular")
|
|
git_override(
|
|
module_name = "rules_angular",
|
|
commit = "0b3df623e1935b929f43a0981408a5cdc4fea953",
|
|
remote = "https://github.com/angular/rules_angular.git",
|
|
)
|
|
|
|
bazel_dep(name = "devinfra")
|
|
git_override(
|
|
module_name = "devinfra",
|
|
commit = "6a54b1f6636c00be7b9c3fa5928da87df48ff9a0",
|
|
remote = "https://github.com/angular/dev-infra.git",
|
|
)
|
|
|
|
bazel_dep(name = "rules_sass")
|
|
git_override(
|
|
module_name = "rules_sass",
|
|
commit = "afe73f90daf40ef218796aafbd7a0e05f1e61984",
|
|
remote = "https://github.com/angular/rules_sass.git",
|
|
)
|
|
|
|
bazel_dep(name = "rules_browsers")
|
|
git_override(
|
|
module_name = "rules_browsers",
|
|
commit = "c00a3cb7a13840bbfa16fa6fa32ac190ae47c54f",
|
|
remote = "https://github.com/angular/rules_browsers.git",
|
|
)
|
|
|
|
yq = use_extension("@yq.bzl//yq:extensions.bzl", "yq")
|
|
use_repo(yq, "yq_toolchains")
|
|
|
|
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
|
|
node.toolchain(
|
|
node_repositories = {
|
|
"24.20.0-darwin_arm64": ("node-v24.20.0-darwin-arm64.tar.gz", "node-v24.20.0-darwin-arm64", "40e5607e5ecb3db9192723776da2d75d966260fc74a7a9e731c1bd67dda96bc8"),
|
|
"24.20.0-darwin_amd64": ("node-v24.20.0-darwin-x64.tar.gz", "node-v24.20.0-darwin-x64", "9e5b2644cf107befb6aefca676b96d3296bc10138096f022ed378d6233ed81f4"),
|
|
"24.20.0-linux_arm64": ("node-v24.20.0-linux-arm64.tar.xz", "node-v24.20.0-linux-arm64", "5f4ddab610c1ab2016b3c227cebdbf6d9495161487e4739c7b90090595f465f7"),
|
|
"24.20.0-linux_ppc64le": ("node-v24.20.0-linux-ppc64le.tar.xz", "node-v24.20.0-linux-ppc64le", "341307dcee20d88332307008f2a480450c54f42d5149e7c4c8a18d937e37b5c1"),
|
|
"24.20.0-linux_s390x": ("node-v24.20.0-linux-s390x.tar.xz", "node-v24.20.0-linux-s390x", "ca381121cb5a8d38c2954b6699cea09a83fba1b03141a71a8348f08df02de245"),
|
|
"24.20.0-linux_amd64": ("node-v24.20.0-linux-x64.tar.xz", "node-v24.20.0-linux-x64", "2f2c0da162318f0de47665410c7c8c2ed3d36c8f3105de4bbc61176c70a7cbf2"),
|
|
"24.20.0-windows_amd64": ("node-v24.20.0-win-x64.zip", "node-v24.20.0-win-x64", "6cac9ffbca8f6a47091e4b5c772e0606049c3871cb67d900c0cedde630e545ba"),
|
|
},
|
|
node_version = "24.20.0",
|
|
)
|
|
use_repo(node, "nodejs_toolchains")
|
|
use_repo(node, "nodejs_darwin_amd64")
|
|
use_repo(node, "nodejs_darwin_arm64")
|
|
use_repo(node, "nodejs_linux_amd64")
|
|
use_repo(node, "nodejs_linux_arm64")
|
|
use_repo(node, "nodejs_linux_ppc64le")
|
|
use_repo(node, "nodejs_linux_s390x")
|
|
use_repo(node, "nodejs_windows_amd64")
|
|
|
|
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
|
|
pnpm.pnpm(
|
|
name = "pnpm",
|
|
pnpm_version = "11.24.0",
|
|
pnpm_version_integrity = "sha512-vSfjRel23LC+C3oSKCF7BJqBfiGx81XJDb59xGZxiVqLwebQbCRVRQXqk+oLRfSJon7Bv7yN5qlln8oPFvoAAA==",
|
|
)
|
|
use_repo(pnpm, "pnpm")
|
|
|
|
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm")
|
|
npm.npm_translate_lock(
|
|
name = "npm",
|
|
data = [
|
|
"//:.pnpmfile.cjs",
|
|
"//:package.json",
|
|
"//:pnpm-workspace.yaml",
|
|
"//adev:package.json",
|
|
"//adev/shared-docs:package.json",
|
|
"//adev/shared-docs/pipeline/api-gen:package.json",
|
|
"//devtools:package.json",
|
|
"//integration:package.json",
|
|
"//modules:package.json",
|
|
"//packages/animations:package.json",
|
|
"//packages/benchpress:package.json",
|
|
"//packages/common:package.json",
|
|
"//packages/compiler:package.json",
|
|
"//packages/compiler-cli:package.json",
|
|
"//packages/compiler-cli/linker/babel/test:package.json",
|
|
"//packages/core:package.json",
|
|
"//packages/core/test/bundling:package.json",
|
|
"//packages/elements:package.json",
|
|
"//packages/forms:package.json",
|
|
"//packages/language-service:package.json",
|
|
"//packages/localize:package.json",
|
|
"//packages/platform-browser:package.json",
|
|
"//packages/platform-browser-dynamic:package.json",
|
|
"//packages/platform-server:package.json",
|
|
"//packages/router:package.json",
|
|
"//packages/service-worker:package.json",
|
|
"//packages/upgrade:package.json",
|
|
"//tools/bazel/rules_angular_store:package.json",
|
|
"//vscode-ng-language-service/integration/project:package.json",
|
|
],
|
|
lifecycle_hooks = {
|
|
# sleep requires node-gyp rebuild but the native module is not needed in Bazel;
|
|
# disable the install hook to avoid failing builds when node-gyp is unavailable.
|
|
"sleep": [],
|
|
},
|
|
pnpm_lock = "//:pnpm-lock.yaml",
|
|
)
|
|
use_repo(npm, "npm")
|
|
|
|
rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext")
|
|
rules_ts_ext.deps(
|
|
name = "angular_npm_typescript",
|
|
# Obtained by: curl --silent https://registry.npmjs.org/typescript/6.0.2 | jq -r '.dist.integrity'
|
|
ts_integrity = "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
|
|
ts_version = "6.0.3",
|
|
)
|
|
use_repo(rules_ts_ext, **{"npm_typescript": "angular_npm_typescript"})
|
|
|
|
# TODO: Figure out how to make ng_project update whenever the packages/core::pkg target changes.
|
|
rules_angular = use_extension("@rules_angular//setup:extensions.bzl", "rules_angular")
|
|
rules_angular.setup(
|
|
name = "angular_rules_angular_configurable_deps",
|
|
angular_compiler_cli = "//:node_modules/@angular/compiler-cli",
|
|
typescript = "//:node_modules/typescript",
|
|
)
|
|
use_repo(rules_angular, rules_angular_configurable_deps = "angular_rules_angular_configurable_deps")
|
|
|
|
register_toolchains(
|
|
"@devinfra//bazel/git-toolchain:git_linux_toolchain",
|
|
"@devinfra//bazel/git-toolchain:git_macos_x86_toolchain",
|
|
"@devinfra//bazel/git-toolchain:git_macos_arm64_toolchain",
|
|
"@devinfra//bazel/git-toolchain:git_windows_toolchain",
|
|
)
|
|
|
|
CLDR_VERSION = "47"
|
|
|
|
cldr_json_data = use_repo_rule("//packages/common/locales/generate-locales-tool:cldr-data.bzl", "cldr_json_data_repository")
|
|
|
|
cldr_json_data(
|
|
name = "cldr_json_data",
|
|
urls = {
|
|
"https://github.com/unicode-org/cldr-json/releases/download/%s.0.0/cldr-%s.0.0-json-full.zip" % (CLDR_VERSION, CLDR_VERSION): "bbb9a9aac2dfc534bd18288678a5984023d11d22f712f3c33425f3214bd1def6",
|
|
},
|
|
)
|
|
|
|
cldr_xml_data = use_repo_rule("//packages/common/locales/generate-locales-tool:cldr-data.bzl", "cldr_xml_data_repository")
|
|
|
|
cldr_xml_data(
|
|
name = "cldr_xml_data",
|
|
urls = {
|
|
"https://github.com/unicode-org/cldr/releases/download/release-%s/core.zip" % CLDR_VERSION: "d5ee2abac64158c04884a722f8ef4830ea22b6c74aac20185be2838db8eda788",
|
|
},
|
|
)
|