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
This commit is contained in:
Michael Wetherell 2005-11-08 22:49:46 +00:00
parent 4c4863dbe7
commit c8d5853155
10 changed files with 201 additions and 17 deletions

View File

@ -278,10 +278,6 @@
<if cond="TARGET_CPU=='AMD64'">/MACHINE:AMD64</if>
<if cond="TARGET_CPU=='IA64'">/MACHINE:IA64</if>
</set>
<set var="RES_TARGET_CPU">
<if cond="TARGET_CPU=='AMD64'">WX_CPU_AMD64</if>
<if cond="TARGET_CPU=='IA64'">WX_CPU_IA64</if>
</set>
<template id="common_settings">
<debug-info>$(DEBUGINFO)</debug-info>
@ -305,7 +301,6 @@
</if>
<if cond="FORMAT=='msvc'">
<ldflags>$(LINK_TARGET_CPU)</ldflags>
<res-define>$(RES_TARGET_CPU)</res-define>
</if>
</template>
@ -400,8 +395,27 @@ $(TAB)copy "$(DOLLAR)(InputPath)" $(SETUPHDIR)\wx\setup.h
</if>
</define-tag>
<define-tag name="msvc-create-rcdefs-h" rules="dll,lib">
<if cond="IS_MSVC_PRJ">
<msvc-headers-setup-h>
msw/genrcdefs.h
</msvc-headers-setup-h>
<set var="VC_COMPILER">
<if cond="FORMAT=='msevc4prj'">$(_COMPILER)</if>
<if cond="FORMAT!='msevc4prj'">cl</if>
</set>
<set var="_custom_build_include_wx_msw_genrcdefs_h">
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"
</set>
</if>
</define-tag>
<template id="msvc_setup_h">
<msvc-copy-setup-h/>
<msvc-create-rcdefs-h/>
</template>
<!-- =============================================================== -->
@ -445,11 +459,9 @@ $(TAB)copy "$(DOLLAR)(InputPath)" $(SETUPHDIR)\wx\setup.h
<define>$(THREAD_DEFINE)</define>
<define>$(UNICODE_DEFINE)</define>
<define>$(MSLU_DEFINE)</define>
<!-- this include is added by configure, we need to put other
includes before it: -->
<include cond="FORMAT!='autoconf'">$(SETUPHDIR)</include>
<include cond="FORMAT!='autoconf'">$(TOP_SRCDIR)include</include>
<lib-path>$(LIBDIRNAME)</lib-path>
<include cond="FORMAT!='autoconf'">$(SETUPHDIR)</include>
<warnings>max</warnings>
<cppflags-watcom>
-wcd=549 <!-- 'sizeof' operand contains compiler generated information -->
@ -575,6 +587,14 @@ $(TAB)copy "$(DOLLAR)(InputPath)" $(SETUPHDIR)\wx\setup.h
</if>
</template>
<if cond="FORMAT=='autoconf'">
<set var="RCDEFDIR">
<if cond="TOOLKIT=='MSW'">
$(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME)
</if>
</set>
</if>
<template id="wx_dll_b" template="wx_lib_b">
<set var="WXDLLNAME">$(wxwin.mkDllName(wxid))</set>
<dllname>$(WXDLLNAME)</dllname>
@ -587,9 +607,10 @@ $(TAB)copy "$(DOLLAR)(InputPath)" $(SETUPHDIR)\wx\setup.h
<!-- version info resources: -->
<if cond="FORMAT not in ['rpmspec','wx24dsp']"> <!-- FIXME: fix for bkl-0.1.7 only, remove the cond later -->
<res-define>WXDLLNAME=$(WXDLLNAME)</res-define>
<res-include cond="FORMAT=='autoconf'">
$(TOP_SRCDIR)include
</res-include>
<if cond="FORMAT=='autoconf'">
<res-include>$(TOP_SRCDIR)include</res-include>
<res-include>$(RCDEFDIR)</res-include>
</if>
</if>
<win32-res>$(WXTOPDIR)src/msw/version.rc</win32-res>
</template>

View File

@ -34,9 +34,10 @@
<include>$(SRCDIR)/$(WXTOPDIR)samples</include>
<!-- this include is not added via <include> for autoconf, see
common.bkl: -->
<res-include cond="FORMAT=='autoconf'">
$(TOP_SRCDIR)include
</res-include>
<if cond="FORMAT=='autoconf'">
<res-include>$(TOP_SRCDIR)include</res-include>
<res-include>$(RCDEFDIR)</res-include>
</if>
<win32-res>$(WXTOPDIR)samples/sample.rc</win32-res>
<if cond="FORMAT=='autoconf'">

View File

@ -5,6 +5,29 @@
<set var="BUILDING_LIB" overwrite="0">0</set>
<set var="CPP_DEFAULT_VALUE">
<if cond="FORMAT=='borland'">
cpp32 -Sr -oCON
</if>
<if cond="FORMAT=='mingw'">
$(DOLLAR)(CC) -E
</if>
<if cond="FORMAT=='msvc'">
$(DOLLAR)(CC) /EP /nologo
</if>
<if cond="FORMAT=='watcom'">
$(DOLLAR)(CC) -p
</if>
</set>
<option name="CPP">
<default-value>
$(CPP_DEFAULT_VALUE)
</default-value>
<description>
The C preprocessor
</description>
</option>
<option name="SHARED">
<values>0,1</values>
<values-description>,DLL</values-description>

View File

@ -1407,6 +1407,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/msw/regconf.h
wx/msw/region.h
wx/msw/registry.h
wx/msw/rcdefs.h
wx/msw/scrolbar.h
wx/msw/setup0.h
wx/msw/slider95.h

View File

@ -101,9 +101,18 @@
</command>
</action>
<set var="RCDEFS_H">
<if cond="TOOLKIT=='MSW'">
lib/wx/include/$(TOOLCHAIN_FULLNAME)/wx/msw/rcdefs.h
</if>
</set>
<data-files>
<srcdir>$(BUILDDIR)</srcdir>
<files>lib/wx/include/$(TOOLCHAIN_FULLNAME)/wx/setup.h</files>
<files>
lib/wx/include/$(TOOLCHAIN_FULLNAME)/wx/setup.h
$(RCDEFS_H)
</files>
<install-to>$(LIBDIR)/wx/include/$(TOOLCHAIN_FULLNAME)/wx</install-to>
</data-files>
@ -193,6 +202,29 @@
</if>
<!-- create rcdefs.h on Windows: -->
<if cond="FORMAT in ['borland','mingw','msvc','watcom']">
<mkdir id="libdir_setup_wx_msw">
<depends>libdir_setup_wx</depends>
<dir>$(SETUPHDIR)/wx/msw</dir>
</mkdir>
<action id="rcdefs.h">
<dependency-of>setup_h</dependency-of>
<depends>libdir_setup_wx_msw</depends>
<depends-on-file>$(SRCDIR)/include/wx/msw/genrcdefs.h</depends-on-file>
<command>
$(DOLLAR)(CPP) "$(SRCDIR)\include\wx\msw\genrcdefs.h" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
</command>
</action>
</if>
<if cond="FORMAT=='autoconf'">
<!-- Show this banner after installation: -->

View File

@ -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}" ])

View File

@ -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_ */

43
include/wx/msw/genrcdefs.h Executable file
View File

@ -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)

15
include/wx/msw/rcdefs.h Normal file
View File

@ -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

View File

@ -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)