generator_lib: Use forward slashes for CMake even on Windows
Fixed: dawn:2071
Change-Id: I999beeee407c4447e4b14de6d0a95c1b72c17e14
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/151840
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/generator/generator_lib.py b/generator/generator_lib.py
index 2056bae..fa18a0d 100644
--- a/generator/generator_lib.py
+++ b/generator/generator_lib.py
@@ -231,6 +231,16 @@
return paths
+# Computes the string representing a cmake list of paths.
+def _cmake_path_list(paths):
+ if os.name == "nt":
+ # On Windows CMake still expects paths to be separated by forward
+ # slashes
+ return (";".join(paths)).replace("\\", "/")
+ else:
+ return ";".join(paths)
+
+
def run_generator(generator):
parser = argparse.ArgumentParser(
description=generator.get_description(),
@@ -310,7 +320,7 @@
" ".join(dependencies))
if args.print_cmake_dependencies:
- sys.stdout.write(";".join(dependencies))
+ sys.stdout.write(_cmake_path_list(dependencies))
return 0
# The caller wants to assert that the outputs are what it expects.
@@ -329,9 +339,11 @@
# Print the list of all the outputs for cmake.
if args.print_cmake_outputs:
- sys.stdout.write(";".join([
- os.path.join(args.output_dir, render.output) for render in renders
- ]))
+ sys.stdout.write(
+ _cmake_path_list([
+ os.path.join(args.output_dir, render.output)
+ for render in renders
+ ]))
return 0
outputs = _do_renders(renders, args.template_dir)