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:
@@ -370,6 +370,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||||||
wx/config.h
|
wx/config.h
|
||||||
wx/convauto.h
|
wx/convauto.h
|
||||||
wx/containr.h
|
wx/containr.h
|
||||||
|
wx/cpp.h
|
||||||
wx/datetime.h
|
wx/datetime.h
|
||||||
wx/datstrm.h
|
wx/datstrm.h
|
||||||
wx/dde.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,4 +1,4 @@
|
|||||||
/**
|
/*
|
||||||
* Name: wx/defs.h
|
* Name: wx/defs.h
|
||||||
* Purpose: Declarations/definitions common to all wx source files
|
* Purpose: Declarations/definitions common to all wx source files
|
||||||
* Author: Julian Smart and others
|
* Author: Julian Smart and others
|
||||||
@@ -127,19 +127,6 @@
|
|||||||
# define wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING(name)
|
# define wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING(name)
|
||||||
#endif
|
#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 */
|
/* wxWidgets version and compatibility defines */
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
@@ -559,24 +546,6 @@ typedef int wxWindowID;
|
|||||||
/* size of statically declared array */
|
/* size of statically declared array */
|
||||||
#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))
|
#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 */
|
/* symbolic constant used by all Find()-like functions returning positive */
|
||||||
/* integer on success as failure indicator */
|
/* integer on success as failure indicator */
|
||||||
#define wxNOT_FOUND (-1)
|
#define wxNOT_FOUND (-1)
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
/**
|
/*
|
||||||
* Name: wx/version.h
|
* Name: wx/version.h
|
||||||
* Purpose: wxWidgets version numbers
|
* Purpose: wxWidgets version numbers
|
||||||
* Author: Julian Smart
|
* Author: Julian Smart
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
#ifndef _WX_VERSION_H_
|
#ifndef _WX_VERSION_H_
|
||||||
#define _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 */
|
/* the constants below must be changed with each new version */
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
|
Reference in New Issue
Block a user