Project * Project::CreateProject(const char *projname, const char *target, int32 type, const char *path, bool create_folder) { BString name(projname), targetname(target); if (name.CountChars() < 1) name = "Untitled"; if (targetname.CountChars() < 1) name = "BeApp"; Project *newproj = new Project(name.String(),targetname.String()); newproj->SetTargetType(type); newproj->AddLocalInclude("."); newproj->AddSystemInclude("/boot/develop/headers/be"); newproj->AddSystemInclude("/boot/develop/headers/cpp"); newproj->AddSystemInclude("/boot/develop/headers/posix"); newproj->AddSystemInclude("/boot/home/config/include"); newproj->AddLibrary("/boot/develop/lib/x86/libroot.so"); newproj->AddGroup("Source Files"); switch (type) { case PROJECT_GUI: { newproj->AddLibrary("/boot/develop/lib/x86/libbe.so"); // Having to manually add this one is terribly annoying. :/ if (DetectPlatform() == PLATFORM_HAIKU_GCC4) newproj->AddLibrary("/boot/develop/lib/x86/libsupc++.so"); break; } case PROJECT_DRIVER: { newproj->AddLibrary("/boot/develop/lib/x86/_KERNEL_"); break; } case PROJECT_CONSOLE: case PROJECT_SHARED_LIB: case PROJECT_STATIC_LIB: default: break; } BPath projpath(path); if (create_folder) { projpath.Append(name.String()); if (!BEntry(projpath.Path()).Exists()); create_directory(projpath.Path(),0777); } BString filename(newproj->GetName()); filename << ".pld"; projpath.Append(filename.String()); newproj->Save(projpath.Path()); return newproj; }