- 
    
 User Story
        
     - 
    Resolution: Duplicate
 - 
    
P4: Low
 - 
    None
 - 
    None
 - 
    None
 
The parse_build_log approach to parsing compiler messages is inherently flawed. Though it generally does a good job, it will always be prone to making minor mistakes, since the build log itself is ambiguous.
Here's an example:
    ../../include/QtCore/../../src/corelib/tools/qvector.h:72: note: initialized from here
    ../../include/QtCore/../../src/corelib/tools/qstring.h:907: note: initialized from here
    ../../include/QtCore/../../src/corelib/tools/qvector.h:72: note: initialized from here
    ../../include/QtCore/../../src/corelib/tools/qvector.h:279: note: initialized from here
    ../../include/QtCore/../../src/corelib/tools/qstring.h:907: note: initialized from here
    compiling util/qsystemtrayicon_qpa.cpp
    ../../include/QtCore/../../src/corelib/tools/qstring.h:907: note: initialized from here
    ../../include/QtCore/../../src/corelib/tools/qvector.h:72: note: initialized from here
    util/qsystemtrayicon_qpa.cpp: In member function 'void QSystemTrayIconPrivate::showMessage_sys(const QString&, const QString&, QSystemTrayIcon::MessageIcon, int)':
    util/qsystemtrayicon_qpa.cpp:142: error: incomplete type 'QApplication' used in nested name specifier
    util/qsystemtrayicon_qpa.cpp:142: error: incomplete type 'QStyle' used in nested name specifier
    util/qsystemtrayicon_qpa.cpp:145: error: incomplete type 'QApplication' used in nested name specifier
    util/qsystemtrayicon_qpa.cpp:145: error: incomplete type 'QStyle' used in nested name specifier
    util/qsystemtrayicon_qpa.cpp:148: error: incomplete type 'QApplication' used in nested name specifier
    util/qsystemtrayicon_qpa.cpp:148: error: incomplete type 'QStyle' used in nested name specifier
    util/qsystemtrayicon_qpa.cpp:140: warning: enumeration value 'NoIcon' not handled in switch
    util/qsystemtrayicon_qpa.cpp:135: warning: unused variable 'q'
    make[2]: *** [.obj/release-shared/qsystemtrayicon_qpa.o] Error 1
    make[1]: *** [sub-widgets-make_default-ordered] Error 2
    make: *** [module-qtbase] Error 2
Here, the script extracted the relevant details, but also various useless " note: initialized from here" messages. The script does this because it has no way of knowing which warning or error the "initialized from here" lines belong to; it has to guess, and in this case it guessed wrong.
It would be nice, though low priority, if we could make the parsing completely accurate. The only way I can think of to do this would be to modify or wrap the compilers, or implement some build system support, capturing and reformatting the compiler's output so that, when a particular file fails to compile, we know exactly what the compiler output for that file.
- duplicates
 - 
                    
COIN-16 parse_build_log.pl needs updates to capture more info
-         
 - Closed
 
 -