[gobject-introspection/ccompiler.msvc.fixes] giscanner/ccompiler.py: Fix macro defines with quotes on MSVC
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection/ccompiler.msvc.fixes] giscanner/ccompiler.py: Fix macro defines with quotes on MSVC
- Date: Thu, 31 Oct 2019 09:33:56 +0000 (UTC)
commit 679c227c86fb2a38e34e86e4303a631848631e52
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Thu Oct 31 17:27:08 2019 +0800
giscanner/ccompiler.py: Fix macro defines with quotes on MSVC
When we save the macros to pass to distutils to compile the dumper
program, the quotes were not properly preserved for Visual Studio
builds, causing items such as -DG_LOG_DOMAIN to fail as quotes are used
in there.
When we use quotes in macro definitions, we escape the escape
character in ccompiler._set_cpp_options() when we are running
g-ir-scanner with Visual Studio, so that distutils won't be too eager
to drop those prematurely.
giscanner/ccompiler.py | 7 +++++++
1 file changed, 7 insertions(+)
---
diff --git a/giscanner/ccompiler.py b/giscanner/ccompiler.py
index 35549da2..4ad572c3 100644
--- a/giscanner/ccompiler.py
+++ b/giscanner/ccompiler.py
@@ -444,6 +444,13 @@ class CCompiler(object):
else:
macro_name = macro[:macro_index]
macro_value = macro[macro_index + 1:]
+
+ # Somehow the quotes used in defining
+ # macros for compiling using distutils
+ # get dropped for MSVC builds, so
+ # escape the escape character.
+ if isinstance(self.compiler, MSVCCompiler):
+ macro_value = macro_value.replace('\"', '\\\"')
macros.append((macro_name, macro_value))
elif option.startswith('-U'):
macros.append((option[len('-U'):],))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]