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.
This commit is contained in:
parent
2c061d5cc9
commit
e88bae77c3
|
@ -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");
|
||||
|
|
Loading…
Reference in New Issue