8
8
9
9
#include " Haiku.h"
10
10
#include " CommonArgs.h"
11
+ #include " clang/Config/config.h"
12
+ #include " llvm/Support/Path.h"
11
13
12
14
using namespace clang ::driver;
13
15
using namespace clang ::driver::toolchains;
@@ -21,6 +23,70 @@ Haiku::Haiku(const Driver &D, const llvm::Triple& Triple, const ArgList &Args)
21
23
22
24
}
23
25
26
+ void Haiku::AddClangSystemIncludeArgs (const llvm::opt::ArgList &DriverArgs,
27
+ llvm::opt::ArgStringList &CC1Args) const {
28
+ const Driver &D = getDriver ();
29
+
30
+ if (DriverArgs.hasArg (options::OPT_nostdinc))
31
+ return ;
32
+
33
+ if (!DriverArgs.hasArg (options::OPT_nobuiltininc)) {
34
+ SmallString<128 > Dir (D.ResourceDir );
35
+ llvm::sys::path::append (Dir, " include" );
36
+ addSystemInclude (DriverArgs, CC1Args, Dir.str ());
37
+ }
38
+
39
+ if (DriverArgs.hasArg (options::OPT_nostdlibinc))
40
+ return ;
41
+
42
+ // Add dirs specified via 'configure --with-c-include-dirs'.
43
+ StringRef CIncludeDirs (C_INCLUDE_DIRS);
44
+ if (!CIncludeDirs.empty ()) {
45
+ SmallVector<StringRef, 5 > dirs;
46
+ CIncludeDirs.split (dirs, " :" );
47
+ for (StringRef dir : dirs) {
48
+ StringRef Prefix =
49
+ llvm::sys::path::is_absolute (dir) ? StringRef (D.SysRoot ) : " " ;
50
+ addExternCSystemInclude (DriverArgs, CC1Args, Prefix + dir);
51
+ }
52
+ return ;
53
+ }
54
+
55
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/non-packaged/develop/headers" );
56
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os" );
57
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/app" );
58
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/device" );
59
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/drivers" );
60
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/game" );
61
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/interface" );
62
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/kernel" );
63
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/locale" );
64
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/mail" );
65
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/media" );
66
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/midi" );
67
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/midi2" );
68
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/net" );
69
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/opengl" );
70
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/storage" );
71
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/support" );
72
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/translation" );
73
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/add-ons/graphics" );
74
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/add-ons/input_server" );
75
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/add-ons/mail_daemon" );
76
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/add-ons/registrar" );
77
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/add-ons/screen_saver" );
78
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/add-ons/tracker" );
79
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/be_apps/Deskbar" );
80
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/be_apps/NetPositive" );
81
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/os/be_apps/Tracker" );
82
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/3rdparty" );
83
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/bsd" );
84
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/glibc" );
85
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/gnu" );
86
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers/posix" );
87
+ addSystemInclude (DriverArgs, CC1Args, D.SysRoot + " /boot/system/develop/headers" );
88
+ }
89
+
24
90
void Haiku::addLibCxxIncludePaths (const llvm::opt::ArgList &DriverArgs,
25
91
llvm::opt::ArgStringList &CC1Args) const {
26
92
addSystemInclude (DriverArgs, CC1Args,
0 commit comments