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)
|
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||||
cmXcodeVersionParser parser;
|
cmXcodeVersionParser parser;
|
||||||
if (cmSystemTools::FileExists(
|
std::string versionFile;
|
||||||
"/Applications/Xcode.app/Contents/version.plist"))
|
{
|
||||||
|
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
|
parser.ParseFile
|
||||||
("/Applications/Xcode.app/Contents/version.plist");
|
("/Applications/Xcode.app/Contents/version.plist");
|
||||||
|
|
Loading…
Reference in New Issue