[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-bugs
Subject:    [Bug 132601] New: SunStudio C++ compiler not detected in Compiler
From:       Paul Fee <pfee () talk21 ! com>
Date:       2006-08-18 16:41:59
Message-ID: 20060818184157.132601.pfee () talk21 ! com
[Download RAW message or body]

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=132601         
           Summary: SunStudio C++ compiler not detected in Compiler Output
                    view.
           Product: kdevelop
           Version: 3.3.4
          Platform: Ubuntu Packages
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: wishlist
          Priority: NOR
         Component: general
        AssignedTo: kdevelop-bugs kdevelop org
        ReportedBy: pfee talk21 com


Version:           3.3.4 (using KDE KDE 3.5.4)
Installed from:    Ubuntu Packages
OS:                Linux

When building a project, compiler output is parsed in the OutputView.  In \
particular the lines corresponding to compiling, linking etc. are detected.

This works by means of regular expressions, the code is visible in:
parts/outputviews/makeactionfilter.cpp
MakeActionFilter::actionFormats()

Various well known compiler expressions are understood (e.g. cc, gcc, c++). \
However Sun's SunStudio C++ compiler goes by the name CC, hence it is not \
detected.

Adding CC to the expressions allows output from the SunStudio compiler to \
be parsed correctly.

I've patched this method on my own system as follows.  A more generic fix \
would be to allow the user to enter the name of their compiler, however \
this simple change works for me.

==================

// returns an array of ActionFormat
MakeActionFilter::ActionFormat* MakeActionFilter::actionFormats()
{
    static ActionFormat formats[] = {
        ActionFormat( i18n("compiling"), 1, 2, \
"(gcc|CC|cc|distcc|c\\+\\+|g\\+\\+)\\S* (?:\\S* )*-c (?:\\S* \
                )*`[^`]*`(?:[^/\\s;]*/)*([^/\\s;]+)"),
        ActionFormat( i18n("compiling"), 1, 2, \
"(gcc|CC|cc|distcc|c\\+\\+|g\\+\\+)\\S* (?:\\S* )*-c (?:\\S* )*-o (?:\\S* \
                )(?:[^/;]*/)*([^/\\s;]+)"),
        ActionFormat( i18n("compiling"), 1, 2, \
"(gcc|CC|cc|distcc|c\\+\\+|g\\+\\+)\\S* (?:\\S* )*-c (?:\\S* \
                )*(?:[^/]*/)*([^/\\s;]*)"),
        ActionFormat( i18n("compiling"), "unknown", "^compiling (.*)", 1 ),

                //moc and uic
        ActionFormat( i18n("generating"), 1, 2, \
"/(moc|uic)\\b.*\\s-o\\s([^\\s;]+)"),

        ActionFormat( i18n("linking"), "libtool", \
"/bin/sh\\s.*libtool.*--mode=link\\s.*\\s-o\\s([^\\s;]+)", 1 ),  //can \
                distcc link too ?
        ActionFormat( i18n("linking"), 1, 2, \
"(gcc|CC|cc|c\\+\\+|g\\+\\+)\\S* (?:\\S* )*-o ([^\\s;]+)"),

        ActionFormat( i18n("creating"), "", \
                "/(?:bin/sh\\s.*mkinstalldirs).*\\s([^\\s;]+)", 1 ),
        ActionFormat( i18n("installing"), "", \
"/(?:usr/bin/install|bin/sh\\s.*mkinstalldirs|bin/sh\\s.*libtool.*--mode=install).*\\s([^\\s;]+)", \
                1 ),
        ActionFormat( i18n("generating"), "dcopidl", "dcopidl .* > \
                ([^\\s;]+)", 1 ),
        ActionFormat( i18n("compiling"), "dcopidl2cpp", "dcopidl2cpp \
(?:\\S* )*([^\\s;]+)", 1 ),

        ActionFormat( QString::null, QString::null, 0, 0 )
    };

    return formats;
}

======================

Can we have "CC" be added as shown above.  Or even better allow user input \
of their compiler name, that would be useful for users with strange \
compiler names.  For example someone cross compiling for an embedded \
system.

Thanks,
Paul


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic