phase 2 of wxWidgets 2.9 build

From: Peter Geoghegan <peter(dot)geoghegan86(at)gmail(dot)com>
To: pgadmin-hackers(at)postgresql(dot)org
Subject: phase 2 of wxWidgets 2.9 build
Date: 2011-02-02 02:41:52
Message-ID: AANLkTimyX-tLZwcUXuo9hr54Bu3=Pi=u5_-zQdhjB=iH@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

I'm glad to see my work to date on wxWidgets 2.9 compatibility has
been committed.

We have 4 (and now, I think, 2) problems:

1. The Flex/Bison headers problem. This is a bit of a mystery. I
e-mailed the Flex users list, and I was informed that neither Flex nor
Bison directly use headers at any point. The "additional C/C++
includes", which has header includes and some additional PgScript
copyright stuff, that is originally in pgsGrammar.yy but doesn't make
it into parser.tab.hh, even though the existing tree parser.tab.hh
does have those includes.

Just fixing that by hacking parser.tab.hh and putting in the includes
alone doesn't make things work again - additional files need to be
hacked, but it can be done.

My new approach to logging variadics has done away with the need to
change the grammar at all, because only logging needed to be changed
there through const wxChar* casts. Someone is going to have to fix
this at some stage if they ever want to change the grammar, but it
need not hold up 2.9 support. It is now a separate, unrelated problem.

2. The wx 2.9 logging problem. My problem here was that I'm wasn't
sure how I should be extending wx logging functionality.

I see that SysLog.cpp has lots of definitions of logger functions like
wxLogSql() . That file (as it exists in master) won't compile against
2.9 currently. Through some indirection with macros, our logger calls
are basically a call to:

#define wxMAKE_LOGGER(level) \
wxLogger(wxLOG_##level, __FILE__, __LINE__, __WXFUNCTION__, wxLOG_COMPONENT)

// this macro generates the expression which logs whatever follows it in
// parentheses at the level specified as argument
#define wxDO_LOG(level) wxMAKE_LOGGER(level).Log

wxLogger is a class defined in log.h

Anyway, I think that the problem has been resolved by #ifdef'ing the
definitions away for 2.9.

3. Linker problems on 2.9 + OGL as they exist on my system. I think
these can be resolved by playing around with the OGL bakefile.

4. The OGL Problem itself. The task of talking to contributors and
getting them to re-licence is ongoing. I suppose we'll have to
integrate OGL, and build it as part of our own build system. Should I
get started on this in anticipation of the re-licensing going ahead?
It would be nice if our Makefile just invoked a separate
makefile/build system for OGL, so OGL remained self-contained and
could easily be used by third parties.

--
Regards,
Peter Geoghegan

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2011-02-02 08:06:33 Re: phase 2 of wxWidgets 2.9 build
Previous Message Guillaume Lelarge 2011-02-01 18:00:40 Re: pgAdmin III: synonym support for EDBAS functions/procedures