Browse Source

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.
Brad King 15 years ago
parent
commit
ab9ebb017e
1 changed files with 6 additions and 7 deletions
  1. 6 7
      Source/cmMakefileTargetGenerator.cxx

+ 6 - 7
Source/cmMakefileTargetGenerator.cxx

@@ -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");