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)