Skip to content
  • chuck cranor's avatar
    ParseImplicitIncludeInfo: add SunPro Fortran and PGI compiler, Cray fix · ef8f2376
    chuck cranor authored
    Add implicit include parser for PGI compiler ID.  PGI verbose output
    for CXX differs from C and Fortran, so CXX is broken out into its own
    case.  The C and Fortran compilers take "-YI,path" and "-Mnostdinc" to
    change or disable the builtin include path.  The last arg on the command
    line appears to override previous args (e.g. "-YI,path1 -YI,path2" will
    set the path to "path2" ... the previous "-YI,path1" gets undone).
    The CXX compiler verbose output reports with "-I" rather than "-stdinc"
    for the built in path.  In addition with CXX "-Mnostdinc" does not
    completely zero the include path (e.g. "#include <stdio.h>" still works
    with "-Mnostdinc"... "-I/usr/include" still shows up in the verbose output).
    
    Minor adjustments to get the SunPro parser to handle Fortran as well.
    
    Fixes for Cray compiler support (Modules/Compiler/Cray-{C,CXX}.cmake):
    The *_COMPILE_OPTION flags contain options like "-h c99,gnu" ...
    these options need to be in double quotes (they are currently not).
    Otherwise, cmake treats them as lists and tries to run the compiler
    with "-h;c99,gnu" and fails when it is "Detecting C compile features"...
    Also, the Cray-CXX.cmake contains "__compiler_cray(C)" instead of
    "__compiler_cray(CXX)" -- this error prevents the correct VERBOSE
    flags for CXX from being defined which prevents the implicit include
    parser from running.
    
    Add additional test cases for PGI and SunPro Fortran to the
    Tests/RunCMake/ParseImplicitIncludeInfo area.
    ef8f2376