diff --git a/src-self-hosted/clang_options_data.zig b/src-self-hosted/clang_options_data.zig index c7113afa4d74b262adb98f5d19475406d7dbe186..0b3a3b9416dacbe32c819efa18f0e80da26489c3 100644 --- a/src-self-hosted/clang_options_data.zig +++ b/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, diff --git a/src-self-hosted/stage2.zig b/src-self-hosted/stage2.zig index 9f829b0152479f6af0f4e2f89a066dd158f13980..43e0a8ffcaacb69663a5f792156813da4283e2bb 100644 --- a/src-self-hosted/stage2.zig +++ b/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 { diff --git a/src/main.cpp b/src/main.cpp index 5436145bc34d315ea2223c55347b93c342eb8e08..d46947628ae703eba267619879c8c86a4e0b5ec4 100644 --- a/src/main.cpp +++ b/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 diff --git a/src/stage2.h b/src/stage2.h index c2a7bdc2f5efde80ad20db8ce3eda81ee9e8d7c2..02b33419f6ddeaa42c3320db739596669c411bd4 100644 --- a/src/stage2.h +++ b/src/stage2.h @@ -350,6 +350,8 @@ enum Stage2ClangArg { Stage2ClangArgLibDir, Stage2ClangArgMCpu, Stage2ClangArgDepFile, + Stage2ClangArgFrameworkDir, + Stage2ClangArgFramework, }; // ABI warning diff --git a/tools/update_clang_options.zig b/tools/update_clang_options.zig index d6192c93cf65d4fa95d9ff538772e4322fa0006d..dd46f72d4cae72304f44b702b893d70a704eeaf9 100644 --- a/tools/update_clang_options.zig +++ b/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{};