Revert "Use --sysroot when cross compiling."

This reverts commit de4da665d3.

This feature is not yet ready for release. It needs to be
merged with the CMAKE_OSX_SYSROOT feature.
This commit is contained in:
Stephen Kelly 2013-07-12 15:44:38 +02:00
parent 4dc515f8e1
commit 0416c94f64
10 changed files with 9 additions and 136 deletions

View File

@ -30,7 +30,6 @@ macro(__compiler_gnu lang)
endif()
set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC")
set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
set(CMAKE_SYSROOT_FLAG "--sysroot=")
# Older versions of gcc (< 4.5) contain a bug causing them to report a missing
# header file as a warning if depfiles are enabled, causing check_header_file

View File

@ -1884,8 +1884,6 @@ void cmComputeLinkInformation::GetRPath(std::vector<std::string>& runtimeDirs,
}
if(use_build_rpath || use_link_rpath)
{
std::string rootPath = this->Makefile->GetSafeDefinition("CMAKE_SYSROOT");
cmSystemTools::ConvertToUnixSlashes(rootPath);
std::vector<std::string> const& rdirs = this->GetRuntimeSearchPath();
for(std::vector<std::string>::const_iterator ri = rdirs.begin();
ri != rdirs.end(); ++ri)
@ -1909,14 +1907,9 @@ void cmComputeLinkInformation::GetRPath(std::vector<std::string>& runtimeDirs,
!cmSystemTools::IsSubDirectory(ri->c_str(), topSourceDir) &&
!cmSystemTools::IsSubDirectory(ri->c_str(), topBinaryDir))
{
std::string d = *ri;
if (d.find(rootPath) == 0)
if(emitted.insert(*ri).second)
{
d = d.substr(rootPath.size());
}
if(emitted.insert(d).second)
{
runtimeDirs.push_back(d);
runtimeDirs.push_back(*ri);
}
}
}

View File

