diff --git a/ts/BUILD.bazel b/ts/BUILD.bazel index c1324d8f..43f1609e 100644 --- a/ts/BUILD.bazel +++ b/ts/BUILD.bazel @@ -188,6 +188,7 @@ bzl_library( "//ts/private:ts_proto_library", "@aspect_bazel_lib//lib:copy_to_directory", "@aspect_bazel_lib//lib:directory_path", + "@aspect_bazel_lib//lib:platform_utils", "@aspect_bazel_lib//lib:write_source_files", "@aspect_rules_js//js:defs", "@aspect_rules_js//js:libs", diff --git a/ts/private/ts_proto_library.bzl b/ts/private/ts_proto_library.bzl index 77884c77..4f4be733 100644 --- a/ts/private/ts_proto_library.bzl +++ b/ts/private/ts_proto_library.bzl @@ -1,11 +1,19 @@ "Private implementation details for ts_proto_library" load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "COPY_FILE_TO_BIN_TOOLCHAINS") +load("@aspect_bazel_lib//lib:platform_utils.bzl", "platform_utils") load("@rules_proto//proto:defs.bzl", "ProtoInfo", "proto_common") load("@rules_proto//proto:proto_common.bzl", proto_toolchains = "toolchains") _PROTO_TOOLCHAIN_TYPE = "@rules_proto//proto:toolchain_type" +def _windows_path_normalize(path): + """Changes forward slashs to backslashs for Windows paths.""" + host_is_windows = platform_utils.host_platform_is_windows() + if host_is_windows: + return path.replace("/", "\\") + return path + # buildifier: disable=function-docstring-header def _protoc_action(ctx, proto_info, outputs): """Create an action like @@ -29,19 +37,19 @@ def _protoc_action(ctx, proto_info, outputs): fail("protoc_gen_options.target must be 'js+dts'") args = ctx.actions.args() - args.add_joined(["--plugin", "protoc-gen-es", ctx.executable.protoc_gen_es.path], join_with = "=") + args.add_joined(["--plugin", "protoc-gen-es", _windows_path_normalize(ctx.executable.protoc_gen_es.path)], join_with = "=") for (key, value) in options.items(): args.add_joined(["--es_opt", key, value], join_with = "=") args.add_joined(["--es_out", ctx.bin_dir.path], join_with = "=") if ctx.attr.gen_connect_es: - args.add_joined(["--plugin", "protoc-gen-connect-es", ctx.executable.protoc_gen_connect_es.path], join_with = "=") + args.add_joined(["--plugin", "protoc-gen-connect-es", _windows_path_normalize(ctx.executable.protoc_gen_connect_es.path)], join_with = "=") for (key, value) in options.items(): args.add_joined(["--connect-es_opt", key, value], join_with = "=") args.add_joined(["--connect-es_out", ctx.bin_dir.path], join_with = "=") if ctx.attr.gen_connect_query: - args.add_joined(["--plugin", "protoc-gen-connect-query", ctx.executable.protoc_gen_connect_query.path], join_with = "=") + args.add_joined(["--plugin", "protoc-gen-connect-query", _windows_path_normalize(ctx.executable.protoc_gen_connect_query.path)], join_with = "=") for (key, value) in options.items(): args.add_joined(["--connect-query_opt", key, value], join_with = "=") args.add_joined(["--connect-query_out", ctx.bin_dir.path], join_with = "=")