ENH: add support for bundles
This commit is contained in:
parent
19ae75a934
commit
472c00e3a4
|
@ -901,14 +901,39 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case cmTarget::EXECUTABLE:
|
case cmTarget::EXECUTABLE:
|
||||||
|
{
|
||||||
|
std::string symRoot;
|
||||||
if(m_ExecutableOutputPath.size())
|
if(m_ExecutableOutputPath.size())
|
||||||
|
{
|
||||||
|
std::string path = m_ExecutableOutputPath;
|
||||||
|
if(target.GetPropertyAsBool("MACOSX_BUNDLE"))
|
||||||
|
{
|
||||||
|
path += target.GetName();
|
||||||
|
path += ".app/Contents/MacOS/";
|
||||||
|
}
|
||||||
|
symRoot = path;
|
||||||
|
}
|
||||||
|
fileType = "compiled.mach-o.executable";
|
||||||
|
if(target.GetPropertyAsBool("MACOSX_BUNDLE"))
|
||||||
|
{
|
||||||
|
if(symRoot.size() == 0)
|
||||||
|
{
|
||||||
|
symRoot = target.GetName();
|
||||||
|
symRoot += ".app/Contents/MacOS/";
|
||||||
|
}
|
||||||
|
productType = "com.apple.product-type.tool";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
productType = "com.apple.product-type.tool";
|
||||||
|
}
|
||||||
|
if(symRoot.size())
|
||||||
{
|
{
|
||||||
buildSettings->AddAttribute("SYMROOT",
|
buildSettings->AddAttribute("SYMROOT",
|
||||||
this->CreateString
|
this->CreateString
|
||||||
(m_ExecutableOutputPath.c_str()));
|
(symRoot.c_str()));
|
||||||
}
|
}
|
||||||
fileType = "compiled.mach-o.executable";
|
}
|
||||||
productType = "com.apple.product-type.tool";
|
|
||||||
break;
|
break;
|
||||||
case cmTarget::UTILITY:
|
case cmTarget::UTILITY:
|
||||||
|
|
||||||
|
@ -1139,7 +1164,7 @@ void cmGlobalXCodeGenerator::AddLinkLibrary(cmXCodeObject* target,
|
||||||
cmXCodeObject* ldflags = settings->GetObject("OTHER_LDFLAGS");
|
cmXCodeObject* ldflags = settings->GetObject("OTHER_LDFLAGS");
|
||||||
std::string link = ldflags->GetString();
|
std::string link = ldflags->GetString();
|
||||||
cmSystemTools::ReplaceString(link, "\"", "");
|
cmSystemTools::ReplaceString(link, "\"", "");
|
||||||
cmsys::RegularExpression reg("^([ \t]*\\-[lWRB])|([ \t]*\\-framework)|(\\${)|([ \t]*\\-pthread)|([ \t]*`)");
|
cmsys::RegularExpression reg("^([ \t]*\\-[lLWRB])|([ \t]*\\-framework)|(\\${)|([ \t]*\\-pthread)|([ \t]*`)");
|
||||||
// if the library is not already in the form required by the compiler
|
// if the library is not already in the form required by the compiler
|
||||||
// add a -l infront of the name
|
// add a -l infront of the name
|
||||||
link += " ";
|
link += " ";
|
||||||
|
|
Loading…
Reference in New Issue