Fix Fortran .mod timestamps with Cray compiler

Commit 34e1ac24 (Create Fortran info variables for .mod behavior,
2010-11-12) incorrectly taught GetFortranModuleDirectory to return a
relative path.  We really want to use "." as the module directory only
as a workaround for compilers that do not do so by default.  Therefore
we need this default only when generating the compiler command line and
not when scanning dependencies.

Revert the previous change to GetFortranModuleDirectory and apply the
change only at one of its call sites.
This commit is contained in:
Brad King 2010-12-06 10:35:25 -05:00
parent 53e76c8f12
commit ab9ebb017e
1 changed files with 6 additions and 7 deletions

View File

@ -1723,8 +1723,6 @@ const char* cmMakefileTargetGenerator::GetFortranModuleDirectory()
this->Target->GetProperty("Fortran_MODULE_DIRECTORY");
const char* moddir_flag =
this->Makefile->GetDefinition("CMAKE_Fortran_MODDIR_FLAG");
const char* moddir_default =
this->Makefile->GetDefinition("CMAKE_Fortran_MODDIR_DEFAULT");
if(target_mod_dir && moddir_flag)
{
// Compute the full path to the module directory.
@ -1745,10 +1743,6 @@ const char* cmMakefileTargetGenerator::GetFortranModuleDirectory()
// Make sure the module output directory exists.
cmSystemTools::MakeDirectory(this->FortranModuleDirectory.c_str());
}
else if(moddir_default && moddir_flag)
{
this->FortranModuleDirectory = moddir_default;
}
this->FortranModuleDirectoryComputed = true;
}
@ -1774,7 +1768,12 @@ void cmMakefileTargetGenerator::AddFortranFlags(std::string& flags)
}
// Add a module output directory flag if necessary.
if(const char* mod_dir = this->GetFortranModuleDirectory())
const char* mod_dir = this->GetFortranModuleDirectory();
if(!mod_dir)
{
mod_dir = this->Makefile->GetDefinition("CMAKE_Fortran_MODDIR_DEFAULT");
}
if(mod_dir)
{
const char* moddir_flag =
this->Makefile->GetRequiredDefinition("CMAKE_Fortran_MODDIR_FLAG");