From b549875b68bc13e7af6dc436763027fc6e74ca8b Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Fri, 28 Mar 2014 23:42:01 +0200 Subject: [PATCH] Finally can generate an entire xcodeproj file. Next up: debugging it to work. --- backends.py | 34 ++++++++++++++++++++++++++++++++++ build.py | 2 ++ 2 files changed, 36 insertions(+) diff --git a/backends.py b/backends.py index 66a49d7a6..8b70f1ec1 100644 --- a/backends.py +++ b/backends.py @@ -2022,6 +2022,7 @@ class XCodeBackend(Backend): self.write_line('name = %s;' % buildtype) self.indent_level-=1 self.write_line('};') + # Then the all target. for buildtype in self.buildtypes: self.write_line('%s /* %s */ = {' % (self.buildall_configurations[buildtype], buildtype)) @@ -2049,6 +2050,39 @@ class XCodeBackend(Backend): self.write_line('name = %s;' % buildtype) self.indent_level-=1 self.write_line('};') + + # Now finally targets. + for target_name, target in self.build.targets.items(): + for buildtype in self.buildtypes: + valid = self.buildconfmap[target_name][buildtype] + self.write_line('%s /* %s */ = {' % (self.buildall_configurations[buildtype], buildtype)) + self.indent_level+=1 + self.write_line('isa = XCBuildConfiguration;') + self.write_line('buildSettings = {') + self.indent_level += 1 + self.write_line('COMBINE_HIDPI_IMAGES = YES;') + self.write_line('EXECUTABLE_PREFIX = "%s";' % target.prefix) + self.write_line('EXECUTABLE_SUFFIX = "%s";' % target.suffix) + self.write_line('GCC_GENERATE_DEBUGGING_SYMBOLS = NO;') + self.write_line('GCC_INLINES_ARE_PRIVATE_EXTERN = NO;') + self.write_line('GCC_OPTIMIZATION_LEVEL = 0;') + self.write_line('GCC_PREPROCESSOR_DEFINITIONS = ("");') + self.write_line('GCC_SYMBOLS_PRIVATE_EXTERN = NO;') + self.write_line('INSTALL_PATH = "";') + self.write_line('LIBRARY_SEARCH_PATHS = "";') + self.write_line('OTHER_CFLAGS = " ";') + self.write_line('OTHER_LDFLAGS = " ";') + self.write_line('OTHER_REZFLAGS = "";') + self.write_line('PRODUCT_NAME = %s;' % target_name) + self.write_line('SECTORDER_FLAGS = "";') + self.write_line('SYMROOT = %s;' % self.environment.get_build_dir()) + self.write_line('USE_HEADERMAP = NO;') + self.write_line('WARNING_CFLAGS = ("-Wmost", "-Wno-four-char-constants", "-Wno-unknown-pragmas", );') + self.indent_level-=1 + self.write_line('};') + self.write_line('name = %s;' % buildtype) + self.indent_level-=1 + self.write_line('};') self.ofile.write('/* End XCBuildConfiguration section */\n') def generate_xc_configurationList(self): diff --git a/build.py b/build.py index 53c1e9a13..67a15a274 100644 --- a/build.py +++ b/build.py @@ -477,6 +477,8 @@ class GeneratedList(): class Executable(BuildTarget): def __init__(self, name, subdir, is_cross, sources, objects, environment, kwargs): super().__init__(name, subdir, is_cross, sources, objects, environment, kwargs) + self.prefix = '' + self.suffix = environment.get_exe_suffix() suffix = environment.get_exe_suffix() if suffix != '': self.filename = self.name + '.' + suffix