about summary refs log tree commit diff
path: root/third_party/bazel/rules_haskell/tests/library-linkstatic-flag/get_library_files.bzl
blob: 31702bfcfa075c4d69f7e19de58d8b40b062c724 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
load(
    "@io_tweag_rules_haskell//haskell:providers.bzl",
    "HaskellInfo",
    "HaskellLibraryInfo",
)
load("//haskell:private/set.bzl", "set")

def _get_libraries_as_runfiles_impl(ctx):
    """Extract all library files from a haskell_library target
    and put them in this target’s files"""
    bi = ctx.attr.library[HaskellInfo]
    return [DefaultInfo(
        # not necessarily complete
        files = depset(
            direct = bi.static_libraries,
            transitive = [set.to_depset(bi.dynamic_libraries)],
        ),
    )]

get_libraries_as_runfiles = rule(
    _get_libraries_as_runfiles_impl,
    attrs = {
        "library": attr.label(
            mandatory = True,
            providers = [HaskellInfo, HaskellLibraryInfo],
        ),
    },
)