Merge: doc: fixed some typos and other misc. corrections
[nit.git] / src / platform / xcode_templates.nit
index 19c04be..62768a2 100644 (file)
@@ -85,6 +85,9 @@ class PbxFile
        # Path to `self`
        var path: String
 
+       # Compiler flags for this source file
+       var cflags: String = "" is writable
+
        # UUID for build elements
        private var build_uuid: String = sys.pbx_uuid_generator.next_uuid is lazy
 
@@ -104,15 +107,22 @@ class PbxFile
        end
 
        # PBX description of this file
-       private fun description: Writable do return """
+       private fun description: Writable
+       do
+               var extra = ""
+               var cflags = cflags
+               if not cflags.is_empty then extra = "\nsettings = \{COMPILER_FLAGS = \"{cflags}\"; \};"
+
+               return """
                {{{ref_uuid}}} /* {{{doc}}} */ = {
                        isa = PBXFileReference;
                        fileEncoding = 4;
                        lastKnownFileType = {{{file_type}}};
-                       path = {{{path}}};
-                       sourceTree = "<group>";
+                       path = '{{{path}}}';
+                       sourceTree = "<group>";{{{extra}}}
                        };
 """
+       end
 
        private fun add_to_project(project: PbxprojectTemplate)
        do
@@ -139,6 +149,9 @@ class PbxprojectTemplate
        # Name of the project
        var name: String
 
+       # OTHER_CFLAGS
+       var cflags = "" is writable
+
        # All body/implementation source files to be compiled
        private var source_files = new Array[PbxFile]
 
@@ -418,6 +431,7 @@ class PbxprojectTemplate
                                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                                INFOPLIST_FILE = {{{name}}}/Info.plist;
                                LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+                               OTHER_CFLAGS = "{{{cflags.escape_to_c}}}";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Debug;
@@ -428,6 +442,7 @@ class PbxprojectTemplate
                                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                                INFOPLIST_FILE = {{{name}}}/Info.plist;
                                LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+                               OTHER_CFLAGS = "{{{cflags.escape_to_c}}}";
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        };
                        name = Release;