Browse Source

Fixed #357: Added CUDA support

merge-requests/365/head
eidheim 8 years ago
parent
commit
be6fc93683
  1. 1
      README.md
  2. 7
      src/compile_commands.cc
  3. 6
      src/source.cc
  4. 6
      src/usages_clang.cc

1
README.md

@ -29,6 +29,7 @@ towards libclang with speed, stability, and ease of use in mind.
* Highlighting of similar types (C++)
* Automated documentation search (C++)
* Go to declaration, implementation, methods and usages (C++)
* CUDA files are supported and parsed as C++
* Find symbol through Ctags
* Spell checking depending on file context
* Run shell commands within juCi++

7
src/compile_commands.cc

@ -127,12 +127,17 @@ std::vector<std::string> CompileCommands::get_arguments(const boost::filesystem:
extension!=".c")
arguments.emplace_back("-xc++");
if(extension.empty() || (1<extension.size() && extension[1]=='h') || extension==".tcc") {
if(extension.empty() || (1<extension.size() && extension[1]=='h') || extension==".tcc" || extension==".cuh") {
arguments.emplace_back("-Wno-pragma-once-outside-header");
arguments.emplace_back("-Wno-pragma-system-header-outside-header");
arguments.emplace_back("-Wno-include-next-outside-header");
}
if(extension==".cu" || extension==".cuh") {
arguments.emplace_back("-include");
arguments.emplace_back("cuda_runtime.h");
}
if(!build_path.empty()) {
arguments.emplace_back("-working-directory");
arguments.emplace_back(build_path.string());

6
src/source.cc

@ -62,6 +62,12 @@ Glib::RefPtr<Gsv::Language> Source::guess_language(const boost::filesystem::path
}
}
}
else if(language->get_id()=="cuda") {
if(file_path.extension()==".cuh")
language=language_manager->get_language("cpphdr");
else
language=language_manager->get_language("cpp");
}
return language;
}

6
src/usages_clang.cc

@ -545,7 +545,8 @@ Usages::Clang::PathSet Usages::Clang::find_paths(const boost::filesystem::path &
bool Usages::Clang::is_header(const boost::filesystem::path &path) {
auto ext = path.extension();
if(ext == ".h" || // c headers
ext == ".hh" || ext == ".hp" || ext == ".hpp" || ext == ".h++" || ext == ".tcc") // c++ headers
ext == ".hh" || ext == ".hp" || ext == ".hpp" || ext == ".h++" || ext == ".tcc" || // c++ headers
ext == ".cuh") // CUDA headers
return true;
else
return false;
@ -554,7 +555,8 @@ bool Usages::Clang::is_header(const boost::filesystem::path &path) {
bool Usages::Clang::is_source(const boost::filesystem::path &path) {
auto ext = path.extension();
if(ext == ".c" || // c sources
ext == ".cpp" || ext == ".cxx" || ext == ".cc" || ext == ".C" || ext == ".c++") // c++ sources
ext == ".cpp" || ext == ".cxx" || ext == ".cc" || ext == ".C" || ext == ".c++" || // c++ sources
ext == ".cu") // CUDA sources
return true;
else
return false;

Loading…
Cancel
Save