@@ -166,18 +166,23 @@ def _setup_downloaded_wasi_sdk(repository_ctx):
166166def _create_wasi_sdk_build_file (repository_ctx ):
167167 """Create BUILD file for WASI SDK"""
168168
169+ # Detect platform to determine binary extension
170+ platform = _detect_host_platform (repository_ctx )
171+ is_windows = platform .startswith ("windows_" )
172+ exe_ext = ".exe" if is_windows else ""
173+
169174 # Create a tools directory with proper symlinks for Rust builds
170175 # Note: Directory will be created automatically when symlinks are created
171176
172177 # Create symlinks in the tools directory that Rust can find
173178 tools = [
174- ("bin/ar" , "tools/ar" ),
175- ("bin/clang" , "tools/clang" ),
176- ("bin/clang++" , "tools/clang++" ),
177- ("bin/wasm-ld" , "tools/wasm-ld" ),
178- ("bin/llvm-nm" , "tools/llvm-nm" ),
179- ("bin/llvm-objdump" , "tools/llvm-objdump" ),
180- ("bin/llvm-strip" , "tools/llvm-strip" ),
179+ ("bin/ar" + exe_ext , "tools/ar" + exe_ext ),
180+ ("bin/clang" + exe_ext , "tools/clang" + exe_ext ),
181+ ("bin/clang++" + exe_ext , "tools/clang++" + exe_ext ),
182+ ("bin/wasm-ld" + exe_ext , "tools/wasm-ld" + exe_ext ),
183+ ("bin/llvm-nm" + exe_ext , "tools/llvm-nm" + exe_ext ),
184+ ("bin/llvm-objdump" + exe_ext , "tools/llvm-objdump" + exe_ext ),
185+ ("bin/llvm-strip" + exe_ext , "tools/llvm-strip" + exe_ext ),
181186 ]
182187
183188 for src , dst in tools :
@@ -194,32 +199,32 @@ package(default_visibility = ["//visibility:public"])
194199# File targets for WASI SDK tools
195200filegroup(
196201 name = "clang",
197- srcs = ["bin/clang"],
202+ srcs = ["bin/clang{exe_ext} "],
198203)
199204
200205filegroup(
201206 name = "ar",
202- srcs = ["bin/ar"],
207+ srcs = ["bin/ar{exe_ext} "],
203208)
204209
205210filegroup(
206211 name = "wasm_ld",
207- srcs = ["bin/wasm-ld"],
212+ srcs = ["bin/wasm-ld{exe_ext} "],
208213)
209214
210215filegroup(
211216 name = "llvm_nm",
212- srcs = ["bin/llvm-nm"],
217+ srcs = ["bin/llvm-nm{exe_ext} "],
213218)
214219
215220filegroup(
216221 name = "llvm_objdump",
217- srcs = ["bin/llvm-objdump"],
222+ srcs = ["bin/llvm-objdump{exe_ext} "],
218223)
219224
220225filegroup(
221226 name = "llvm_strip",
222- srcs = ["bin/llvm-strip"],
227+ srcs = ["bin/llvm-strip{exe_ext} "],
223228)
224229
225230filegroup(
@@ -318,6 +323,8 @@ alias(
318323)
319324'''
320325
326+ # Format BUILD content with executable extension
327+ build_content = build_content .format (exe_ext = exe_ext )
321328 repository_ctx .file ("BUILD.bazel" , build_content )
322329
323330 # Create cc_toolchain_config.bzl with proper path resolution
0 commit comments