@ -560,16 +560,6 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
false,
"Variables That Change Behavior");
cm->DefineProperty
("CMAKE_SYSROOT", cmProperty::VARIABLE,
"Path to pass to the compiler in the --sysroot flag.",
"The CMAKE_SYSROOT content is passed to the compiler in the --sysroot "
"flag, if supported. The path is also stripped from the RPATH if "
"necessary on installation. The CMAKE_SYSROOT is also used to prefix "
"paths searched by the find_* commands.",
false,
"Variables That Change Behavior");
cm->DefineProperty
("CMAKE_FIND_LIBRARY_PREFIXES", cmProperty::VARIABLE,
"Prefixes to prepend when looking for libraries.",

View File

@ -62,15 +62,10 @@ void cmFindCommon::GenerateDocumentation()
"The CMake variable CMAKE_FIND_ROOT_PATH specifies one or more "
"directories to be prepended to all other search directories. "
"This effectively \"re-roots\" the entire search under given locations. "
"By default it is empty. "
"The variable CMAKE_SYSROOT can also be used to specify exactly one "
"directory to use as a prefix. Setting CMAKE_SYSROOT also has other "
"effects. See the documentation for that variable for more. "
"These are especially useful when "
"By default it is empty. It is especially useful when "
"cross-compiling to point to the root directory of the "
"target environment and CMake will search there too. By default at first "
"the CMAKE_SYSROOT directory is searched, then the directories listed in "
"CMAKE_FIND_ROOT_PATH and then the non-rooted "
"the directories listed in CMAKE_FIND_ROOT_PATH and then the non-rooted "
"directories will be searched. "
"The default behavior can be adjusted by setting "
"CMAKE_FIND_ROOT_PATH_MODE_XXX. This behavior can be manually "
@ -192,27 +187,16 @@ void cmFindCommon::RerootPaths(std::vector<std::string>& paths)
{
return;
}
const char* sysroot =
this->Makefile->GetDefinition("CMAKE_SYSROOT");
const char* rootPath =
this->Makefile->GetDefinition("CMAKE_FIND_ROOT_PATH");
const bool noSysroot = !sysroot || !*sysroot;
const bool noRootPath = !rootPath || !*rootPath;
if(noSysroot && noRootPath)
if((rootPath == 0) || (strlen(rootPath) == 0))
{
return;
}
// Construct the list of path roots with no trailing slashes.
std::vector<std::string> roots;
if (sysroot)
{
roots.push_back(sysroot);
}
if (rootPath)
{
cmSystemTools::ExpandListArgument(rootPath, roots);
}
cmSystemTools::ExpandListArgument(rootPath, roots);
for(std::vector<std::string>::iterator ri = roots.begin();
ri != roots.end(); ++ri)
{

View File

@ -1467,8 +1467,6 @@ void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs,
return;
}
std::string rootPath = this->Makefile->GetSafeDefinition("CMAKE_SYSROOT");
std::vector<std::string> implicitDirs;
// Load implicit include directories for this language.
std::string impDirVar = "CMAKE_";
@ -1481,9 +1479,7 @@ void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs,
for(std::vector<std::string>::const_iterator i = impDirVec.begin();
i != impDirVec.end(); ++i)
{
std::string d = rootPath + *i;
cmSystemTools::ConvertToUnixSlashes(d);
emitted.insert(d);
emitted.insert(*i);
if (!stripImplicitInclDirs)
{
implicitDirs.push_back(*i);

View File

@ -365,22 +365,6 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
vars.TargetVersionMajor = targetVersionMajor.c_str();
vars.TargetVersionMinor = targetVersionMinor.c_str();
if (const char *rootPath =
this->Makefile->GetDefinition("CMAKE_SYSROOT"))
{
if (*rootPath)
{
if (const char *sysrootFlag =
this->Makefile->GetDefinition("CMAKE_SYSROOT_FLAG"))
{
flags += " ";
flags += sysrootFlag;
flags += this->LocalGenerator->EscapeForShell(rootPath);
flags += " ";
}
}
}
vars.LinkLibraries = linkLibs.c_str();
vars.Flags = flags.c_str();
vars.LinkFlags = linkFlags.c_str();

View File

@ -589,26 +589,6 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
cmLocalGenerator::SHELL);
vars.ObjectDir = objdir.c_str();
vars.Target = targetOutPathReal.c_str();
if(this->Target->GetType() == cmTarget::SHARED_LIBRARY)
{
if (const char *rootPath =
this->Makefile->GetSafeDefinition("CMAKE_SYSROOT"))
{
if (*rootPath)
{
if (const char *sysrootFlag =
this->Makefile->GetDefinition("CMAKE_SYSROOT_FLAG"))
{
linkFlags += " ";
linkFlags += sysrootFlag;
linkFlags += this->LocalGenerator->EscapeForShell(rootPath);
linkFlags += " ";
}
}
}
}
vars.LinkLibraries = linkLibs.c_str();
vars.ObjectsQuoted = buildObjs.c_str();
if (this->Target->HasSOName(this->ConfigName))

View File

@ -644,23 +644,6 @@ cmMakefileTargetGenerator
cmLocalGenerator::START_OUTPUT,
cmLocalGenerator::SHELL);
vars.ObjectDir = objectDir.c_str();
if (const char *rootPath =
this->Makefile->GetSafeDefinition("CMAKE_SYSROOT"))
{
if (*rootPath)
{
if (const char *sysrootFlag =
this->Makefile->GetDefinition("CMAKE_SYSROOT_FLAG"))
{
flags += " ";
flags += sysrootFlag;
flags += this->LocalGenerator->EscapeForShell(rootPath);
flags += " ";
}
}
}
vars.Flags = flags.c_str();
std::string definesString = "$(";

View File

@ -224,27 +224,7 @@ cmNinjaNormalTargetGenerator
vars.TargetVersionMajor = targetVersionMajor.c_str();
vars.TargetVersionMinor = targetVersionMinor.c_str();
std::string flags = "$FLAGS";
if (const char *rootPath =
this->GetMakefile()->GetSafeDefinition("CMAKE_SYSROOT"))
{
if (*rootPath)
{
if (const char *sysrootFlag =
this->GetMakefile()->GetDefinition("CMAKE_SYSROOT_FLAG"))
{
flags += " ";
flags += sysrootFlag;
flags += this->GetLocalGenerator()->EscapeForShell(rootPath);
flags += " ";
}
}
}
vars.Flags = flags.c_str();
vars.Flags = "$FLAGS";
vars.LinkFlags = "$LINK_FLAGS";
std::string langFlags;

View File

@ -384,23 +384,7 @@ cmNinjaTargetGenerator
cmSystemTools::ReplaceString(depFlagsStr, "<CMAKE_C_COMPILER>",
mf->GetDefinition("CMAKE_C_COMPILER"));
flags += " " + depFlagsStr;
if (const char *rootPath =
this->Makefile->GetSafeDefinition("CMAKE_SYSROOT"))
{
if (*rootPath)
{
if (const char *sysrootFlag =
this->Makefile->GetDefinition("CMAKE_SYSROOT_FLAG"))
{
flags += " ";
flags += sysrootFlag;
flags += this->LocalGenerator->EscapeForShell(rootPath);
flags += " ";
}
}
}
}
}
vars.Flags = flags.c_str();