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:
Brad King 2011-09-01 10:52:51 -04:00
parent 5c0c635a09
commit 90efed6ee6
1 changed files with 22 additions and 0 deletions

View File

@ -582,6 +582,13 @@ cmGlobalXCodeGenerator::CreateXCodeSourceFile(cmLocalGenerator* lg,
{
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"));
// Add per-source definitions.
@ -1903,6 +1910,21 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
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.
std::string install_name_dir;
if(target.GetType() == cmTarget::SHARED_LIBRARY)