OK, I tried it. Code::Blocks compiles well without precompiled headers (that surprised me), only the wxSmith plugin needs "some" patches.
Here we go:
$ svn diff src/plugins/contrib/wxSmith/
Index: src/plugins/contrib/wxSmith/wxsmithwizard.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxsmithwizard.cpp (revision 1629)
+++ src/plugins/contrib/wxSmith/wxsmithwizard.cpp (working copy)
@@ -1,6 +1,8 @@
#include "wxsheaders.h"
#include "wxsmithwizard.h"
#include "wxswizard.h"
+#include <configmanager.h>
+#include <licenses.h>
wxSmithWizard::wxSmithWizard()
{
Index: src/plugins/contrib/wxSmith/wxscoder.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxscoder.cpp (revision 1629)
+++ src/plugins/contrib/wxSmith/wxscoder.cpp (working copy)
@@ -3,6 +3,7 @@
#include <manager.h>
#include <editormanager.h>
+#include <configmanager.h>
#include <messagemanager.h>
#include <wx/ffile.h>
Index: src/plugins/contrib/wxSmith/wxsmithmime.h
===================================================================
--- src/plugins/contrib/wxSmith/wxsmithmime.h (revision 1629)
+++ src/plugins/contrib/wxSmith/wxsmithmime.h (working copy)
@@ -1,13 +1,15 @@
#ifndef WXSMITHMIME_H
#define WXSMITHMIME_H
+#include <cbplugin.h>
+
/** Helper plugin dealing with mime types */
class wxSmithMime : public cbMimePlugin
Index: src/plugins/contrib/wxSmith/wxswizard.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxswizard.cpp (revision 1629)
+++ src/plugins/contrib/wxSmith/wxswizard.cpp (working copy)
@@ -4,6 +4,7 @@
#include <wx/filename.h>
#include <cbproject.h>
#include <projectmanager.h>
+#include <configmanager.h>
#include <manager.h>
#include <messagemanager.h>
#include <customvars.h>
Index: src/plugins/contrib/wxSmith/wxsmithmime.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxsmithmime.cpp (revision 1629)
+++ src/plugins/contrib/wxSmith/wxsmithmime.cpp (working copy)
@@ -5,6 +5,8 @@
#include "resources/wxswindowres.h"
#include "wxsextresmanager.h"
+#include <licenses.h>
+
wxSmithMime::wxSmithMime()
{
m_PluginInfo.name = _("wxSmithMime");
Index: src/plugins/contrib/wxSmith/wxsglobals.h
===================================================================
--- src/plugins/contrib/wxSmith/wxsglobals.h (revision 1629)
+++ src/plugins/contrib/wxSmith/wxsglobals.h (working copy)
@@ -5,6 +5,7 @@
#include <wx/settings.h>
#include <wx/scrolwin.h>
#include <wx/propgrid/propgrid.h>
+#include <wx/propgrid/propdev.h>
#include <wx/propgrid/advprops.h>
#include <cbplugin.h>
Index: src/plugins/contrib/wxSmith/wxsmith.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxsmith.cpp (revision 1629)
+++ src/plugins/contrib/wxSmith/wxsmith.cpp (working copy)
@@ -17,6 +17,7 @@
#include <wx/notebook.h>
#include <wx/sashwin.h>
#include <configmanager.h>
+#include <cbexception.h>
#include "wxsmith.h"
#include "wxswindoweditor.h"
Index: src/plugins/contrib/wxSmith/wxsdragwindow.cpp
===================================================================
--- src/plugins/contrib/wxSmith/wxsdragwindow.cpp (revision 1629)
+++ src/plugins/contrib/wxSmith/wxsdragwindow.cpp (working copy)
@@ -4,6 +4,8 @@
#include <wx/dcclient.h>
#include <wx/dcbuffer.h>
+#include <configmanager.h>
+
#include "widget.h"
#include "wxsevent.h"
#include "wxsmith.h"
And please - remove the macros from wxsglobals.h. It's really disturbing when the compiler tells you errors in code that seems not to exist. For example it couldn't find the declaration for ReadInt in one of the patched files (I think it was wxsdragwindow.cpp) - but ReadInt was never used (directly) in this file. Even more problematic is: The macros for the ConfigManager look like normal variables and not like macros. Without the "Find declaration of... " function it would probably never have found this error.