daml/BUILD
Martin Huschenbett 092973e48d
daml2ts: Isolate tests better (#4111)
* daml2ts: Isolate tests better

Currently, the `sh_test` for `daml2ts` copies too many files into the
temporary directory where the test is run. This can cause issues with
stale files from development experiments being copied into the test.

This PR addresses the issue by exluding some directories which only
contain generated files.

CHANGELOG_BEGIN
CHANGELOG_END

* Exclude `node_modules` from buildifier check

Co-authored-by: Andreas Herrmann <andreash87@gmx.ch>
2020-01-20 14:48:21 +01:00

253 lines
5.1 KiB
Python

package(default_visibility = ["//:__subpackages__"])
load("@bazel_tools//tools/python:toolchain.bzl", "py_runtime_pair")
load(
"@rules_haskell//haskell:defs.bzl",
"haskell_toolchain",
)
load(
"@rules_haskell//haskell:c2hs.bzl",
"c2hs_toolchain",
)
load("//bazel_tools:haskell.bzl", "da_haskell_library", "da_haskell_repl")
load("@os_info//:os_info.bzl", "is_windows")
exports_files([".hlint.yaml"])
config_setting(
name = "on_linux",
constraint_values = [
"@bazel_tools//platforms:linux",
],
)
config_setting(
name = "on_osx",
constraint_values = [
"@bazel_tools//platforms:osx",
],
)
config_setting(
name = "on_freebsd",
constraint_values = [
"@bazel_tools//platforms:freebsd",
],
)
config_setting(
name = "on_windows",
constraint_values = [
"@bazel_tools//platforms:windows",
],
)
config_setting(
name = "profiling_build",
values = {
"compilation_mode": "dbg",
},
)
load(
"@rules_haskell//haskell:c2hs.bzl",
"c2hs_toolchain",
)
c2hs_toolchain(
name = "c2hs-toolchain",
c2hs = "@c2hs//:c2hs",
)
#
# Python toolchain
#
py_runtime(
name = "nix_python3_runtime",
interpreter = "@python3_nix//:bin/python",
python_version = "PY3",
) if not is_windows else None
py_runtime_pair(
name = "nix_python_runtime_pair",
py3_runtime = ":nix_python3_runtime",
) if not is_windows else None
toolchain(
name = "nix_python_toolchain",
exec_compatible_with = [
"@rules_haskell//haskell/platforms:nixpkgs",
],
toolchain = ":nix_python_runtime_pair",
toolchain_type = "@bazel_tools//tools/python:toolchain_type",
) if not is_windows else None
filegroup(
name = "node_modules",
srcs = glob(["node_modules/**/*"]),
)
config_setting(
name = "ghci_data",
define_values = {
"ghci_data": "True",
},
)
config_setting(
name = "hie_bios_ghci",
define_values = {
"hie_bios_ghci": "True",
},
)
#
# Metadata
#
# The VERSION file is inlined in a few builds.
exports_files([
"NOTICES",
"LICENSE",
"VERSION",
"CHANGELOG",
"tsconfig.json",
])
# FIXME(#448): We're currently assigning version (100+x).y.z to all components
# in SDK version x.y.z. As long as x < 10, 10x.y.z == (100+x).y.z. Since we'll
# stop splitting the SDK into individual components _very_ soon, this rule
# will not survive until x >= 10.
genrule(
name = "component-version",
srcs = ["VERSION"],
outs = ["COMPONENT-VERSION"],
cmd = """
echo -n 10 > $@
cat $(location VERSION) >> $@
""",
)
genrule(
name = "sdk-version-hs",
srcs = [
"VERSION",
":component-version",
],
outs = ["SdkVersion.hs"],
cmd = """
SDK_VERSION=$$(cat $(location VERSION))
cat > $@ <<EOF
module SdkVersion where
sdkVersion, damlStdlib :: String
sdkVersion = "$$SDK_VERSION"
damlStdlib = "daml-stdlib-" ++ sdkVersion
EOF
""",
)
da_haskell_library(
name = "sdk-version-hs-lib",
srcs = [":sdk-version-hs"],
hackage_deps = ["base"],
visibility = ["//visibility:public"],
)
#
# Common aliases
#
alias(
name = "damlc",
actual = "//compiler/damlc:damlc",
)
alias(
name = "damlc@ghci",
actual = "//compiler/damlc:damlc@ghci",
)
alias(
name = "damlc-dist",
actual = "//compiler/damlc:damlc-dist",
)
alias(
name = "daml2ts",
actual = "//language-support/ts/codegen:daml2ts",
)
alias(
name = "daml2ts@ghci",
actual = "//language-support/ts/codegen:daml2ts@ghci",
)
alias(
name = "daml-lf-repl",
actual = "//daml-lf/repl:repl",
)
alias(
name = "bindings-java",
actual = "//language-support/java/bindings:bindings-java",
)
alias(
name = "yarn",
actual = "@nodejs//:yarn",
)
alias(
name = "java",
actual = "@local_jdk//:bin/java.exe" if is_windows else "@local_jdk//:bin/java",
)
exports_files([
".scalafmt.conf",
])
# Buildifier.
load("@com_github_bazelbuild_buildtools//buildifier:def.bzl", "buildifier")
buildifier_excluded_patterns = [
"./3rdparty/haskell/c2hs-package.bzl",
"./3rdparty/haskell/network-package.bzl",
"**/node_modules/*",
]
# Run this to check if BUILD files are well-formatted.
buildifier(
name = "buildifier",
exclude_patterns = buildifier_excluded_patterns,
mode = "check",
)
# Run this to fix the errors in BUILD files.
buildifier(
name = "buildifier-fix",
exclude_patterns = buildifier_excluded_patterns,
mode = "fix",
verbose = True,
)
# Default target for da-ghci, da-ghcid.
da_haskell_repl(
name = "repl",
testonly = True,
visibility = ["//visibility:public"],
deps = [
":damlc",
"//compiler/daml-lf-ast:tests",
"//compiler/damlc/stable-packages:generate-stable-package",
"//compiler/damlc/tests:generate-simple-dalf",
"//daml-assistant:daml",
"//daml-assistant/daml-helper",
"//daml-assistant/integration-tests",
"//language-support/hs/bindings:hs-ledger",
"//language-support/hs/bindings:test",
"//language-support/ts/codegen:daml2ts",
],
)