ENH: Teach Fortran compiler identification about the Portland Group compiler (PGI).

This commit is contained in:
Brad King 2008-05-16 17:50:24 -04:00
parent 10db44a81d
commit 0c6ba12efd
2 changed files with 11 additions and 5 deletions

View File

@ -8,6 +8,8 @@ PROGRAM CMakeFortranCompilerId
PRINT *, 'INFO:compiler[GNU]'
#elif defined(__IBM__) || defined(__IBMC__)
PRINT *, 'INFO:compiler[VisualAge]'
#elif defined(__PGI)
PRINT *, 'INFO:compiler[PGI]'
#elif defined(_COMPILER_VERSION)
PRINT *, 'INFO:compiler[MIPSpro]'
! This compiler is either not known or is too old to define an

View File

@ -533,12 +533,16 @@ bool cmFileCommand::HandleStringsCommand(std::vector<std::string> const& args)
(limit_input < 0 || static_cast<int>(fin.tellg()) < limit_input) &&
(c = fin.get(), fin))
{
if(c == '\0')
if(c == '\0' || c == '\f')
{
// A terminating null character has been found. Check if the
// current string matches the requirements. Since it was
// terminated by a null character, we require that the length be
// at least one no matter what the user specified.
// A terminating character has been found. In most cases it is
// a NULL character, but at least one compiler (Portland Group
// Fortran) produces binaries that terminate strings with a form
// feed.
// Check if the current string matches the requirements. Since
// it was terminated by a null character, we require that the
// length be at least one no matter what the user specified.
if(s.length() >= minlen && s.length() >= 1 &&
(!have_regex || regex.find(s.c_str())))
{