79{
80 static std::vector<std::string> includes;
81
82 if (includes.empty()) {
83#ifdef MAYAFLUX_PLATFORM_WINDOWS
84 auto msvc_includes = get_msvc_includes();
85 includes.insert(includes.end(), msvc_includes.begin(), msvc_includes.end());
86
87 auto sdk_includes = get_windows_sdk_includes();
88 includes.insert(includes.end(), sdk_includes.begin(), sdk_includes.end());
89#endif
90
92 includes.insert(includes.end(), clang_includes.begin(), clang_includes.end());
93
94#ifdef MAYAFLUX_PLATFORM_MACOS
95 std::string xcode_includes = SystemConfig::get_xcode_system_includes();
96 if (!xcode_includes.empty()) {
97 includes.push_back(xcode_includes);
98 }
99
100 std::string homebrew_includes = "/opt/homebrew/include";
101 if (fs::exists(homebrew_includes)) {
102 includes.push_back(homebrew_includes);
103 }
104#endif
105 }
106
107 return includes;
108}