about summary refs log tree commit diff
path: root/third_party/bazel/rules_haskell/tools/os_info.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/bazel/rules_haskell/tools/os_info.bzl')
-rw-r--r--third_party/bazel/rules_haskell/tools/os_info.bzl29
1 files changed, 29 insertions, 0 deletions
diff --git a/third_party/bazel/rules_haskell/tools/os_info.bzl b/third_party/bazel/rules_haskell/tools/os_info.bzl
new file mode 100644
index 000000000000..242be51855cf
--- /dev/null
+++ b/third_party/bazel/rules_haskell/tools/os_info.bzl
@@ -0,0 +1,29 @@
+load("@bazel_tools//tools/cpp:lib_cc_configure.bzl", "get_cpu_value")
+
+_os_info_bzl_template = """
+cpu_value = "{CPU_VALUE}"
+is_darwin = cpu_value == "darwin"
+is_linux = cpu_value == "k8"
+is_windows = cpu_value == "x64_windows"
+"""
+
+def _os_info_impl(repository_ctx):
+    cpu = get_cpu_value(repository_ctx)
+    os_info_substitutions = {
+        "CPU_VALUE": cpu,
+    }
+    repository_ctx.file(
+        "os_info.bzl",
+        _os_info_bzl_template.format(**os_info_substitutions),
+        False,
+    )
+    repository_ctx.file(
+        "BUILD",
+        "",
+        False,
+    )
+
+os_info = repository_rule(
+    implementation = _os_info_impl,
+    local = True,
+)