summaryrefslogtreecommitdiffstats
path: root/Source/cmDependsFortran.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2005-03-02 14:02:36 (GMT)
committerBrad King <brad.king@kitware.com>2005-03-02 14:02:36 (GMT)
commitba6f07b10c5dcf238d50953e203e769ee87f1856 (patch)
tree9cc9c0c551bd02a306492c4acbc9d4c7ec3971c2 /Source/cmDependsFortran.cxx
parent749b80c7ed4a27c33917ea1613b1bfc4d8570fbf (diff)
downloadCMake-ba6f07b10c5dcf238d50953e203e769ee87f1856.zip
CMake-ba6f07b10c5dcf238d50953e203e769ee87f1856.tar.gz
CMake-ba6f07b10c5dcf238d50953e203e769ee87f1856.tar.bz2
BUG: We need to test the compiler for the case of the mod file names. For now this is a temporary hack to use upper case on SGI and lower case on Sun.
Diffstat (limited to 'Source/cmDependsFortran.cxx')
-rw-r--r--Source/cmDependsFortran.cxx14
1 files changed, 14 insertions, 0 deletions
diff --git a/Source/cmDependsFortran.cxx b/Source/cmDependsFortran.cxx
index 9dd5310..e3c2a2e 100644
--- a/Source/cmDependsFortran.cxx
+++ b/Source/cmDependsFortran.cxx
@@ -23,6 +23,10 @@
#include <assert.h>
#include <stack>
+// TODO: Test compiler for the case of the mod file. Some always
+// use lower case and some always use upper case. I do not know if any
+// use the case from the source code.
+
//----------------------------------------------------------------------------
// Parser methods not included in generated interface.
@@ -139,7 +143,12 @@ bool cmDependsFortran::WriteDependencies(std::ostream& os)
// Require only modules not provided in the same source.
if(parser.Provides.find(*i) == parser.Provides.end())
{
+ // Temporary hack for Fortran: choose case depending on platform
+#if defined(__sgi)
+ std::string m = cmSystemTools::UpperCase(*i);
+#else
std::string m = cmSystemTools::LowerCase(*i);
+#endif
os << m_TargetFile.c_str() << ": " << m.c_str() << ".mod.stamp"
<< std::endl;
os << m_TargetFile.c_str() << ".requires: " << i->c_str() << ".mod.proxy"
@@ -173,7 +182,12 @@ bool cmDependsFortran::WriteDependencies(std::ostream& os)
for(std::set<cmStdString>::const_iterator i = parser.Provides.begin();
i != parser.Provides.end(); ++i)
{
+ // Temporary hack for Fortran: choose case depending on platform
+#if defined(__sgi)
+ std::string m = cmSystemTools::UpperCase(*i);
+#else
std::string m = cmSystemTools::LowerCase(*i);
+#endif
os << "\t@$(CMAKE_COMMAND) -E copy_if_different "
<< m.c_str() << ".mod " << m.c_str() << ".mod.stamp\n";
}