Skip to content

Commit 20cb919

Browse files
committed
Wire components_args into the module version of stack_snapshot
Modules require a facade for stack_snapshot. Push components_args through the facade and back into the main implementation.
1 parent 414c3b3 commit 20cb919

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

extensions/stack_snapshot.bzl

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,17 @@ _package_tag = tag_class(
129129
default = False,
130130
doc = "Configuring a package makes it visible by default, unless `hidden` is set to True",
131131
),
132+
"components_args": attr.string_dict(
133+
doc = """ components_args: Defines map from component to cabal settings for that package.
134+
The cabal settings are a target of type `haskell_cabal_args`. Currently handles empty
135+
libraries and telling the build system to ignore `Setup.hs`.
136+
Use `lib` for the main library component, `exe:<exe-name>` for an executable component,
137+
and `lib:<sublib-name>` for a sublibrary.
138+
`exe` is a short-cut for `exe:<package-name>`.
139+
Either use the builtin "@rules_haskell//tools/cabal_args:empty_library", or create your own
140+
if necessary.
141+
""",
142+
),
132143
},
133144
)
134145

@@ -180,6 +191,8 @@ def _add_packages(conf, module, root_or_rules_haskell):
180191
if package_tag.components != ["DETECT_DEFAULT"]:
181192
# Some packages have default components set
182193
conf.components[package_name] = package_tag.components
194+
if package_tag.components_args:
195+
conf.components[package_name] = package_tag.components_args
183196
if package_tag.components_dependencies:
184197
conf.components_dependencies[package_name] = json.encode(package_tag.components_dependencies)
185198
if package_tag.extra_deps:
@@ -295,6 +308,7 @@ def _stack_snapshot_impl(mctx):
295308
extra_deps = {},
296309
components = {},
297310
components_dependencies = {},
311+
components_args = {},
298312
vendored_packages = {},
299313
)
300314

@@ -318,6 +332,7 @@ def _stack_snapshot_impl(mctx):
318332
kwargs["flags"] = packages_conf.flags
319333
kwargs["components"] = packages_conf.components
320334
kwargs["components_dependencies"] = packages_conf.components_dependencies
335+
kwargs["components_args"] = packages_conf.components_args
321336
kwargs["extra_deps"] = packages_conf.extra_deps
322337
kwargs["vendored_packages"] = packages_conf.vendored_packages
323338
kwargs["name"] = "stackage"

0 commit comments

Comments
 (0)