diff --git a/build/bakefiles/common.bkl b/build/bakefiles/common.bkl
index 06b45c3bdb..0222f6dee1 100644
--- a/build/bakefiles/common.bkl
+++ b/build/bakefiles/common.bkl
@@ -278,10 +278,6 @@
/MACHINE:AMD64
/MACHINE:IA64
-
- WX_CPU_AMD64
- WX_CPU_IA64
-
$(DEBUGINFO)
@@ -305,7 +301,6 @@
$(LINK_TARGET_CPU)
- $(RES_TARGET_CPU)
@@ -400,8 +395,27 @@ $(TAB)copy "$(DOLLAR)(InputPath)" $(SETUPHDIR)\wx\setup.h
+
+
+
+ msw/genrcdefs.h
+
+
+ $(_COMPILER)
+ cl
+
+
+Creating $(SETUPHDIR)\wx\msw\rcdefs.h
+
+"$(SETUPHDIR)\wx\msw\rcdefs.h" : "$(DOLLAR)(SOURCE)" "$(DOLLAR)(SETUPHDIR)\wx\msw"
+$(TAB)$(VC_COMPILER) /EP /nologo "$(DOLLAR)(InputPath)" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
+
+
+
+
+
@@ -445,11 +459,9 @@ $(TAB)copy "$(DOLLAR)(InputPath)" $(SETUPHDIR)\wx\setup.h
$(THREAD_DEFINE)
$(UNICODE_DEFINE)
$(MSLU_DEFINE)
-
+ $(SETUPHDIR)
$(TOP_SRCDIR)include
$(LIBDIRNAME)
- $(SETUPHDIR)
max
-wcd=549
@@ -575,6 +587,14 @@ $(TAB)copy "$(DOLLAR)(InputPath)" $(SETUPHDIR)\wx\setup.h
+
+
+
+ $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME)
+
+
+
+
$(wxwin.mkDllName(wxid))
$(WXDLLNAME)
@@ -587,9 +607,10 @@ $(TAB)copy "$(DOLLAR)(InputPath)" $(SETUPHDIR)\wx\setup.h
WXDLLNAME=$(WXDLLNAME)
-
- $(TOP_SRCDIR)include
-
+
+ $(TOP_SRCDIR)include
+ $(RCDEFDIR)
+
$(WXTOPDIR)src/msw/version.rc
diff --git a/build/bakefiles/common_samples.bkl b/build/bakefiles/common_samples.bkl
index 3e46c6a7c8..a211e9dcf6 100644
--- a/build/bakefiles/common_samples.bkl
+++ b/build/bakefiles/common_samples.bkl
@@ -34,9 +34,10 @@
$(SRCDIR)/$(WXTOPDIR)samples
-
- $(TOP_SRCDIR)include
-
+
+ $(TOP_SRCDIR)include
+ $(RCDEFDIR)
+
$(WXTOPDIR)samples/sample.rc
diff --git a/build/bakefiles/config.bkl b/build/bakefiles/config.bkl
index 766bc23de6..5a4c687fd3 100644
--- a/build/bakefiles/config.bkl
+++ b/build/bakefiles/config.bkl
@@ -5,6 +5,29 @@
0
+
+
+ cpp32 -Sr -oCON
+
+
+ $(DOLLAR)(CC) -E
+
+
+ $(DOLLAR)(CC) /EP /nologo
+
+
+ $(DOLLAR)(CC) -p
+
+
+
+
+
+
+
+
+ libdir_setup_wx
+ $(SETUPHDIR)/wx/msw
+
+
+
+
+ setup_h
+ libdir_setup_wx_msw
+ $(SRCDIR)/include/wx/msw/genrcdefs.h
+
+
+ $(DOLLAR)(CPP) "$(SRCDIR)\include\wx\msw\genrcdefs.h" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
+
+
+
+
+
+
+
diff --git a/configure.in b/configure.in
index 453cd144e3..50e6d1d09f 100644
--- a/configure.in
+++ b/configure.in
@@ -7291,6 +7291,23 @@ AC_PROG_MAKE_SET
AC_CONFIG_HEADERS([lib/wx/include/${TOOLCHAIN_FULLNAME}/wx/setup.h:setup.h.in])
+if test "$USE_WIN32" = 1; then
+ AC_CONFIG_COMMANDS(
+ [
+ rcdefs.h
+ ],
+ [
+ mkdir -p $outdir &&
+ $CPP $infile | sed 's/^# *[1-9].*//;s/^ *//;/./,/^$/!d' > $outdir/rcdefs.h
+ ],
+ [
+ CPP="$CPP"
+ infile="$srcdir/include/wx/msw/genrcdefs.h"
+ outdir="lib/wx/include/$TOOLCHAIN_FULLNAME/wx/msw"
+ ]
+ )
+fi
+
AC_CONFIG_FILES([ lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.in ],
[ chmod +x lib/wx/config/${TOOLCHAIN_FULLNAME} ],
[ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
diff --git a/include/wx/defs.h b/include/wx/defs.h
index 98b08ffe3d..9c7e9dfb35 100644
--- a/include/wx/defs.h
+++ b/include/wx/defs.h
@@ -2880,5 +2880,32 @@ typedef struct window_t *WXWidget;
private: \
classname& operator=(const classname&);
+/* --------------------------------------------------------------------------- */
+/* If a manifest is being automatically generated, add common controls 6 to it */
+/* --------------------------------------------------------------------------- */
+
+#if (!defined wxUSE_NO_MANIFEST || wxUSE_NO_MANIFEST == 0 ) && \
+ ( defined _MSC_FULL_VER && _MSC_FULL_VER >= 140040130 )
+
+#define WX_CC_MANIFEST(cpu) \
+ "/manifestdependency:\"type='win32' \
+ name='Microsoft.Windows.Common-Controls' \
+ version='6.0.0.0' \
+ processorArchitecture='"cpu"' \
+ publicKeyToken='6595b64144ccf1df' \
+ language='*'\""
+
+#if defined _M_IX86
+ #pragma comment(linker, WX_CC_MANIFEST("x86"))
+#elif defined _M_X64
+ #pragma comment(linker, WX_CC_MANIFEST("amd64"))
+#elif defined _M_IA64
+ #pragma comment(linker, WX_CC_MANIFEST("ia64"))
+#else
+ #pragma comment(linker, WX_CC_MANIFEST("*"))
+#endif
+
+#endif /* !wxUSE_NO_MANIFEST && _MSC_FULL_VER >= 140040130 */
+
#endif
/* _WX_DEFS_H_ */
diff --git a/include/wx/msw/genrcdefs.h b/include/wx/msw/genrcdefs.h
new file mode 100755
index 0000000000..4dfb6c1c0a
--- /dev/null
+++ b/include/wx/msw/genrcdefs.h
@@ -0,0 +1,43 @@
+/*
+ * Name: wx/msw/genrcdefs.h
+ * Purpose: Emit preprocessor symbols into rcdefs.h for resource compiler
+ * Author: Mike Wetherell
+ * RCS-ID: $Id$
+ * Copyright: (c) 2005 Mike Wetherell
+ * Licence: wxWindows licence
+ */
+
+#define EMIT(line) line
+
+EMIT(#ifndef _WX_RCDEFS_H)
+EMIT(#define _WX_RCDEFS_H)
+
+#ifdef _MSC_FULL_VER
+EMIT(#define WX_MSC_FULL_VER _MSC_FULL_VER)
+#endif
+
+#ifdef _M_AMD64
+EMIT(#define WX_CPU_AMD64)
+#endif
+
+#ifdef _M_ARM
+EMIT(#define WX_CPU_ARM)
+#endif
+
+#ifdef _M_IA64
+EMIT(#define WX_CPU_IA64)
+#endif
+
+#if defined _M_IX86 || defined _X86_
+EMIT(#define WX_CPU_X86)
+#endif
+
+#ifdef _M_PPC
+EMIT(#define WX_CPU_PPC)
+#endif
+
+#ifdef _M_SH
+EMIT(#define WX_CPU_SH)
+#endif
+
+EMIT(#endif)
diff --git a/include/wx/msw/rcdefs.h b/include/wx/msw/rcdefs.h
new file mode 100644
index 0000000000..c5ef7d1f62
--- /dev/null
+++ b/include/wx/msw/rcdefs.h
@@ -0,0 +1,15 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/msw/rcdefs.h
+// Purpose: Fallback for the generated rcdefs.h under the lib directory
+// Author: Mike Wetherell
+// RCS-ID: $Id$
+// Copyright: (c) 2005 Mike Wetherell
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_RCDEFS_H
+#define _WX_RCDEFS_H
+
+#define WX_CPU_X86
+
+#endif
diff --git a/include/wx/msw/wx.rc b/include/wx/msw/wx.rc
index 3931d5cf06..51d5c5de3f 100644
--- a/include/wx/msw/wx.rc
+++ b/include/wx/msw/wx.rc
@@ -20,6 +20,8 @@
#include "wx/msw/wince/wince.rc"
#endif
+#include "wx/msw/rcdefs.h"
+
//////////////////////////////////////////////////////////////////////////////
//
// This is the MDI Window menu
@@ -92,13 +94,15 @@ wxBITMAP_STD_COLOURS BITMAP "wx/msw/colours.bmp"
//
#if !defined(wxUSE_NO_MANIFEST) || (wxUSE_NO_MANIFEST == 0)
+#if !defined(WX_MSC_FULL_VER) || WX_MSC_FULL_VER < 140040130
-#ifdef WX_CPU_AMD64
+#if defined(WX_CPU_AMD64)
1 24 "wx/msw/amd64.manifest"
#elif defined(WX_CPU_IA64)
1 24 "wx/msw/ia64.manifest"
-#elif !defined(__WIN64__)
+#elif defined(WX_CPU_X86)
1 24 "wx/msw/wx.manifest"
#endif
+#endif // !defined(WX_MSC_FULL_VER) || WX_MSC_FULL_VER < 140040130
#endif // !defined(wxUSE_NO_MANIFEST) || (wxUSE_NO_MANIFEST == 0)