From c8d58531558f19af910b11a9b0d2c481587b9f87 Mon Sep 17 00:00:00 2001 From: Michael Wetherell Date: Tue, 8 Nov 2005 22:49:46 +0000 Subject: [PATCH] Add rcdefs.h and support for automatic manifests on Windows git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36133 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- build/bakefiles/common.bkl | 43 ++++++++++++++++++++++-------- build/bakefiles/common_samples.bkl | 7 ++--- build/bakefiles/config.bkl | 23 ++++++++++++++++ build/bakefiles/files.bkl | 1 + build/bakefiles/wx.bkl | 34 ++++++++++++++++++++++- configure.in | 17 ++++++++++++ include/wx/defs.h | 27 +++++++++++++++++++ include/wx/msw/genrcdefs.h | 43 ++++++++++++++++++++++++++++++ include/wx/msw/rcdefs.h | 15 +++++++++++ include/wx/msw/wx.rc | 8 ++++-- 10 files changed, 201 insertions(+), 17 deletions(-) create mode 100755 include/wx/msw/genrcdefs.h create mode 100644 include/wx/msw/rcdefs.h 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 - @@ -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) + + + + 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)