Jens: is it possible to show some message when the pkg-config expansion fails?
Probably checking the return code of pkg-config and printing all strerr text in the build log?
Very often I mistype the cflags/libs like cflag/lib or sometimes I type "-" instead of "--" in front of the option.
I think this should not be too hard.
I will look into it, later (possibly this evening or the weekend).
Here comes a patch to test:
Index: src/sdk/compilercommandgenerator.cpp
===================================================================
--- src/sdk/compilercommandgenerator.cpp (Revision 6328)
+++ src/sdk/compilercommandgenerator.cpp (Arbeitskopie)
@@ -948,15 +948,35 @@
#else
Manager::Get()->GetLogManager()->DebugLog(F(_T("Caching result of `%s`"), cmd.c_str()));
#endif
- wxArrayString output;
+ wxArrayString output, error;
if (platform::WindowsVersion() >= platform::winver_WindowsNT2000)
- wxExecute(_T("cmd /c ") + cmd, output, wxEXEC_NODISABLE);
+ wxExecute(_T("cmd /c ") + cmd, output, error, wxEXEC_NODISABLE);
else
- wxExecute(cmd, output, wxEXEC_NODISABLE);
- bt = GetStringFromArray(output, _T(" "));
- // add it in the cache
- m_Backticks[cmd] = bt;
- Manager::Get()->GetLogManager()->DebugLog(_T("Cached"));
+ wxExecute(cmd, output, error, wxEXEC_NODISABLE);
+ if(error.GetCount() > 0)
+ {
+ #if wxCHECK_VERSION(2, 9, 0)
+ Manager::Get()->GetLogManager()->DebugLogError(F(_T("Error running: %s"), cmd.wx_str()));
+ #else
+ Manager::Get()->GetLogManager()->DebugLogError(F(_T("Error running: %s"), cmd.c_str()));
+ #endif
+ Manager::Get()->GetLogManager()->DebugLogError(_T("Output is:"));
+ for(size_t i = 0; i < error.GetCount(); ++i)
+ {
+ #if wxCHECK_VERSION(2, 9, 0)
+ Manager::Get()->GetLogManager()->DebugLogError(F(_T("%s"), error[i].wx_str()));
+ #else
+ Manager::Get()->GetLogManager()->DebugLogError(F(_T("%s"), error[i].c_str()));
+ #endif
+ }
+ }
+ else
+ {
+ bt = GetStringFromArray(output, _T(" "));
+ // add it in the cache
+ m_Backticks[cmd] = bt;
+ Manager::Get()->GetLogManager()->DebugLog(_T("Cached"));
+ }
}
ret << bt << _T(' ');
str = str.substr(0, start) + bt + str.substr(end + 1, wxString::npos);
I also add it as attachement, otherwise, there might be errors with line-endings.
[attachment deleted by admin]