move wxSTRINGIZE and other preprocessor helpers to wx/cpp.h to fix version.rc compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
b4a81453b7
commit
cdd8d745c4
@ -370,6 +370,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
||||
wx/config.h
|
||||
wx/convauto.h
|
||||
wx/containr.h
|
||||
wx/cpp.h
|
||||
wx/datetime.h
|
||||
wx/datstrm.h
|
||||
wx/dde.h
|
||||
|
48
include/wx/cpp.h
Normal file
48
include/wx/cpp.h
Normal file
@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Name: wx/cpp.h
|
||||
* Purpose: Various preprocessor helpers
|
||||
* Author: Vadim Zeitlin
|
||||
* Created: 2006-09-30
|
||||
* RCS-ID: $Id$
|
||||
* Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org>
|
||||
* Licence: wxWindows licence
|
||||
*/
|
||||
|
||||
/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
|
||||
|
||||
#ifndef _WX_CPP_H_
|
||||
#define _WX_CPP_H_
|
||||
|
||||
/* wxCONCAT works like preprocessor ## operator but also works with macros */
|
||||
#define wxCONCAT_HELPER(text, line) text ## line
|
||||
#define wxCONCAT(text, line) wxCONCAT_HELPER(text, line)
|
||||
|
||||
/* wxSTRINGIZE works as the preprocessor # operator but also works with macros */
|
||||
#define wxSTRINGIZE_HELPER(x) #x
|
||||
#define wxSTRINGIZE(x) wxSTRINGIZE_HELPER(x)
|
||||
|
||||
/*
|
||||
Helper macros for wxMAKE_UNIQUE_NAME: normally this works by appending the
|
||||
current line number to the given identifier to reduce the probability of the
|
||||
conflict (it may still happen if this is used in the headers, hence you
|
||||
should avoid doing it or provide unique prefixes then) but we have to do it
|
||||
differently for VC++
|
||||
*/
|
||||
#if defined(__VISUALC__) && (__VISUALC__ >= 1300)
|
||||
/*
|
||||
__LINE__ handling is completely broken in VC++ when using "Edit and
|
||||
Continue" (/ZI option) and results in preprocessor errors if we use it
|
||||
inside the macros. Luckily VC7 has another standard macro which can be
|
||||
used like this and is even better than __LINE__ because it is globally
|
||||
unique.
|
||||
*/
|
||||
# define wxCONCAT_LINE(text) wxCONCAT(text, __COUNTER__)
|
||||
#else /* normal compilers */
|
||||
# define wxCONCAT_LINE(text) wxCONCAT(text, __LINE__)
|
||||
#endif
|
||||
|
||||
/* Create a "unique" name with the given prefix */
|
||||
#define wxMAKE_UNIQUE_NAME(text) wxCONCAT_LINE(text)
|
||||
|
||||
#endif // _WX_CPP_H_
|
||||
|
@ -1,13 +1,13 @@
|
||||
/**
|
||||
* Name: wx/defs.h
|
||||
* Purpose: Declarations/definitions common to all wx source files
|
||||
* Author: Julian Smart and others
|
||||
* Modified by: Ryan Norton (Converted to C)
|
||||
* Created: 01/02/97
|
||||
* RCS-ID: $Id$
|
||||
* Copyright: (c) Julian Smart
|
||||
* Licence: wxWindows licence
|
||||
*/
|
||||
/*
|
||||
* Name: wx/defs.h
|
||||
* Purpose: Declarations/definitions common to all wx source files
|
||||
* Author: Julian Smart and others
|
||||
* Modified by: Ryan Norton (Converted to C)
|
||||
* Created: 01/02/97
|
||||
* RCS-ID: $Id$
|
||||
* Copyright: (c) Julian Smart
|
||||
* Licence: wxWindows licence
|
||||
*/
|
||||
|
||||
/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
|
||||
|
||||
@ -127,19 +127,6 @@
|
||||
# define wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING(name)
|
||||
#endif
|
||||
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
/* string manipulation helpers */
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
|
||||
/* helper macros to concatenate two tokens together */
|
||||
#define wxCONCAT_HELPER(text, line) text ## line
|
||||
#define wxCONCAT(text, line) wxCONCAT_HELPER(text, line)
|
||||
|
||||
/* helper macros to convert a token into string literal */
|
||||
#define wxSTRINGIZE_HELPER(x) #x
|
||||
#define wxSTRINGIZE(x) wxSTRINGIZE_HELPER(x)
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
/* wxWidgets version and compatibility defines */
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
@ -559,24 +546,6 @@ typedef int wxWindowID;
|
||||
/* size of statically declared array */
|
||||
#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))
|
||||
|
||||
/* helper macros to be able to define unique/anonymous objects: this works by */
|
||||
/* appending the current line number to the given identifier to reduce the */
|
||||
/* probability of the conflict (it may still happen if this is used in the */
|
||||
/* headers, hence you should avoid doing it or provide unique prefixes then) */
|
||||
#if defined(__VISUALC__) && (__VISUALC__ >= 1300)
|
||||
/*
|
||||
__LINE__ handling is completely broken in VC++ when using "Edit and
|
||||
Continue" (/ZI option) and results in preprocessor errors if we use it
|
||||
inside the macros. Luckily VC7 has another standard macro which can be
|
||||
used like this and is even better than __LINE__ because it is globally
|
||||
unique.
|
||||
*/
|
||||
# define wxCONCAT_LINE(text) wxCONCAT(text, __COUNTER__)
|
||||
#else /* normal compilers */
|
||||
# define wxCONCAT_LINE(text) wxCONCAT(text, __LINE__)
|
||||
#endif
|
||||
#define wxMAKE_UNIQUE_NAME(text) wxCONCAT_LINE(text)
|
||||
|
||||
/* symbolic constant used by all Find()-like functions returning positive */
|
||||
/* integer on success as failure indicator */
|
||||
#define wxNOT_FOUND (-1)
|
||||
|
@ -1,20 +1,20 @@
|
||||
/**
|
||||
* Name: wx/version.h
|
||||
* Purpose: wxWidgets version numbers
|
||||
* Author: Julian Smart
|
||||
* Modified by: Ryan Norton (Converted to C)
|
||||
* Created: 29/01/98
|
||||
* RCS-ID: $Id$
|
||||
* Copyright: (c) 1998 Julian Smart
|
||||
* Licence: wxWindows licence
|
||||
*/
|
||||
/*
|
||||
* Name: wx/version.h
|
||||
* Purpose: wxWidgets version numbers
|
||||
* Author: Julian Smart
|
||||
* Modified by: Ryan Norton (Converted to C)
|
||||
* Created: 29/01/98
|
||||
* RCS-ID: $Id$
|
||||
* Copyright: (c) 1998 Julian Smart
|
||||
* Licence: wxWindows licence
|
||||
*/
|
||||
|
||||
/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
|
||||
|
||||
#ifndef _WX_VERSION_H_
|
||||
#define _WX_VERSION_H_
|
||||
|
||||
#include "wx/defs.h" /* for wxSTRINGIZE */
|
||||
#include "wx/cpp.h" /* for wxSTRINGIZE */
|
||||
|
||||
/* the constants below must be changed with each new version */
|
||||
/* ---------------------------------------------------------------------------- */
|
||||
|
Loading…
Reference in New Issue
Block a user