about summary refs log tree commit diff
path: root/third_party/bazel/rules_haskell/haskell/import.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/bazel/rules_haskell/haskell/import.bzl')
-rw-r--r--third_party/bazel/rules_haskell/haskell/import.bzl118
1 files changed, 0 insertions, 118 deletions
diff --git a/third_party/bazel/rules_haskell/haskell/import.bzl b/third_party/bazel/rules_haskell/haskell/import.bzl
deleted file mode 100644
index a79a9cff7b..0000000000
--- a/third_party/bazel/rules_haskell/haskell/import.bzl
+++ /dev/null
@@ -1,118 +0,0 @@
-"""Importing prebuilt packages into bazel"""
-
-load("@bazel_skylib//lib:paths.bzl", "paths")
-load(
-    "@io_tweag_rules_haskell//haskell:providers.bzl",
-    "HaddockInfo",
-    "HaskellInfo",
-    "HaskellLibraryInfo",
-    "empty_HaskellCcInfo",
-)
-load(":private/context.bzl", "haskell_context")
-load(":private/path_utils.bzl", "copy_all", "link_forest", "ln")
-load(":private/set.bzl", "set")
-load(":private/version_macros.bzl", "generate_version_macros")
-
-def _haskell_import_impl(ctx):
-    hs = haskell_context(ctx)
-
-    package_cache = ctx.actions.declare_file(
-        paths.join("package.conf.d", "package.cache"),
-    )
-
-    local_package_confs = link_forest(
-        ctx = ctx,
-        srcs = ctx.attr.package_confs.files,
-        sibling = package_cache,
-    )
-
-    local_haddock_html = ctx.actions.declare_directory("haddock-html")
-    copy_all(
-        ctx = ctx,
-        srcs = ctx.attr.haddock_html.files,
-        dest = local_haddock_html,
-    )
-
-    ctx.actions.run(
-        outputs = [package_cache],
-        inputs = local_package_confs,
-        mnemonic = "HaskellCreatePackageCache",
-        executable = hs.tools.ghc_pkg,
-        arguments = [
-            "recache",
-            "--package-db",
-            package_cache.dirname,
-        ],
-    )
-    ln(ctx, package_cache, ctx.outputs.cache)
-
-    dependencies_caches = set.singleton(package_cache)
-    for dep in ctx.attr.deps:
-        if HaskellInfo in dep:
-            set.mutable_union(dependencies_caches, dep[HaskellInfo].package_databases)
-
-    deps_ids = [
-        dep[HaskellLibraryInfo].package_id
-        for dep in ctx.attr.deps
-        if HaskellLibraryInfo in dep
-    ]
-
-    version_macros = set.empty()
-    if ctx.attr.version != None:
-        version_macros = set.singleton(
-            generate_version_macros(ctx, hs.name, ctx.attr.version),
-        )
-
-    libInfo = HaskellLibraryInfo(
-        package_id = ctx.attr.package_id,
-        version = ctx.attr.version,
-    )
-    buildInfo = HaskellInfo(
-        package_ids = set.from_list([ctx.attr.package_id] + deps_ids),
-        package_databases = dependencies_caches,
-        version_macros = version_macros,
-        import_dirs = [],
-        source_files = set.empty(),
-        extra_source_files = set.empty(),
-        static_libraries = [],
-        static_libraries_prof = [],
-        dynamic_libraries = set.empty(),
-        interface_dirs = set.empty(),
-        compile_flags = [],
-        prebuilt_dependencies = set.empty(),
-        direct_prebuilt_deps = set.empty(),
-        cc_dependencies = empty_HaskellCcInfo(),
-        transitive_cc_dependencies = empty_HaskellCcInfo(),
-    )
-    html_files = ctx.attr.haddock_html.files.to_list()
-    transitive_html = {ctx.attr.package_id: local_haddock_html} if html_files != [] else {}
-    interface_files = ctx.attr.haddock_interfaces.files.to_list()
-    transitive_haddocks = {ctx.attr.package_id: interface_files[0]} if interface_files != [] else {}
-
-    haddockInfo = HaddockInfo(
-        package_id = ctx.attr.package_id,
-        transitive_html = transitive_html,
-        transitive_haddocks = transitive_haddocks,
-    )
-    return [buildInfo, libInfo, haddockInfo]
-
-haskell_import = rule(
-    _haskell_import_impl,
-    attrs = dict(
-        package_id = attr.string(doc = "Workspace unique package identifier"),
-        deps = attr.label_list(doc = "Haskell dependencies for the package"),
-        version = attr.string(doc = "Package version."),
-        haddock_interfaces = attr.label(doc = "List of haddock interfaces"),
-        haddock_html = attr.label(doc = "List of haddock html dirs"),
-        package_confs = attr.label(doc = "List of ghc-pkg package.conf files"),
-        _version_macros = attr.label(
-            executable = True,
-            cfg = "host",
-            default = Label("@io_tweag_rules_haskell//haskell:version_macros"),
-        ),
-    ),
-    outputs = {
-        "cache": "%{name}-cache",
-    },
-    toolchains = ["@io_tweag_rules_haskell//haskell:toolchain"],
-)