Forráskód Böngészése

Added ability to use -framework on MacOS

Zachary Pierson 8 éve
szülő
commit
3424b2badd
1 módosított fájl, 16 hozzáadás és 2 törlés
  1. 16 2
      src/main.c

+ 16 - 2
src/main.c

@@ -375,8 +375,22 @@ int main(int argc, char **argv) {
 	char lib_str_buf[1024] = {0};
 	for_array(i, ir_gen.module.foreign_library_paths) {
 		String lib = ir_gen.module.foreign_library_paths.e[i];
-		isize len = gb_snprintf(lib_str_buf, gb_size_of(lib_str_buf),
-		                        " -l%.*s ", LIT(lib));
+
+		// NOTE(zangent): Sometimes, you have to use -framework on MacOS.
+		//   This allows you to specify '-f' in a #foreign_system_library,
+		//   without having to implement any new syntax specifically for MacOS.
+		#if defined(GB_SYSTEM_OSX)
+			if(lib.len > 2 && lib.text[0] == '-' && lib.text[1] == 'f') {
+				isize len = gb_snprintf(lib_str_buf, gb_size_of(lib_str_buf),
+				                        " -framework %.*s ", (int)(lib.len) - 2, lib.text + 2);
+			} else {
+				isize len = gb_snprintf(lib_str_buf, gb_size_of(lib_str_buf),
+				                        " -l%.*s ", LIT(lib));
+			}
+		#else
+			isize len = gb_snprintf(lib_str_buf, gb_size_of(lib_str_buf),
+			                        " -l%.*s ", LIT(lib));
+		#endif
 		lib_str = gb_string_appendc(lib_str, lib_str_buf);
 	}