Commit e88bae77 authored by Brad King's avatar Brad King

Xcode: Run xcode-select to find Xcode version file (#13463)

Multiple versions of Xcode may be installed in different locations.
Run "xcode-select --print-path" to detect the active Xcode location
and parse its Contents/version.plist file.  Note that the Xcode.app
directory name may vary in developer versions.
parent 2c061d5c
......@@ -136,8 +136,23 @@ cmGlobalGenerator* cmGlobalXCodeGenerator::New()
{
#if defined(CMAKE_BUILD_WITH_CMAKE)
cmXcodeVersionParser parser;
if (cmSystemTools::FileExists(
"/Applications/Xcode.app/Contents/version.plist"))
std::string versionFile;
{
std::string out;
std::string::size_type pos;
if(cmSystemTools::RunSingleCommand("xcode-select --print-path", &out, 0, 0,
cmSystemTools::OUTPUT_NONE) &&
(pos = out.find(".app/"), pos != out.npos))
{
versionFile = out.substr(0, pos+5)+"Contents/version.plist";
}
}
if(!versionFile.empty() && cmSystemTools::FileExists(versionFile.c_str()))
{
parser.ParseFile(versionFile.c_str());
}
else if (cmSystemTools::FileExists(
"/Applications/Xcode.app/Contents/version.plist"))
{
parser.ParseFile
("/Applications/Xcode.app/Contents/version.plist");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment