Commit c196b3ca authored by Brad King's avatar Brad King Committed by Kitware Robot
Browse files

Merge topic 'gfortran-compressed-modules'

d90be200 Fortran: Add support for GNU >= 4.9 compressed modules (#14975)
parents 24853afa d90be200
......@@ -765,7 +765,11 @@ bool cmDependsFortran::ModulesDiffer(const char* modFile,
const char* compilerId)
{
/*
gnu:
gnu >= 4.9:
A mod file is an ascii file compressed with gzip.
Compiling twice produces identical modules.
gnu < 4.9:
A mod file is an ascii file.
<bar.mod>
FORTRAN module created from /path/to/foo.f90 on Sun Dec 30 22:47:58 2007
......@@ -820,6 +824,14 @@ bool cmDependsFortran::ModulesDiffer(const char* modFile,
* are left behind.
*/
if (strcmp(compilerId, "GNU") == 0 )
{
// GNU Fortran 4.9 and later compress .mod files with gzip
// but also do not include a date so we can fall through to
// compare them without skipping any prefix.
unsigned char hdr[2];
bool okay = finModFile.read(reinterpret_cast<char*>(hdr), 2)? true:false;
finModFile.seekg(0);
if(!(okay && hdr[0] == 0x1f && hdr[1] == 0x8b))
{
const char seq[1] = {'\n'};
const int seqlen = 1;
......@@ -838,6 +850,7 @@ bool cmDependsFortran::ModulesDiffer(const char* modFile,
return true;
}
}
}
else if(strcmp(compilerId, "Intel") == 0)
{
const char seq[2] = {'\n', '\0'};
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment