nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch
2021-10-15 03:56:09 +03:00

61 lines
2.2 KiB
Diff

diff --git a/src/cpp/core/libclang/LibClang.cpp b/src/cpp/core/libclang/LibClang.cpp
index 1186f3a..58e8cc7 100644
--- a/src/cpp/core/libclang/LibClang.cpp
+++ b/src/cpp/core/libclang/LibClang.cpp
@@ -58,7 +58,7 @@ std::vector<std::string> defaultCompileArgs(LibraryVersion version)
// we need to add in the associated libclang headers as
// they are not discovered / used by default during compilation
- FilePath llvmPath = s_libraryPath.getParent().getParent();
+ FilePath llvmPath("@libclang@");
boost::format fmt("%1%/lib/clang/%2%/include");
fmt % llvmPath.getAbsolutePath() % version.asString();
std::string includePath = fmt.str();
@@ -70,46 +70,7 @@ std::vector<std::string> defaultCompileArgs(LibraryVersion version)
std::vector<std::string> systemClangVersions()
{
- std::vector<std::string> clangVersions;
-
-#if defined(__APPLE__)
- // NOTE: the version of libclang.dylib bundled with Xcode
- // doesn't seem to work well when loaded as a library
- // (there seems to be extra orchestration required to get
- // include paths set up; easier to just depend on command
- // line tools since we request their installation in other
- // contexts as well)
- clangVersions = {
- "/Library/Developer/CommandLineTools/usr/lib/libclang.dylib"
- };
-#elif defined(__unix__)
- // default set of versions
- clangVersions = {
- "/usr/lib/libclang.so",
- "/usr/lib/llvm/libclang.so",
- "/usr/lib64/libclang.so",
- "/usr/lib64/llvm/libclang.so",
- };
-
- // iterate through the set of available 'llvm' directories
- for (const char* prefix : {"/usr/lib", "/usr/lib64"})
- {
- FilePath prefixPath(prefix);
- if (!prefixPath.exists())
- continue;
-
- std::vector<FilePath> directories;
- Error error = prefixPath.getChildren(directories);
- if (error)
- LOG_ERROR(error);
-
- // generate a path for each 'llvm' directory
- for (const FilePath& path : directories)
- if (path.getFilename().find("llvm") == 0)
- clangVersions.push_back(path.completePath("lib/libclang.so.1").getAbsolutePath());
- }
-#endif
-
+ std::vector<std::string> clangVersions = { "@libclang.so@" };
return clangVersions;
}