]> git.saurik.com Git - wxWidgets.git/commitdiff
move wxSTRINGIZE and other preprocessor helpers to wx/cpp.h to fix version.rc compilation
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 30 Sep 2006 14:55:06 +0000 (14:55 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 30 Sep 2006 14:55:06 +0000 (14:55 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

build/bakefiles/files.bkl
include/wx/cpp.h [new file with mode: 0644]
include/wx/defs.h
include/wx/version.h

index d26559bd968338ad91215d31d63168384d2f2a9e..090d0628b91d4803200c874c3f4860c80aa3c314 100644 (file)
@@ -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
diff --git a/include/wx/cpp.h b/include/wx/cpp.h
new file mode 100644 (file)
index 0000000..37c5870
--- /dev/null
@@ -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_
+
index 3ee686863d1143313575ea0b7882972262a88ed3..1eb944cab754e7dd74115f7e0f962afeba11b2a2 100644 (file)
@@ -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 */
 
 #   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)
index 62887e2f33c4b6cbec9d3f007b5693665a8ba64d..b706b90ea7f03c18eda82193ed81922aea05f125 100644 (file)
@@ -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 */
 /*  ---------------------------------------------------------------------------- */