From e7d24e56a77178a9fe0a13ee32e2a2ed785628b1 Mon Sep 17 00:00:00 2001 From: James Clarke Date: Sat, 6 Mar 2021 06:58:08 -0800 Subject: [PATCH 1/2] Add script to generate winrt headers using cppwinrt.exe --- build/win/generate_winrt_headers.py | 38 +++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 build/win/generate_winrt_headers.py diff --git a/build/win/generate_winrt_headers.py b/build/win/generate_winrt_headers.py new file mode 100644 index 0000000000..d47ef188ed --- /dev/null +++ b/build/win/generate_winrt_headers.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import os +import sys + +def clean(output_dir): + if os.path.exists(output_dir): + os.remove(output_dir) + return + + +def generate_headers(output_dir): + """Run cppwinrt.exe on the installed Windows SDK version and generate + cppwinrt headers in the output directory. + """ + + cppwinrt_exe = os.path.join( + __file__, + '..\\..\\third_party\\cppwinrt\\bin\\cppwinrt.exe') + + args = [cppwinrt_exe, '-in', 'sdk', + '-out', '%s' % output_dir] + + return 0 + + +def main(argv): + generated_dir = os.path.join( + __file__, + '..\\..\\third_party\\cppwinrt\\generated') + clean(generated_dir) + return generate_headers("generated") + +if __name__ == "__main__": + sys.exit(main(sys.argv[1:])) From 4a1ce72e6d139cd95d7effb236440bfb2639fd53 Mon Sep 17 00:00:00 2001 From: James Clarke Date: Wed, 10 Mar 2021 20:05:02 -0800 Subject: [PATCH 2/2] Fix script --- build/win/generate_winrt_headers.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/build/win/generate_winrt_headers.py b/build/win/generate_winrt_headers.py index d47ef188ed..e2676b7a4a 100644 --- a/build/win/generate_winrt_headers.py +++ b/build/win/generate_winrt_headers.py @@ -4,11 +4,13 @@ # found in the LICENSE file. import os +import shutil +import subprocess import sys def clean(output_dir): if os.path.exists(output_dir): - os.remove(output_dir) + shutil.rmtree(output_dir, ignore_errors=True) return @@ -19,20 +21,22 @@ def generate_headers(output_dir): cppwinrt_exe = os.path.join( __file__, - '..\\..\\third_party\\cppwinrt\\bin\\cppwinrt.exe') + '..\\..\\..\\third_party\\cppwinrt\\bin\\cppwinrt.exe') args = [cppwinrt_exe, '-in', 'sdk', '-out', '%s' % output_dir] + subprocess.check_output(args) + return 0 def main(argv): generated_dir = os.path.join( __file__, - '..\\..\\third_party\\cppwinrt\\generated') + '..\\..\\..\\third_party\\cppwinrt\\generated') clean(generated_dir) - return generate_headers("generated") + return generate_headers(generated_dir) if __name__ == "__main__": sys.exit(main(sys.argv[1:]))