Merge: ldflags for Android
[nit.git] / src / ffi / c.nit
index 6fba61a..495d4e6 100644 (file)
@@ -31,11 +31,13 @@ class CLanguage
        redef fun compile_module_block(block, ecc, mmodule)
        do
                if block.is_c_header then
-                       ecc.header_custom.add( block.location.as_line_pragma )
-                       ecc.header_custom.add( block.code )
+                       ecc.header_custom.add block.location.as_line_pragma
+                       ecc.header_custom.add "\n"
+                       ecc.header_custom.add block.code
                else if block.is_c_body then
-                       ecc.body_custom.add( block.location.as_line_pragma )
-                       ecc.body_impl.add( block.code )
+                       ecc.body_impl.add block.location.as_line_pragma
+                       ecc.body_impl.add "\n"
+                       ecc.body_impl.add block.code
                end
        end
 
@@ -68,12 +70,18 @@ redef class AExternCodeBlock
 end
 
 redef class Location
-       fun as_line_pragma: String do return "#line {line_start} \"{file.filename}\"\n"
+       fun as_line_pragma: String do return "#line {line_start-1} \"{file.filename}\"\n"
 end
 
 redef class MModule
-       var c_compiler_options = "" is writable
-       var c_linker_options = "" is writable
+       # FIXME make nullable the key of `cflags`, `ldflags` and `cppflags` when
+       # supported by the bootstrap
+
+       # Custom options for the C compiler (CFLAGS)
+       var cflags = new MultiHashMap[String, String]
+
+       # Custom options for the C linker (LDFLAGS)
+       var ldflags = new MultiHashMap[String, String]
 
        # Additional libraries needed for the compilation
        # Will be used with pkg-config