зеркало из https://github.com/microsoft/clang-1.git
Revert "hack in my new variables for GCC"
Very sorry for the accidental commit of WIP code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132745 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
45cad4adb8
Коммит
169dd31c6c
|
@ -54,18 +54,6 @@ endif()
|
|||
set(CLANG_RESOURCE_DIR "" CACHE STRING
|
||||
"Relative directory from the Clang binary to its resource files.")
|
||||
|
||||
set(CLANG_GCC_INSTALL_ROOT "" CACHE STRING
|
||||
"The GCC install root to use for headers and libraries.")
|
||||
|
||||
set(CLANG_GCC_LIB_DIR "/lib/gcc" CACHE STRING
|
||||
"The directory relative to the install root for GCC libraries.")
|
||||
|
||||
set(CLANG_GCC_ARCH "" CACHE STRING
|
||||
"The architecture string of the GCC installation.")
|
||||
|
||||
set(CLANG_GCC_VERSION "" CACHE STRING
|
||||
"The version of the GCC installation.")
|
||||
|
||||
set(C_INCLUDE_DIRS "" CACHE STRING
|
||||
"Colon separated list of directories clang will search for headers.")
|
||||
|
||||
|
|
|
@ -1,18 +1,6 @@
|
|||
/* Relative directory for resource files */
|
||||
#define CLANG_RESOURCE_DIR "${CLANG_RESOURCE_DIR}"
|
||||
|
||||
/* GCC install root */
|
||||
#define CLANG_GCC_INSTALL_ROOT "${CLANG_GCC_INSTALL_ROOT}"
|
||||
|
||||
/* GCC library directory, relative to the installation root */
|
||||
#define CLANG_GCC_LIB_DIR "${CLANG_GCC_LIB_DIR}"
|
||||
|
||||
/* GCC architecture */
|
||||
#define CLANG_GCC_ARCH "${CLANG_GCC_ARCH}"
|
||||
|
||||
/* GCC version */
|
||||
#define CLANG_GCC_VERSION "${CLANG_GCC_VERSION}"
|
||||
|
||||
/* 32 bit multilib directory. */
|
||||
#define CXX_INCLUDE_32BIT_DIR "${CXX_INCLUDE_32BIT_DIR}"
|
||||
|
||||
|
|
|
@ -1334,27 +1334,31 @@ static LinuxDistro DetectLinuxDistro(llvm::Triple::ArchType Arch) {
|
|||
}
|
||||
|
||||
static std::string findGCCBaseLibDir(const std::string &GccTriple) {
|
||||
// Check for an explicit configure-time version of GCC.
|
||||
llvm::SmallString<32> GCCVersion(CLANG_GCC_VERSION);
|
||||
if (GCCVersion != "") {
|
||||
// Read the other variables if we have a specific GCC version requested at
|
||||
// configuration time. We provide defaults for them if missing though.
|
||||
llvm::SmallString<128> InstallRoot(CLANG_GCC_INSTALL_ROOT);
|
||||
if (InstallRoot == "") InstallRoot = "/usr";
|
||||
llvm::SmallString<32> GCCLibDir(CLANG_GCC_LIB_DIR);
|
||||
if (GCCLibDir == "") GCCLibDir = "/lib/gcc";
|
||||
llvm::SmallString<32> GCCArch(CLANG_GCC_ARCH);
|
||||
if (GCCArch == "") GCCArch = GccTriple;
|
||||
|
||||
InstallRoot += GCCLibDir;
|
||||
InstallRoot += "/";
|
||||
InstallRoot += GCCArch;
|
||||
InstallRoot += "/";
|
||||
InstallRoot += GCCVersion;
|
||||
return InstallRoot.str();
|
||||
// FIXME: Using CXX_INCLUDE_ROOT is here is a bit of a hack, but
|
||||
// avoids adding yet another option to configure/cmake.
|
||||
// It would probably be cleaner to break it in two variables
|
||||
// CXX_GCC_ROOT with just /foo/bar
|
||||
// CXX_GCC_VER with 4.5.2
|
||||
// Then we would have
|
||||
// CXX_INCLUDE_ROOT = CXX_GCC_ROOT/include/c++/CXX_GCC_VER
|
||||
// and this function would return
|
||||
// CXX_GCC_ROOT/lib/gcc/CXX_INCLUDE_ARCH/CXX_GCC_VER
|
||||
llvm::SmallString<128> CxxIncludeRoot(CXX_INCLUDE_ROOT);
|
||||
if (CxxIncludeRoot != "") {
|
||||
// This is of the form /foo/bar/include/c++/4.5.2/
|
||||
if (CxxIncludeRoot.back() == '/')
|
||||
llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the /
|
||||
llvm::StringRef Version = llvm::sys::path::filename(CxxIncludeRoot);
|
||||
llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the version
|
||||
llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the c++
|
||||
llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the include
|
||||
std::string ret(CxxIncludeRoot.c_str());
|
||||
ret.append("/lib/gcc/");
|
||||
ret.append(CXX_INCLUDE_ARCH);
|
||||
ret.append("/");
|
||||
ret.append(Version);
|
||||
return ret;
|
||||
}
|
||||
|
||||
// Otherwise, attempt to detect a system GCC installation.
|
||||
static const char* GccVersions[] = {"4.6.0", "4.6",
|
||||
"4.5.2", "4.5.1", "4.5",
|
||||
"4.4.5", "4.4.4", "4.4.3", "4.4",
|
||||
|
|
Загрузка…
Ссылка в новой задаче