daml/sdk/daml-script/daml3/BUILD.bazel
Remy e378a0f221
partial revert of [LF] drop retroactive interface instance #18282 (#18876)
* 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>
2024-04-02 10:11:36 +00:00

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"],
)