Xcode: Honor Fortran_FORMAT target and source file property
Convert the target property to the IFORT_LANG_SRCFMT build setting. Convert the source property to the per-source COMPILER_FLAGS setting.
This commit is contained in:
parent
5c0c635a09
commit
90efed6ee6
@ -582,6 +582,13 @@ cmGlobalXCodeGenerator::CreateXCodeSourceFile(cmLocalGenerator* lg,
|
|||||||
{
|
{
|
||||||
lg->AppendFlags(flags, cmtarget.GetProperty("COMPILE_FLAGS"));
|
lg->AppendFlags(flags, cmtarget.GetProperty("COMPILE_FLAGS"));
|
||||||
}
|
}
|
||||||
|
const char* srcfmt = sf->GetProperty("Fortran_FORMAT");
|
||||||
|
switch(this->CurrentLocalGenerator->GetFortranFormat(srcfmt))
|
||||||
|
{
|
||||||
|
case cmLocalGenerator::FortranFormatFixed: flags="-fixed "+flags; break;
|
||||||
|
case cmLocalGenerator::FortranFormatFree: flags="-free "+flags; break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
lg->AppendFlags(flags, sf->GetProperty("COMPILE_FLAGS"));
|
lg->AppendFlags(flags, sf->GetProperty("COMPILE_FLAGS"));
|
||||||
|
|
||||||
// Add per-source definitions.
|
// Add per-source definitions.
|
||||||
@ -1903,6 +1910,21 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
|
|||||||
this->CreateString(flags.c_str()));
|
this->CreateString(flags.c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add Fortran source format attribute if property is set.
|
||||||
|
const char* format = 0;
|
||||||
|
const char* tgtfmt = target.GetProperty("Fortran_FORMAT");
|
||||||
|
switch(this->CurrentLocalGenerator->GetFortranFormat(tgtfmt))
|
||||||
|
{
|
||||||
|
case cmLocalGenerator::FortranFormatFixed: format = "fixed"; break;
|
||||||
|
case cmLocalGenerator::FortranFormatFree: format = "free"; break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
if(format)
|
||||||
|
{
|
||||||
|
buildSettings->AddAttribute("IFORT_LANG_SRCFMT",
|
||||||
|
this->CreateString(format));
|
||||||
|
}
|
||||||
|
|
||||||
// Create the INSTALL_PATH attribute.
|
// Create the INSTALL_PATH attribute.
|
||||||
std::string install_name_dir;
|
std::string install_name_dir;
|
||||||
if(target.GetType() == cmTarget::SHARED_LIBRARY)
|
if(target.GetType() == cmTarget::SHARED_LIBRARY)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user