Commit c4b3c84b3f

Andrew Kelley <andrew@ziglang.org>
2020-04-02 21:59:48
zig cc: support -F and -framework
1 parent e4edc6d
src/main.cpp
@@ -748,6 +748,12 @@ static int main0(int argc, char **argv) {
                         clang_argv.append(it.other_args_ptr[i]);
                     }
                     break;
+                case Stage2ClangArgFrameworkDir:
+                    framework_dirs.append(it.only_arg);
+                    break;
+                case Stage2ClangArgFramework:
+                    frameworks.append(it.only_arg);
+                    break;
             }
         }
         // Parse linker args
src/stage2.h
@@ -350,6 +350,8 @@ enum Stage2ClangArg {
     Stage2ClangArgLibDir,
     Stage2ClangArgMCpu,
     Stage2ClangArgDepFile,
+    Stage2ClangArgFrameworkDir,
+    Stage2ClangArgFramework,
 };
 
 // ABI warning
src-self-hosted/clang_options_data.zig
@@ -2989,7 +2989,14 @@ sepd1("fprofile-remapping-file"),
 flagpd1("fprofile-sample-accurate"),
 flagpd1("fprofile-sample-use"),
 flagpd1("fprofile-use"),
-sepd1("framework"),
+.{
+    .name = "framework",
+    .syntax = .separate,
+    .zig_equivalent = .framework,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = false,
+},
 flagpd1("freciprocal-math"),
 flagpd1("frecord-command-line"),
 flagpd1("ffree-form"),
@@ -5670,7 +5677,14 @@ jspd1("MT"),
 jspd1("A"),
 jspd1("B"),
 jspd1("D"),
-jspd1("F"),
+.{
+    .name = "F",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .framework_dir,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = false,
+},
 jspd1("G"),
 jspd1("I"),
 jspd1("J"),
@@ -5715,7 +5729,7 @@ joinpd1("Z"),
 .{
     .name = "F",
     .syntax = .joined_or_separate,
-    .zig_equivalent = .other,
+    .zig_equivalent = .framework_dir,
     .pd1 = true,
     .pd2 = false,
     .psl = true,
src-self-hosted/stage2.zig
@@ -1291,6 +1291,8 @@ pub const ClangArgIterator = extern struct {
         lib_dir,
         mcpu,
         dep_file,
+        framework_dir,
+        framework,
     };
 
     const Args = struct {
tools/update_clang_options.zig
@@ -206,6 +206,14 @@ const known_options = [_]KnownOpt{
         .name = "MF",
         .ident = "dep_file",
     },
+    .{
+        .name = "F",
+        .ident = "framework_dir",
+    },
+    .{
+        .name = "framework",
+        .ident = "framework",
+    },
 };
 
 const blacklisted_options = [_][]const u8{};