mirror of
https://github.com/enso-org/enso.git
synced 2024-11-25 10:43:02 +03:00
229 lines
7.1 KiB
Plaintext
229 lines
7.1 KiB
Plaintext
"enso-org/enso"
|
|
|
|
############################
|
|
### JavaScript ecosystem ###
|
|
############################
|
|
|
|
bazel_dep(name = "aspect_rules_js", version = "2.1.0")
|
|
bazel_dep(name = "aspect_rules_ts", version = "3.2.1")
|
|
bazel_dep(name = "rules_nodejs", version = "6.3.1")
|
|
bazel_dep(name = "aspect_bazel_lib", version = "2.9.3")
|
|
|
|
## Node.js
|
|
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
|
|
node.toolchain(node_version = "20.11.1")
|
|
|
|
# bazel_dep(name = "//toolchains/tar")
|
|
tar_toolchain = use_extension("//toolchains:tar/extensions.bzl", "tar_toolchain")
|
|
use_repo(tar_toolchain, "tar_toolchain")
|
|
|
|
register_toolchains("//toolchains:windows_builtin_tar_toolchain")
|
|
|
|
## Npm
|
|
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
|
|
npm.npm_translate_lock(
|
|
name = "npm",
|
|
npmrc = "//:.npmrc",
|
|
pnpm_lock = "//:pnpm-lock.yaml",
|
|
verify_node_modules_ignored = "//:.bazelignore",
|
|
)
|
|
use_repo(npm, "npm")
|
|
|
|
## TypeScript
|
|
rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext", dev_dependency = True)
|
|
rules_ts_ext.deps()
|
|
use_repo(rules_ts_ext, "npm_typescript")
|
|
|
|
############
|
|
### RUST ###
|
|
############
|
|
bazel_dep(name = "rules_rust", version = "0.48.0")
|
|
single_version_override(
|
|
module_name = "rules_rust",
|
|
patches = ["patches/rules_rust_msvc_maxpath.patch"],
|
|
)
|
|
|
|
rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
|
|
rust.toolchain(
|
|
edition = "2021",
|
|
extra_target_triples = ["wasm32-unknown-unknown"],
|
|
versions = ["nightly/2024-08-08"],
|
|
)
|
|
use_repo(rust, "rust_toolchains")
|
|
|
|
register_toolchains("@rust_toolchains//:all")
|
|
|
|
# print( manifests.MANIFESTS )
|
|
crate = use_extension("@rules_rust//crate_universe:extension.bzl", "crate")
|
|
crate.from_cargo(
|
|
name = "crates",
|
|
cargo_config = "//:.cargo/config.toml",
|
|
cargo_lockfile = "//:Cargo.lock",
|
|
manifests = [
|
|
"//:build_tools/ci-gen/Cargo.toml",
|
|
"//:build_tools/cli/Cargo.toml",
|
|
"//:build_tools/install/Cargo.toml",
|
|
"//:build_tools/install/config/Cargo.toml",
|
|
"//:build_tools/install/installer/Cargo.toml",
|
|
"//:build_tools/install/uninstaller/Cargo.toml",
|
|
"//:build_tools/macros/lib/Cargo.toml",
|
|
"//:Cargo.toml",
|
|
"//:lib/rust/launcher-shims/Cargo.toml",
|
|
"//:lib/rust/macro-utils/Cargo.toml",
|
|
"//:lib/rust/metamodel/Cargo.toml",
|
|
"//:lib/rust/parser/debug/Cargo.toml",
|
|
"//:lib/rust/parser/doc-parser/Cargo.toml",
|
|
"//:lib/rust/parser/generate-java/Cargo.toml",
|
|
"//:lib/rust/parser/jni/Cargo.toml",
|
|
"//:lib/rust/parser/schema/Cargo.toml",
|
|
"//:lib/rust/parser/src/syntax/tree/visitor/Cargo.toml",
|
|
"//:lib/rust/prelude/Cargo.toml",
|
|
"//:lib/rust/prelude/macros/Cargo.toml",
|
|
"//:lib/rust/reflect/Cargo.toml",
|
|
"//:lib/rust/zst/Cargo.toml",
|
|
"//:lib/rust/parser/debug/fuzz/Cargo.toml",
|
|
"//:tools/language-server/logstat/Cargo.toml",
|
|
"//:tools/language-server/wstest/Cargo.toml",
|
|
"//app/rust-ffi:Cargo.toml",
|
|
],
|
|
)
|
|
use_repo(crate, "crates")
|
|
|
|
wb_crates = use_extension("@rules_rust//crate_universe:extension.bzl", "crate")
|
|
wb_crates.from_cargo(
|
|
name = "wb_crates",
|
|
cargo_config = "//:.cargo/config.toml",
|
|
cargo_lockfile = "@wasm_bindgen_cli_crate//:Cargo.lock",
|
|
manifests = [
|
|
"@wasm_bindgen_cli_crate//:Cargo.toml",
|
|
],
|
|
)
|
|
use_repo(wb_crates, "wb_crates")
|
|
|
|
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
|
|
WASM_BINDGEN_VERSION = "0.2.93"
|
|
|
|
http_archive(
|
|
name = "wasm_bindgen_cli_crate",
|
|
build_file = "//toolchains/wasm_bindgen:BUILD.wasm-bindgen-cli.bazel",
|
|
integrity = "sha256-uwX54YM2X1zzrATWC1Sw4z9JTpNzAme1r4JjNEPugDU=",
|
|
strip_prefix = "wasm-bindgen-cli-{}".format(WASM_BINDGEN_VERSION),
|
|
type = "tar.gz",
|
|
# sha256 = "08f61e21873f51e3059a8c7c3eef81ede7513d161cfc60751c7b2ffa6ed28270",
|
|
urls = ["https://static.crates.io/crates/wasm-bindgen-cli/wasm-bindgen-cli-{}.crate".format(WASM_BINDGEN_VERSION)],
|
|
)
|
|
|
|
register_toolchains("//toolchains/wasm_bindgen:cli")
|
|
|
|
register_toolchains("//toolchains/dummy_cc:dummy_cc_wasm32_toolchain")
|
|
|
|
###########
|
|
### JVM ###
|
|
###########
|
|
bazel_dep(name = "rules_java", version = "7.6.1")
|
|
bazel_dep(name = "rules_graalvm", version = "0.11.1") ## upgrade to 0.11.2 once available in bazel central
|
|
|
|
gvm = use_extension("@rules_graalvm//:extensions.bzl", "graalvm")
|
|
gvm.graalvm(
|
|
name = "graalvm",
|
|
distribution = "ce", # `oracle`, `ce`, or `community`
|
|
java_version = "21", # `17`, `20`, `21`, or `22` as supported by the version provided
|
|
version = "23.1.0", # gvm sdk version format like `24.x.x` also supported
|
|
)
|
|
use_repo(gvm, "graalvm")
|
|
|
|
register_toolchains("@graalvm//:jvm")
|
|
|
|
register_toolchains("@graalvm//:sdk") ## Native-image
|
|
|
|
register_toolchains("@graalvm//:toolchain")
|
|
|
|
bazel_dep(name = "rules_jvm_external", version = "6.0")
|
|
|
|
scala_logging_version = "3.9.4"
|
|
|
|
scalatest_version = "3.3.0-SNAP4"
|
|
|
|
cats_version = "2.9.0"
|
|
|
|
circe_version = "0.14.5"
|
|
|
|
circe_libs = [
|
|
"circe-core",
|
|
"circe-generic",
|
|
"circe-parser",
|
|
]
|
|
|
|
circe = ["io.circe:%s_2.13:%s" % (x, circe_version) for x in circe_libs]
|
|
|
|
commons_text_version = "1.10.0"
|
|
|
|
http_components_version = "4.4.1"
|
|
|
|
jackson_version = "2.15.2"
|
|
|
|
commons_io_version = "2.12.0"
|
|
|
|
commons_compress_version = "1.23.0"
|
|
|
|
commons_lang_version = "3.12.0"
|
|
|
|
junit_version = "4.13.2"
|
|
|
|
hamcrest_version = "1.3"
|
|
|
|
picocli_version = "4.6.1"
|
|
|
|
minimal_json_version = "0.9.5"
|
|
|
|
## TODO: Consider replacing maven extension with
|
|
## https://github.com/bazeltools/bazel-deps
|
|
## The downside of the approach is that a number of other rules rely on it.
|
|
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
|
|
|
|
## After updating a list of artifacts run
|
|
## > bazel run @unpinned_maven//:pin
|
|
maven.install(
|
|
artifacts = [
|
|
"com.typesafe.scala-logging:scala-logging_2.13:%s" % scala_logging_version,
|
|
"org.scalatest:scalatest_2.13:%s" % scalatest_version,
|
|
"org.typelevel:cats-core_2.13:%s" % cats_version,
|
|
"org.apache.commons:commons-text:%s" % commons_text_version,
|
|
"org.apache.httpcomponents:httpclient:%s" % http_components_version,
|
|
"com.fasterxml.jackson.core:jackson-databind:%s" % jackson_version,
|
|
"commons-io:commons-io:%s" % commons_io_version,
|
|
"org.apache.commons:commons-compress:%s" % commons_compress_version,
|
|
"org.apache.commons:commons-lang3:%s" % commons_lang_version,
|
|
"junit:junit:%s" % junit_version,
|
|
"org.hamcrest:hamcrest-all:%s" % hamcrest_version,
|
|
|
|
## bazel-distribution dependencies
|
|
"info.picocli:picocli:%s" % picocli_version,
|
|
"com.eclipsesource.minimal-json:minimal-json:%s" % minimal_json_version,
|
|
] + circe,
|
|
fail_if_repin_required = True,
|
|
lock_file = "//:maven_install.json",
|
|
repositories = [
|
|
"https://repo.maven.apache.org/maven2",
|
|
"https://repo1.maven.org/maven2",
|
|
],
|
|
)
|
|
use_repo(
|
|
maven,
|
|
"maven",
|
|
"unpinned_maven",
|
|
)
|
|
|
|
###################
|
|
### ENVIRONMENT ###
|
|
###################
|
|
secrets = use_extension("//:bazel_scripts/secrets.bzl", "secrets")
|
|
secrets.environment_repo(
|
|
name = "env",
|
|
entries = {
|
|
"NODE_ENV": "production",
|
|
},
|
|
)
|
|
use_repo(secrets, "env")
|