first : sdk_precomp.h -> sdk_common.h
Usage for including headers, should be something like this :
#ifdef CB_PRECOMP
#include "sdh.h" // precompiled header supported platform
#else
# include headers we need here and that are part of sdk.h (sdk_common.h)
#endif
# include headers we need here and that are NOT part of sdk.h (sdk_common.h)
CB_PRECOMP should be defined on the make file level or cbp level or should we include a special header for that , like sdk_common.h.
Note that sdk_common.h has different responsibilities now : in case of no precompiled headers (at all : so also no "WX_PRECOMP", causing an include of "#include <wx/wx.h>" and even always includes "#include <wx/wxprec.h>". This brings a whole lot of wx stuff in the current translation unit that will not be needed. It is better to explicitly specify what you need (that makes things clear) then to rely upon the fact that stuff might come in through some other deeply nested headers.
Seems in case of header definition (or undef) of CB_PRECOMP we need just a little header for that.
So something like this would be the template for including (usage in cpp files, don't use this in headers)
#include "cb_precomp_determining_header_goes_here"
#ifdef CB_PRECOMP
#include "sdh.h" // precompiled header supported platform
#else
# include headers we need here and that are part of sdk.h (sdk_common.h)
#endif
# include headers we need here and that are NOT part of sdk.h (sdk_common.h)