feat(third_party/bazel): Check in rules_haskell from Tweag

This commit is contained in:
Vincent Ambo 2019-07-04 11:18:12 +01:00
parent 2eb1dc26e4
commit f723b8b878
479 changed files with 51484 additions and 0 deletions

View file

@ -0,0 +1,39 @@
# This file declares constraint values for each platform supported by
# GHC. These rules follow the GHC naming convention, for example,
# //haskell/platform:linux and //haskell/platform:x86_64. See the
# config.guess in any GHC source distribution for possible platforms.
#
# These can be used in select expressions to choose platform-specifc
# sources and dependencies.
load(":list.bzl", "declare_config_settings")
declare_config_settings()
constraint_value(
name = "nixpkgs",
constraint_setting = "@bazel_tools//tools/cpp:cc_compiler",
visibility = ["//visibility:public"],
)
platform(
name = "linux_x86_64_nixpkgs",
constraint_values = [
# XXX using the platform names defined here results in a graph
# cycle for some reason.
"@bazel_tools//platforms:x86_64",
"@bazel_tools//platforms:linux",
":nixpkgs",
],
visibility = ["//visibility:public"],
)
platform(
name = "darwin_x86_64_nixpkgs",
constraint_values = [
"@bazel_tools//platforms:x86_64",
"@bazel_tools//platforms:osx",
":nixpkgs",
],
visibility = ["//visibility:public"],
)

View file

@ -0,0 +1,44 @@
OS = {
"aix": None,
"darwin": "@bazel_tools//platforms:osx",
"dragonfly": None,
"freebsd": "@bazel_tools//platforms:freebsd",
"haiku": None,
"hpux": None,
"ios": "@bazel_tools//platforms:ios",
"linux_android": "@bazel_tools//platforms:android",
"linux": "@bazel_tools//platforms:linux",
"mingw32": "@bazel_tools//platforms:windows",
"netbsd": None,
"openbsd": None,
"solaris2": None,
}
ARCH = {
"aarch64": None,
"alpha": None,
"arm64": "@bazel_tools//platforms:aarch64",
"arm": "@bazel_tools//platforms:arm",
"i386": "@bazel_tools//platforms:x86_32",
"ia64": None,
"powerpc64": None,
"powerpc64le": None,
"powerpc": "@bazel_tools//platforms:ppc",
"rs6000": None,
"sparc": None,
"x86_64": "@bazel_tools//platforms:x86_64",
}
def declare_config_settings():
for os, constraint_value in OS.items():
if constraint_value:
native.config_setting(
name = os,
constraint_values = [constraint_value],
)
for arch, constraint_value in ARCH.items():
if constraint_value:
native.config_setting(
name = arch,
constraint_values = [constraint_value],
)