danalbert created this revision. danalbert added a reviewer: srhines. Android toolchains include their headers and libraries in a self-contained directory within the toolchain.
Repository: rC Clang https://reviews.llvm.org/D45291 Files: lib/Driver/ToolChains/Linux.cpp Index: lib/Driver/ToolChains/Linux.cpp =================================================================== --- lib/Driver/ToolChains/Linux.cpp +++ lib/Driver/ToolChains/Linux.cpp @@ -413,6 +413,15 @@ if (!getDriver().SysRoot.empty()) return getDriver().SysRoot; + if (getTriple().isAndroid()) { + // Android toolchains typically include a sysroot at ../sysroot relative to + // the clang binary. + const StringRef ClangDir = getDriver().getInstalledDir(); + std::string AndroidSysRootPath = (ClangDir + "/../sysroot").str(); + if (getVFS().exists(AndroidSysRootPath)) + return AndroidSysRootPath; + } + if (!GCCInstallation.isValid() || !tools::isMipsArch(getTriple().getArch())) return std::string();
Index: lib/Driver/ToolChains/Linux.cpp =================================================================== --- lib/Driver/ToolChains/Linux.cpp +++ lib/Driver/ToolChains/Linux.cpp @@ -413,6 +413,15 @@ if (!getDriver().SysRoot.empty()) return getDriver().SysRoot; + if (getTriple().isAndroid()) { + // Android toolchains typically include a sysroot at ../sysroot relative to + // the clang binary. + const StringRef ClangDir = getDriver().getInstalledDir(); + std::string AndroidSysRootPath = (ClangDir + "/../sysroot").str(); + if (getVFS().exists(AndroidSysRootPath)) + return AndroidSysRootPath; + } + if (!GCCInstallation.isValid() || !tools::isMipsArch(getTriple().getArch())) return std::string();
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits