[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