Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions d/private/providers.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

def _dinfo_init(
*,
compile_flags = None,
compiler_flags = None,
imports = None,
interface_srcs = None,
libraries = None,
Expand All @@ -12,11 +12,11 @@ def _dinfo_init(
versions = None):
"""Initializes the DInfo provider."""
return {
"compile_flags": compile_flags or [],
"compiler_flags": compiler_flags or depset(),
"imports": imports or depset(),
"interface_srcs": interface_srcs or depset(),
"libraries": libraries or depset(),
"linker_flags": linker_flags or [],
"linker_flags": linker_flags or depset(),
"source_only": source_only,
"string_imports": string_imports or depset(),
"versions": versions or depset(),
Expand All @@ -25,7 +25,7 @@ def _dinfo_init(
DInfo, _new_dinfo = provider(
doc = "Provider containing D compilation information",
fields = {
"compile_flags": "List of compiler flags.",
"compiler_flags": "List of compiler flags.",
"imports": "A depset of import paths.",
"interface_srcs": "A depset of interface source files, transitive sources included.",
"libraries": "A depset of libraries, transitive libraries too.",
Expand Down
8 changes: 8 additions & 0 deletions d/private/rules/common.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ common_attrs = {
allow_empty = False,
),
"deps": attr.label_list(doc = "List of dependencies.", providers = [[CcInfo], [DInfo]]),
"dopts": attr.string_list(doc = "Compiler flags."),
"imports": attr.string_list(doc = "List of import paths."),
"linkopts": attr.string_list(doc = "Linker flags passed via -L flags."),
"string_imports": attr.string_list(doc = "List of string import paths."),
"string_srcs": attr.label_list(doc = "List of string import source files."),
"versions": attr.string_list(doc = "List of version identifiers."),
Expand Down Expand Up @@ -100,10 +102,12 @@ def compilation_action(ctx, target_type = TARGET_TYPE.LIBRARY):
for lib in li.libraries
])
d_deps = [d[DInfo] for d in ctx.attr.deps if DInfo in d]
compiler_flags = depset(ctx.attr.dopts, transitive = [d.compiler_flags for d in d_deps])
imports = depset(
[paths.join(ctx.label.package, imp) for imp in ctx.attr.imports],
transitive = [d.imports for d in d_deps],
)
linker_flags = depset(ctx.attr.linkopts, transitive = [d.linker_flags for d in d_deps])
string_imports = depset(
([ctx.label_package] if ctx.files.string_srcs else []) +
[paths.join(ctx.label.package, imp) for imp in ctx.attr.string_imports],
Expand All @@ -116,8 +120,10 @@ def compilation_action(ctx, target_type = TARGET_TYPE.LIBRARY):
args.add_all(imports.to_list(), format_each = "-I=%s")
args.add_all(string_imports.to_list(), format_each = "-J=%s")
args.add_all(toolchain.compiler_flags)
args.add_all(compiler_flags.to_list())
args.add_all(versions.to_list(), format_each = "-version=%s")
args.add_all(toolchain.linker_flags)
args.add_all(linker_flags.to_list(), format_each = "-L=%s")
output = None
if target_type in [TARGET_TYPE.BINARY, TARGET_TYPE.TEST]:
for dep in d_deps:
Expand Down Expand Up @@ -154,6 +160,7 @@ def compilation_action(ctx, target_type = TARGET_TYPE.LIBRARY):
return [
DefaultInfo(files = depset([output])),
DInfo(
compiler_flags = compiler_flags,
imports = depset(
[ctx.label.package] +
[paths.join(ctx.label.package, imp) for imp in ctx.attr.imports],
Expand All @@ -169,6 +176,7 @@ def compilation_action(ctx, target_type = TARGET_TYPE.LIBRARY):
transitive = [d.libraries for d in d_deps] +
[c_libraries],
),
linker_flags = linker_flags,
string_imports = depset(
([ctx.label.package] if ctx.files.string_srcs else []) +
[paths.join(ctx.label.package, imp) for imp in ctx.attr.string_imports],
Expand Down
3 changes: 2 additions & 1 deletion d/private/sdk/versions.bzl
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
"""Mirror of D compiler release information.

This file is generated with:
python3 d/private/sdk/versions_generator/generate_versions_bzl.py -c ~/.cache/d_releases --github-token <GITHUB_TOKEN> -o d/private/sdk/versions.bzl
bazel run -- //tools:generate_compiler_versions_bzl -c ~/.cache/d_releases --github-token <GITHUB_TOKEN> \
-o ${PWD}/d/private/sdk/versions.bzl
"""

SDK_VERSIONS = {
Expand Down
Loading
Loading