diff --git a/proto/swift_proto_utils.bzl b/proto/swift_proto_utils.bzl index 56fc6f55d..cf85d4e78 100644 --- a/proto/swift_proto_utils.bzl +++ b/proto/swift_proto_utils.bzl @@ -37,6 +37,7 @@ load( # buildifier: disable=bzl-visibility load( "//swift/internal:utils.bzl", + "expand_make_variables", "get_providers", "include_developer_search_paths", ) @@ -258,12 +259,18 @@ def compile_swift_protos_for_target( unsupported_features = ctx.disabled_features, ) + # These can't use additional_inputs since expand_locations needs targets, + # not files. + copts = expand_make_variables(ctx, getattr(attr, "copts", []), "copts") + linkopts = expand_make_variables(ctx, getattr(attr, "linkopts", []), "linkopts") + # Compile the generated Swift source files as a module: include_dev_srch_paths = include_developer_search_paths(attr) compile_result = swift_common.compile( actions = ctx.actions, cc_infos = get_providers(compiler_deps, CcInfo), - copts = ["-parse-as-library"] + getattr(attr, "copts", []), + defines = ctx.attr.defines, + copts = ["-parse-as-library"] + copts, feature_configuration = feature_configuration, include_dev_srch_paths = include_dev_srch_paths, module_name = module_name, @@ -294,6 +301,7 @@ def compile_swift_protos_for_target( ], module_context = module_context, swift_toolchain = swift_toolchain, + user_link_flags = linkopts, ) )