aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/xcodebackend.py
diff options
context:
space:
mode:
authorGuillermo Ignacio Enriquez Gutierrez <ignacio@jp.ibm.com>2018-10-01 18:53:47 +0900
committerGuillermo Ignacio Enriquez Gutierrez <ignacio@jp.ibm.com>2018-10-01 19:22:52 +0900
commitaff3930464aa89e3871a49d8cc05a48eed43d97b (patch)
tree5b37cc1818049a26b9b49a5c30eb76e1bb0e34ea /mesonbuild/backend/xcodebackend.py
parentf39d5ef6ded3d54ab28ab75aa343f392443b4e24 (diff)
downloadmeson-aff3930464aa89e3871a49d8cc05a48eed43d97b.zip
meson-aff3930464aa89e3871a49d8cc05a48eed43d97b.tar.gz
meson-aff3930464aa89e3871a49d8cc05a48eed43d97b.tar.bz2
Fix Xcode backend: Add build dir to SYSTEM_HEADER_SEARCH_PATHS so generated headers can be included/imported in sources
Diffstat (limited to 'mesonbuild/backend/xcodebackend.py')
-rw-r--r--mesonbuild/backend/xcodebackend.py30
1 files changed, 22 insertions, 8 deletions
diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py
index b0fcfa4..11f8bb8 100644
--- a/mesonbuild/backend/xcodebackend.py
+++ b/mesonbuild/backend/xcodebackend.py
@@ -786,6 +786,7 @@ class XCodeBackend(backends.Backend):
self.write_line('PRODUCT_NAME = %s;' % product_name)
self.write_line('SECTORDER_FLAGS = "";')
self.write_line('SYMROOT = "%s";' % symroot)
+ self.write_build_setting_line('SYSTEM_HEADER_SEARCH_PATHS', [self.environment.get_build_dir()])
self.write_line('USE_HEADERMAP = NO;')
self.write_build_setting_line('WARNING_CFLAGS', ['-Wmost', '-Wno-four-char-constants', '-Wno-unknown-pragmas'])
self.indent_level -= 1
@@ -860,16 +861,29 @@ class XCodeBackend(backends.Backend):
self.write_line('};')
self.ofile.write('/* End XCConfigurationList section */\n')
- def write_build_setting_line(self, flag_name, flag_values):
+ def write_build_setting_line(self, flag_name, flag_values, explicit=False):
if flag_values:
- self.write_line('%s = (' % flag_name)
- self.indent_level += 1
- for value in flag_values:
- self.write_line('"%s",' % value)
- self.indent_level -= 1
- self.write_line(');')
+ if len(flag_values) == 1:
+ value = flag_values[0]
+ if (' ' in value):
+ # If path contains spaces surround it with double colon
+ self.write_line('%s = "\\"%s\\"";' % (flag_name, value))
+ else:
+ self.write_line('"%s",' % value)
+ else:
+ self.write_line('%s = (' % flag_name)
+ self.indent_level += 1
+ for value in flag_values:
+ if (' ' in value):
+ # If path contains spaces surround it with double colon
+ self.write_line('"\\"%s\\"",' % value)
+ else:
+ self.write_line('"%s",' % value)
+ self.indent_level -= 1
+ self.write_line(');')
else:
- self.write_line('%s = "";' % flag_name)
+ if explicit:
+ self.write_line('%s = "";' % flag_name)
def generate_prefix(self):
self.ofile.write('// !$*UTF8*$!\n{\n')