Rely more heavily on .ccls

This commit is contained in:
Max Rietmann 2019-04-01 16:52:08 +02:00
parent 7bf2e8797b
commit d136012fab

View File

@ -51,6 +51,15 @@ using namespace clang;
using namespace llvm; using namespace llvm;
namespace ccls { namespace ccls {
template <typename Enumeration>
auto as_integer(Enumeration const value)
-> typename std::underlying_type<Enumeration>::type
{
return static_cast<typename std::underlying_type<Enumeration>::type>(value);
}
std::pair<LanguageId, bool> lookupExtension(std::string_view filename) { std::pair<LanguageId, bool> lookupExtension(std::string_view filename) {
using namespace clang::driver; using namespace clang::driver;
auto I = types::lookupTypeForExtension( auto I = types::lookupTypeForExtension(
@ -136,6 +145,7 @@ struct ProjectProcessor {
args.push_back(arg); args.push_back(arg);
} }
} }
entry.args = args; entry.args = args;
GetSearchDirs(entry); GetSearchDirs(entry);
} }
@ -330,12 +340,6 @@ int ComputeGuessScore(std::string_view a, std::string_view b) {
} // namespace } // namespace
template <typename Enumeration>
auto as_integer(Enumeration const value)
-> typename std::underlying_type<Enumeration>::type
{
return static_cast<typename std::underlying_type<Enumeration>::type>(value);
}
void Project::LoadDirectory(const std::string &root, Project::Folder &folder) { void Project::LoadDirectory(const std::string &root, Project::Folder &folder) {
SmallString<256> CDBDir, Path, StdinPath; SmallString<256> CDBDir, Path, StdinPath;
@ -432,9 +436,10 @@ void Project::LoadDirectory(const std::string &root, Project::Folder &folder) {
// %cu --cuda-gpu-arch=sm_70 --cuda-path=/usr/local/cuda-9.2/ --std=c++11 // %cu --cuda-gpu-arch=sm_70 --cuda-path=/usr/local/cuda-9.2/ --std=c++11
if(lang == LanguageId::CUDA) { if(lang == LanguageId::CUDA) {
entry.args.push_back(Intern("/usr/bin/clang-7")); entry.args.push_back(Intern("/usr/bin/clang-7"));
entry.args.push_back(Intern("--cuda-gpu-arch=sm_70")); // entry.args.push_back(Intern("--cuda-gpu-arch=sm_70"));
entry.args.push_back(Intern("--cuda-path=/usr/local/cuda-9.2/")); // entry.args.push_back(Intern("--cuda-path=/usr/local/cuda-9.2/"));
entry.args.push_back(Intern("--std=c++11")); // entry.args.push_back(Intern("-I/home/max/dev/cuml/thirdparty/cuml/googletest/googletest/include"));
// entry.args.push_back(Intern("--std=c++11"));
entry.args.push_back(Intern("-c")); entry.args.push_back(Intern("-c"));
entry.args.push_back(Intern(entry.filename)); entry.args.push_back(Intern(entry.filename));
LOG_S(INFO) << entry.filename << ": (CUDA) clang-7 -c filename"; LOG_S(INFO) << entry.filename << ": (CUDA) clang-7 -c filename";
@ -451,6 +456,10 @@ void Project::LoadDirectory(const std::string &root, Project::Folder &folder) {
LOG_S(INFO) << entry.filename << ": (CUDA) Adding Arg: " << arg; LOG_S(INFO) << entry.filename << ": (CUDA) Adding Arg: " << arg;
entry.args.push_back(Intern(arg)); entry.args.push_back(Intern(arg));
} }
else if(arg.find("-std=") != std::string::npos) {
LOG_S(INFO) << entry.filename << ": (CUDA) Adding Arg: " << arg;
entry.args.push_back(Intern(arg));
}
else { else {
LOG_S(INFO) << entry.filename << ": (CUDA) Ignoring arg: " << arg; LOG_S(INFO) << entry.filename << ": (CUDA) Ignoring arg: " << arg;
} }