blob: b1ece2a936dfff65b27c3ffa11f3b73e35b0f376 [file] [log] [blame]
# Copyright © 2024-2025 Apple Inc. and the Pkl project 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
#
# https://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.
"""apple/rules_pkl"""
module(
name = "rules_pkl",
version = "0.10.0",
bazel_compatibility = [">=7.0.0"],
compatibility_level = 1,
)
bazel_dep(name = "aspect_bazel_lib", version = "2.13.0")
bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "platforms", version = "0.0.11")
bazel_dep(name = "rules_java", version = "8.11.0")
bazel_dep(name = "rules_jvm_external", version = "6.7")
bazel_dep(name = "rules_shell", version = "0.4.0")
bazel_dep(name = "buildifier_prebuilt", version = "7.3.1", dev_dependency = True)
bazel_dep(name = "gazelle", version = "0.44.0", dev_dependency = True, repo_name = "bazel_gazelle")
bazel_dep(name = "rules_bazel_integration_test", version = "0.29.0", dev_dependency = True)
bazel_dep(name = "rules_python", version = "1.4.1", dev_dependency = True)
bazel_dep(name = "stardoc", version = "0.8.0", dev_dependency = True)
pkl = use_extension("//pkl/extensions:pkl.bzl", "pkl")
use_repo(
pkl,
"pkl-cli-linux-aarch64",
"pkl-cli-linux-amd64",
"pkl-cli-macos-aarch64",
"pkl-cli-macos-amd64",
)
register_toolchains(
"@rules_pkl//pkl:pkl_toolchain_codegen_java",
"@rules_pkl//pkl:pkl_toolchain_linux_aarch64",
"@rules_pkl//pkl:pkl_toolchain_linux_amd64",
"@rules_pkl//pkl:pkl_toolchain_macos_aarch64",
"@rules_pkl//pkl:pkl_toolchain_macos_amd64",
)
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
maven.install(
name = "rules_pkl_deps",
artifacts = [
"org.pkl-lang:pkl-tools:0.29.0",
"org.pkl-lang:pkl-config-java:0.29.0",
"org.pkl-lang:pkl-tools:0.29.0",
"org.jetbrains.kotlin:kotlin-stdlib:2.0.21",
"com.google.code.gson:gson:2.13.1",
"org.junit.vintage:junit-vintage-engine:5.13.4",
],
lock_file = "//pkl/private:pkl_deps_install.json",
repositories = [
"https://repo1.maven.org/maven2/",
],
)
use_repo(
maven,
"rules_pkl_deps",
"unpinned_rules_pkl_deps",
)
maven.install(
name = "custom_pkl_java_library_maven_deps",
artifacts = [
"org.pkl-lang:pkl-config-java:0.29.0",
],
lock_file = "//pkl/private:pkl_deps_custom_java_library_maven_deps_install.json",
repositories = [
"https://repo1.maven.org/maven2/",
],
)
use_repo(
maven,
"custom_pkl_java_library_maven_deps",
"unpinned_custom_pkl_java_library_maven_deps",
)
python = use_extension(
"@rules_python//python/extensions:python.bzl",
"python",
dev_dependency = True,
)
python.toolchain(
configure_coverage_tool = True,
ignore_root_user_error = True,
python_version = "3.12",
)
bazel_binaries = use_extension(
"@rules_bazel_integration_test//:extensions.bzl",
"bazel_binaries",
dev_dependency = True,
)
bazel_binaries.download(version = "7.6.1")
bazel_binaries.download(version = "8.2.1")
use_repo(
bazel_binaries,
"bazel_binaries",
"bazel_binaries_bazelisk",
"build_bazel_bazel_7_6_1",
"build_bazel_bazel_8_2_1",
)
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
hawkeye_coordinates = [
{
"name": "hawkeye-aarch64-apple-darwin",
"url": "https://github.com/korandoru/hawkeye/releases/download/v6.0.2/hawkeye-aarch64-apple-darwin.tar.xz",
"sha256": "9f300ad84201e500c4eb09ed710239797d2a6a17de5b7c08e1d3af1704ca6bb7",
},
{
"name": "hawkeye-x86_64-apple-darwin",
"url": "https://github.com/korandoru/hawkeye/releases/download/v6.0.2/hawkeye-x86_64-apple-darwin.tar.xz",
"sha256": "6f8850adb9204b6218f4912fb987106a71fcd8d742ce20227697ddccc44cec38",
},
{
"name": "hawkeye-x86_64-unknown-linux-gnu",
"url": "https://github.com/korandoru/hawkeye/releases/download/v6.0.2/hawkeye-x86_64-unknown-linux-gnu.tar.xz",
"sha256": "d5b9d3cdb4293ac84fa27e5021c77b6c062c61071760ab05fcacfbec1ac14850",
},
]
[
http_archive(
name = coords["name"],
build_file = "//scripts:hawkeye.BUILD",
sha256 = coords["sha256"],
strip_prefix = coords["name"],
url = coords["url"],
)
for coords in hawkeye_coordinates
]