mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 01:07:18 +03:00
e378a0f221
* refactor bazel LF versions * partial revert of [LF] drop retroactive interface instance #18282 recover retroacive instance in - AST - api-type-signature * fmt * Apply suggestions from code review Co-authored-by: Paul Brauner <141240651+paulbrauner-da@users.noreply.github.com> * address Paul's review --------- Co-authored-by: Paul Brauner <141240651+paulbrauner-da@users.noreply.github.com>
119 lines
3.7 KiB
Python
119 lines
3.7 KiB
Python
# Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# TODO Once daml_compile uses build instead of package we should use
|
|
# daml_compile instead of a genrule.
|
|
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
|
|
load("@build_environment//:configuration.bzl", "ghc_version", "sdk_version")
|
|
load("//daml-lf/language:daml-lf.bzl", "COMPILER_LF_VERSIONS", "lf_version_default_or_latest")
|
|
|
|
[
|
|
genrule(
|
|
name = "daml-script-{}-dar".format(lf_version),
|
|
srcs = glob(["**/*.daml"]),
|
|
outs = ["daml3-script-{}.dar".format(lf_version)],
|
|
cmd = """
|
|
set -eou pipefail
|
|
TMP_DIR=$$(mktemp -d)
|
|
mkdir -p $$TMP_DIR/daml/Daml
|
|
cp -rL $$(dirname $(location Daml/Script.daml)) $$TMP_DIR/daml
|
|
cat << EOF > $$TMP_DIR/daml.yaml
|
|
sdk-version: {sdk}
|
|
name: daml3-script
|
|
source: daml
|
|
version: {ghc}
|
|
dependencies:
|
|
- daml-stdlib
|
|
- daml-prim
|
|
build-options: {build_options}
|
|
EOF
|
|
$(location //compiler/damlc) build --project-root=$$TMP_DIR -o $$PWD/$@
|
|
rm -rf $$TMP_DIR
|
|
""".format(
|
|
build_options = str([
|
|
"--ghc-option",
|
|
"-Werror",
|
|
"--log-level=WARNING",
|
|
"--target",
|
|
lf_version,
|
|
]),
|
|
ghc = ghc_version,
|
|
sdk = sdk_version,
|
|
),
|
|
tools = ["//compiler/damlc"],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
for lf_version in COMPILER_LF_VERSIONS
|
|
]
|
|
|
|
# For convenience, we define daml3-script.dar which is always compiled to the
|
|
# default stable version of LF2.
|
|
copy_file(
|
|
name = "daml3-script",
|
|
src = ":daml3-script-{}.dar".format(lf_version_default_or_latest("2")),
|
|
out = "daml3-script.dar",
|
|
allow_symlink = True,
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "daml3-script-dars",
|
|
srcs = [
|
|
"daml3-script-{}.dar".format(lf_version)
|
|
for lf_version in COMPILER_LF_VERSIONS
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
genrule(
|
|
name = "daml-script-docs",
|
|
srcs = [
|
|
":daml-script.json",
|
|
":daml-script-rst-template.rst",
|
|
":daml-script-index-template.rst",
|
|
":daml-script-hoogle-template.txt",
|
|
],
|
|
outs = [
|
|
"daml-script-rst.tar.gz",
|
|
"daml-script-hoogle.txt",
|
|
"daml-script-anchors.json",
|
|
],
|
|
cmd = """
|
|
$(location //compiler/damlc) -- docs \
|
|
--output=daml-script-rst \
|
|
--input-format=json \\
|
|
--format=Rst \
|
|
--template=$(location :daml-script-rst-template.rst) \
|
|
--index-template=$(location :daml-script-index-template.rst) \\
|
|
--hoogle-template=$(location :daml-script-hoogle-template.txt) \\
|
|
--base-url=https://docs.daml.com/daml-script/api/ \\
|
|
--output-hoogle=$(location :daml-script-hoogle.txt) \\
|
|
--output-anchor=$(location :daml-script-anchors.json) \\
|
|
$(location :daml-script.json)
|
|
$(execpath //bazel_tools/sh:mktgz) $(location :daml-script-rst.tar.gz) daml-script-rst
|
|
""",
|
|
tools = [
|
|
"//bazel_tools/sh:mktgz",
|
|
"//compiler/damlc",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
genrule(
|
|
name = "daml-script-json-docs",
|
|
srcs = glob(["**/*.daml"]),
|
|
outs = ["daml-script.json"],
|
|
cmd = """
|
|
$(location //compiler/damlc) -- docs \
|
|
--output=$(OUTS) \
|
|
--package-name=daml3-script \
|
|
--format=Json \
|
|
--target=2.dev \
|
|
$(location Daml/Script.daml)
|
|
""",
|
|
tools = [
|
|
"//compiler/damlc",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
)
|