From 7865b355bd52958f4b27e42b500e83c52255ef37 Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Tue, 9 Nov 2010 02:42:03 +0100
Subject: Gluegen: Types (stddef/stdint), Header and Predefined Macro Change
Read API doc ad GlueGen.java
New predefined types: wchar_t, intptr_t, uintptr_t
New reusable headers
for gluegen usage: make/stub_includes/gluegen
for native usage: make/stub_includes/platform
New predefined macro
#define __GLUEGEN__ 2
---
make/stub_includes/common/gluegenint.h | 42 ---------------
make/stub_includes/gluegen/gluegen_inttypes.h | 7 +++
make/stub_includes/gluegen/gluegen_stddef.h | 6 +++
make/stub_includes/gluegen/gluegen_stdint.h | 7 +++
make/stub_includes/gluegen/gluegen_types.h | 43 ++++++++++++++++
make/stub_includes/gluegen/inttypes.h | 7 +++
make/stub_includes/gluegen/stdarg.h | 7 +++
make/stub_includes/gluegen/stddef.h | 6 +++
make/stub_includes/gluegen/stdint.h | 7 +++
make/stub_includes/platform/gluegen_inttypes.h | 11 ++++
make/stub_includes/platform/gluegen_stddef.h | 25 +++++++++
make/stub_includes/platform/gluegen_stdint.h | 29 +++++++++++
make/stub_includes/platform/gluegen_types.h | 12 +++++
make/stub_includes/replacement/inttypes.h | 18 -------
make/stub_includes/replacement/stddef.h | 7 ---
make/stub_includes/replacement/stdint.h | 18 -------
src/java/com/jogamp/gluegen/GlueGen.java | 59 ++++++++++++++++++----
src/java/com/jogamp/gluegen/cgram/GnuCParser.g | 3 ++
src/java/com/jogamp/gluegen/cgram/GnuCTreeParser.g | 11 ++++
src/java/com/jogamp/gluegen/cgram/HeaderParser.g | 3 ++
src/java/com/jogamp/gluegen/cgram/StdCParser.g | 11 ++++
src/java/com/jogamp/gluegen/pcpp/PCPP.java | 17 +++++--
.../jogamp/gluegen/test/junit/generation/test1.h | 11 +++-
23 files changed, 266 insertions(+), 101 deletions(-)
delete mode 100644 make/stub_includes/common/gluegenint.h
create mode 100644 make/stub_includes/gluegen/gluegen_inttypes.h
create mode 100644 make/stub_includes/gluegen/gluegen_stddef.h
create mode 100644 make/stub_includes/gluegen/gluegen_stdint.h
create mode 100644 make/stub_includes/gluegen/gluegen_types.h
create mode 100644 make/stub_includes/gluegen/inttypes.h
create mode 100644 make/stub_includes/gluegen/stdarg.h
create mode 100644 make/stub_includes/gluegen/stddef.h
create mode 100644 make/stub_includes/gluegen/stdint.h
create mode 100644 make/stub_includes/platform/gluegen_inttypes.h
create mode 100644 make/stub_includes/platform/gluegen_stddef.h
create mode 100644 make/stub_includes/platform/gluegen_stdint.h
create mode 100644 make/stub_includes/platform/gluegen_types.h
delete mode 100644 make/stub_includes/replacement/inttypes.h
delete mode 100644 make/stub_includes/replacement/stddef.h
delete mode 100644 make/stub_includes/replacement/stdint.h
diff --git a/make/stub_includes/common/gluegenint.h b/make/stub_includes/common/gluegenint.h
deleted file mode 100644
index 5fb4002..0000000
--- a/make/stub_includes/common/gluegenint.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef __gluegen_int_h_
-#define __gluegen_int_h_
-
-#ifndef GLUEGEN_INT_TYPES_DEFINED
- #define GLUEGEN_INT_TYPES_DEFINED
- /* Define int32_t, int64_t, and uint64_t types for UST/MSC */
- /* (as used in the GL_EXT_timer_query extension). */
- #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
- #include
- #elif defined(__sun__)
- #include
- #if defined(__STDC__)
- #if defined(__arch64__)
- typedef long int int64_t;
- typedef unsigned long int uint64_t;
- #else
- typedef long long int int64_t;
- typedef unsigned long long int uint64_t;
- #endif /* __arch64__ */
- #endif /* __STDC__ */
- #elif defined( __VMS )
- #include
- #elif defined(__SCO__) || defined(__USLC__)
- #include
- #elif defined(__UNIXOS2__) || defined(__SOL64__)
- typedef long int int32_t;
- typedef unsigned long int uint32_t;
- typedef long long int int64_t;
- typedef unsigned long long int uint64_t;
- #elif defined(WIN32) && defined(__GNUC__)
- #include
- #elif defined(_WIN32)
- typedef __int32 int32_t;
- typedef unsigned __int32 uint32_t;
- typedef __int64 int64_t;
- typedef unsigned __int64 uint64_t;
- #else
- #include /* Fallback option */
- #endif
-#endif
-
-#endif /* __gluegen_int_h_ */
diff --git a/make/stub_includes/gluegen/gluegen_inttypes.h b/make/stub_includes/gluegen/gluegen_inttypes.h
new file mode 100644
index 0000000..5d6a876
--- /dev/null
+++ b/make/stub_includes/gluegen/gluegen_inttypes.h
@@ -0,0 +1,7 @@
+#ifndef __gluegen_inttypes_h
+#define __gluegen_inttypes_h
+
+#include
+
+#endif /* __gluegen_inttypes_h */
+
diff --git a/make/stub_includes/gluegen/gluegen_stddef.h b/make/stub_includes/gluegen/gluegen_stddef.h
new file mode 100644
index 0000000..44302f7
--- /dev/null
+++ b/make/stub_includes/gluegen/gluegen_stddef.h
@@ -0,0 +1,6 @@
+#ifndef __gluegen_stddef_h
+#define __gluegen_stddef_h
+
+#include
+
+#endif /* __gluegen_stddef_h */
diff --git a/make/stub_includes/gluegen/gluegen_stdint.h b/make/stub_includes/gluegen/gluegen_stdint.h
new file mode 100644
index 0000000..5250213
--- /dev/null
+++ b/make/stub_includes/gluegen/gluegen_stdint.h
@@ -0,0 +1,7 @@
+#ifndef __gluegen_stdint_h
+#define __gluegen_stdint_h
+
+#include
+
+#endif /* __gluegen_stdint_h */
+
diff --git a/make/stub_includes/gluegen/gluegen_types.h b/make/stub_includes/gluegen/gluegen_types.h
new file mode 100644
index 0000000..d1f003a
--- /dev/null
+++ b/make/stub_includes/gluegen/gluegen_types.h
@@ -0,0 +1,43 @@
+#ifndef __gluegen_types_h
+#define __gluegen_types_h
+
+/**
+ * These are standard include replacement files
+ * for gluegen processing only!
+ *
+ * Don't include this folder to your native compiler!
+ *
+ * Purpose of all files within this folder is to define a fixed bitsize
+ * across all platforms to allow the resulting java type comfort all.
+ * IE a 'intptr_t' shall always be 64bit.
+ *
+ * We use one size fits all.
+ */
+
+#ifndef __GLUEGEN__
+ #error "This file is intended to be used for GlueGen code generation, not native compilation. Use the gluegen/make/stub_includes/platform variation instead!"
+#endif
+
+/**
+ * Look in the GlueGen.java API documentation for the build-in types (terminal symbols)
+ * definition.
+ *
+ * The following types are build-in:
+ *
+ * __int32 - windows
+ * int32_t - stdint.h
+ * wchar_t - stddef.h
+ * uint32_t - stdint.h
+ * __int64 - windows
+ * int64_t - stdint.h
+ * uint64_t - stdint.h
+ * ptrdiff_t - stddef.h
+ * intptr_t - stdint.h
+ * size_t - stddef.h
+ * uintptr_t - stdint.h
+ */
+
+#define NULL ((void *)0)
+
+#endif /* __gluegen_types_h */
+
diff --git a/make/stub_includes/gluegen/inttypes.h b/make/stub_includes/gluegen/inttypes.h
new file mode 100644
index 0000000..b4ac3d4
--- /dev/null
+++ b/make/stub_includes/gluegen/inttypes.h
@@ -0,0 +1,7 @@
+#ifndef __inttypes_h
+#define __inttypes_h
+
+#include
+
+#endif /* __stdint_h */
+
diff --git a/make/stub_includes/gluegen/stdarg.h b/make/stub_includes/gluegen/stdarg.h
new file mode 100644
index 0000000..b5b585b
--- /dev/null
+++ b/make/stub_includes/gluegen/stdarg.h
@@ -0,0 +1,7 @@
+#ifndef __stdarg_h
+#define __stdarg_h
+
+#include
+
+#endif /* __stdarg_h */
+
diff --git a/make/stub_includes/gluegen/stddef.h b/make/stub_includes/gluegen/stddef.h
new file mode 100644
index 0000000..a3890b0
--- /dev/null
+++ b/make/stub_includes/gluegen/stddef.h
@@ -0,0 +1,6 @@
+#ifndef __stddef_h
+#define __stddef_h
+
+#include
+
+#endif /* __stddef_h */
diff --git a/make/stub_includes/gluegen/stdint.h b/make/stub_includes/gluegen/stdint.h
new file mode 100644
index 0000000..dd03d2d
--- /dev/null
+++ b/make/stub_includes/gluegen/stdint.h
@@ -0,0 +1,7 @@
+#ifndef __stdint_h
+#define __stdint_h
+
+#include
+
+#endif /* __stdint_h */
+
diff --git a/make/stub_includes/platform/gluegen_inttypes.h b/make/stub_includes/platform/gluegen_inttypes.h
new file mode 100644
index 0000000..445e74d
--- /dev/null
+++ b/make/stub_includes/platform/gluegen_inttypes.h
@@ -0,0 +1,11 @@
+#ifndef __gluegen_inttypes_h
+#define __gluegen_inttypes_h
+
+#ifdef __GLUEGEN__
+ #error "This file is not intended to be used for GlueGen code generation, use the gluegen/make/stub_includes/gluegen variation instead!"
+#endif
+
+#include
+
+#endif /* __gluegen_inttypes_h */
+
diff --git a/make/stub_includes/platform/gluegen_stddef.h b/make/stub_includes/platform/gluegen_stddef.h
new file mode 100644
index 0000000..acd9dbd
--- /dev/null
+++ b/make/stub_includes/platform/gluegen_stddef.h
@@ -0,0 +1,25 @@
+#ifndef __gluegen_stddef_h
+#define __gluegen_stddef_h
+
+#ifdef __GLUEGEN__
+ #error "This file is not intended to be used for GlueGen code generation, use the gluegen/make/stub_includes/gluegen variation instead!"
+#endif
+
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
+ #include
+#elif defined(WIN32) && defined(__GNUC__)
+ #include
+#elif defined(_WIN64)
+ typedef __int64 ptrdiff_t;
+ typedef unsigned long int size_t;
+#elif defined(__ia64__) || defined(__x86_64__)
+ typedef long int ptrdiff_t;
+#else
+ typedef int ptrdiff_t;
+#endif
+
+#ifndef NULL
+ #define NULL ((void *)0)
+#endif
+
+#endif /* __gluegen_stddef_h */
diff --git a/make/stub_includes/platform/gluegen_stdint.h b/make/stub_includes/platform/gluegen_stdint.h
new file mode 100644
index 0000000..aabbc86
--- /dev/null
+++ b/make/stub_includes/platform/gluegen_stdint.h
@@ -0,0 +1,29 @@
+#ifndef __gluegen_stdint_h
+#define __gluegen_stdint_h
+
+#ifdef __GLUEGEN__
+ #error "This file is not intended to be used for GlueGen code generation, use the gluegen/make/stub_includes/gluegen variation instead!"
+#endif
+
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
+ #include
+#elif defined(WIN32) && defined(__GNUC__)
+ #include
+#elif defined(_WIN32)
+ typedef __int32 int32_t;
+ typedef unsigned __int32 uint32_t;
+ typedef __int64 int64_t;
+ typedef unsigned __int64 uint64_t;
+#else
+ typedef signed int int32_t;
+ typedef unsigned int uint32_t;
+ #if defined(__ia64__) || defined(__x86_64__)
+ typedef signed long int int64_t;
+ typedef unsigned long int uint64_t;
+ #else
+ typedef signed long long int int64_t;
+ typedef unsigned long long int uint64_t;
+ #endif
+#endif
+
+#endif /* __gluegen_stdint_h */
diff --git a/make/stub_includes/platform/gluegen_types.h b/make/stub_includes/platform/gluegen_types.h
new file mode 100644
index 0000000..7b9fd3a
--- /dev/null
+++ b/make/stub_includes/platform/gluegen_types.h
@@ -0,0 +1,12 @@
+#ifndef __gluegen_types_h
+#define __gluegen_types_h
+
+#ifdef __GLUEGEN__
+ #error "This file is not intended to be used for GlueGen code generation, use the gluegen/make/stub_includes/gluegen variation instead!"
+#endif
+
+#include
+#include
+
+#endif /* __gluegen_types_h */
+
diff --git a/make/stub_includes/replacement/inttypes.h b/make/stub_includes/replacement/inttypes.h
deleted file mode 100644
index cb4f143..0000000
--- a/make/stub_includes/replacement/inttypes.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#if defined(WIN32) && defined(__GNUC__)
- #include
-#elif defined(_WIN32)
- typedef __int32 int32_t;
- typedef unsigned __int32 uint32_t;
- typedef __int64 int64_t;
- typedef unsigned __int64 uint64_t;
-#else
- typedef signed int int32_t;
- typedef unsigned int uint32_t;
- #if defined(__ia64__) || defined(__x86_64__)
- typedef signed long int int64_t;
- typedef unsigned long int uint64_t;
- #else
- typedef signed long long int int64_t;
- typedef unsigned long long int uint64_t;
- #endif
-#endif
diff --git a/make/stub_includes/replacement/stddef.h b/make/stub_includes/replacement/stddef.h
deleted file mode 100644
index 8aa7005..0000000
--- a/make/stub_includes/replacement/stddef.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#if defined(_WIN64)
- typedef __int64 ptrdiff_t;
-#elif defined(__ia64__) || defined(__x86_64__)
- typedef long int ptrdiff_t;
-#else
- typedef int ptrdiff_t;
-#endif
diff --git a/make/stub_includes/replacement/stdint.h b/make/stub_includes/replacement/stdint.h
deleted file mode 100644
index cb4f143..0000000
--- a/make/stub_includes/replacement/stdint.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#if defined(WIN32) && defined(__GNUC__)
- #include
-#elif defined(_WIN32)
- typedef __int32 int32_t;
- typedef unsigned __int32 uint32_t;
- typedef __int64 int64_t;
- typedef unsigned __int64 uint64_t;
-#else
- typedef signed int int32_t;
- typedef unsigned int uint32_t;
- #if defined(__ia64__) || defined(__x86_64__)
- typedef signed long int int64_t;
- typedef unsigned long int uint64_t;
- #else
- typedef signed long long int int64_t;
- typedef unsigned long long int uint64_t;
- #endif
-#endif
diff --git a/src/java/com/jogamp/gluegen/GlueGen.java b/src/java/com/jogamp/gluegen/GlueGen.java
index f24d0b2..e88538e 100644
--- a/src/java/com/jogamp/gluegen/GlueGen.java
+++ b/src/java/com/jogamp/gluegen/GlueGen.java
@@ -51,21 +51,57 @@ import static java.lang.System.*;
/**
* Glue code generator for C functions and data structures.
- *
+ *
+ *
GlueGen Data Type Mapping
* Gluegen has build-in types (terminal symbols) for:
*
*
- * type | java | native-x32 | native-x64 | type | signed |
- * __int32 | 32bit | 32bit | 32bit | integer | signed or unsigned |
- * int32_t | 32bit | 32bit | 32bit | integer | signed |
- * uint32_t | 32bit | 32bit | 32bit | integer | unsigned |
- * __int64 | 64bit | 64bit | 64bit | integer | signed or unsigned |
- * int64_t | 64bit | 64bit | 64bit | integer | signed |
- * uint64_t | 64bit | 64bit | 64bit | integer | unsigned |
- * ptrdiff_t | 64bit | 32bit | 64bit | integer | signed |
- * size_t | 64bit | 32bit | 64bit | integer | unsigned |
- *
+ * type | java | native-x32 | native-x64 | type | signed | origin |
+ *
---|
__int32 | 32bit | 32bit | 32bit | integer | signed or unsigned | windows |
+ * int32_t | 32bit | 32bit | 32bit | integer | signed | stdint.h |
+ * wchar_t | 32bit | 32bit | 32bit | integer | signed | stddef.h |
+ * uint32_t | 32bit | 32bit | 32bit | integer | unsigned | stdint.h |
+ * __int64 | 64bit | 64bit | 64bit | integer | signed or unsigned | windows |
+ * int64_t | 64bit | 64bit | 64bit | integer | signed | stdint.h |
+ * uint64_t | 64bit | 64bit | 64bit | integer | unsigned | stdint.h |
+ * ptrdiff_t | 64bit | 32bit | 64bit | integer | signed | stddef.h |
+ * intptr_t | 64bit | 32bit | 64bit | integer | signed | stdint.h |
+ * size_t | 64bit | 32bit | 64bit | integer | unsigned | stddef.h |
+ * uintptr_t | 64bit | 32bit | 64bit | integer | unsigned | stdint.h |
+ *
+ *
+ *
GlueGen Platform Header Files
+ * GlueGen provides convenient platform headers,
+ * which can be included in your C header files for native compilation and GlueGen code generation.
+ *
+ * Example:
+ *
+ #include <gluegen_stdint.h>
+ #include <gluegen_stddef.h>
+
+ uint64_t test64;
+ size_t size1;
+ ptrdiff_t ptr1;
+ *
+ *
+ * To compile this file you have to include the following folder to your compilers system includes, ie -I
:
+ *
+ * gluegen/make/stub_includes/platform
+ *
+ *
+ * To generate code for this file you have to include the following folder to your GlueGen includeRefid
element:
+ *
+ * gluegen/make/stub_includes/gluegen
+ *
+ *
+ *
GlueGen Pre-Defined Macros
+ * To identity a GlueGen code generation run, GlueGen defines the following macros:
+ *
+ #define __GLUEGEN__ 2
+ *
+ *
*/
+
public class GlueGen implements GlueEmitterControls {
static{
@@ -117,6 +153,7 @@ public class GlueGen implements GlueEmitterControls {
}
preprocessor = new PCPP(includePaths, debug, copyPCPPOutput2Stderr);
+ preprocessor.addDefine("__GLUEGEN__", "2");
preprocessor.setOut(outStream);
preprocessor.run(reader, filename);
diff --git a/src/java/com/jogamp/gluegen/cgram/GnuCParser.g b/src/java/com/jogamp/gluegen/cgram/GnuCParser.g
index f795702..58d3171 100644
--- a/src/java/com/jogamp/gluegen/cgram/GnuCParser.g
+++ b/src/java/com/jogamp/gluegen/cgram/GnuCParser.g
@@ -315,12 +315,15 @@ typeSpecifier [int specCount] returns [int retSpecCount]
| "unsigned"
| "__int32"
| "int32_t"
+ | "wchar_t"
| "uint32_t"
| "__int64"
| "int64_t"
| "uint64_t"
| "ptrdiff_t"
+ | "intptr_t"
| "size_t"
+ | "uintptr_t"
| structOrUnionSpecifier ( options{warnWhenFollowAmbig=false;}: attributeDecl )*
| enumSpecifier
| { specCount==0 }? typedefName
diff --git a/src/java/com/jogamp/gluegen/cgram/GnuCTreeParser.g b/src/java/com/jogamp/gluegen/cgram/GnuCTreeParser.g
index 82792f3..1beeb7d 100644
--- a/src/java/com/jogamp/gluegen/cgram/GnuCTreeParser.g
+++ b/src/java/com/jogamp/gluegen/cgram/GnuCTreeParser.g
@@ -183,6 +183,17 @@ typeSpecifier
| "double"
| "signed"
| "unsigned"
+ | "__int32"
+ | "int32_t"
+ | "wchar_t"
+ | "uint32_t"
+ | "__int64"
+ | "int64_t"
+ | "uint64_t"
+ | "ptrdiff_t"
+ | "intptr_t"
+ | "size_t"
+ | "uintptr_t"
| structSpecifier ( attributeDecl )*
| unionSpecifier ( attributeDecl )*
| enumSpecifier
diff --git a/src/java/com/jogamp/gluegen/cgram/HeaderParser.g b/src/java/com/jogamp/gluegen/cgram/HeaderParser.g
index fa6455f..acb6dde 100644
--- a/src/java/com/jogamp/gluegen/cgram/HeaderParser.g
+++ b/src/java/com/jogamp/gluegen/cgram/HeaderParser.g
@@ -506,12 +506,15 @@ typeSpecifier[int attributes] returns [Type t] {
| "double" { t = new DoubleType("double", SizeThunk.DOUBLE, cvAttrs); }
| "__int32" { t = new IntType("__int32", SizeThunk.INT, unsigned, cvAttrs); }
| "int32_t" { t = new IntType("int32_t", SizeThunk.INT, false, cvAttrs); /* TS: always signed */ }
+ | "wchar_t" { t = new IntType("wchar_t", SizeThunk.INT, false, cvAttrs); /* TS: always signed */ }
| "uint32_t" { t = new IntType("uint32_t", SizeThunk.INT, true, cvAttrs); /* TS: always unsigned */ }
| "__int64" { t = new IntType("__int64", SizeThunk.INT64, unsigned, cvAttrs); }
| "int64_t" { t = new IntType("int64_t", SizeThunk.INT64, false, cvAttrs); /* TS: always signed */ }
| "uint64_t" { t = new IntType("uint64_t", SizeThunk.INT64, true, cvAttrs); /* TS: always unsigned */ }
| "ptrdiff_t" { t = new IntType("ptrdiff_t", SizeThunk.POINTER, false, cvAttrs); /* TS: always signed */ }
+ | "intptr_t" { t = new IntType("intptr_t", SizeThunk.POINTER, false, cvAttrs); /* TS: always signed */ }
| "size_t" { t = new IntType("size_t", SizeThunk.POINTER, true, cvAttrs); /* TS: always unsigned */ }
+ | "uintptr_t" { t = new IntType("uintptr_t", SizeThunk.POINTER, true, cvAttrs); /* TS: always unsigned */ }
| t = structSpecifier[cvAttrs] ( attributeDecl )*
| t = unionSpecifier [cvAttrs] ( attributeDecl )*
| t = enumSpecifier [cvAttrs]
diff --git a/src/java/com/jogamp/gluegen/cgram/StdCParser.g b/src/java/com/jogamp/gluegen/cgram/StdCParser.g
index 015c3e0..231e371 100644
--- a/src/java/com/jogamp/gluegen/cgram/StdCParser.g
+++ b/src/java/com/jogamp/gluegen/cgram/StdCParser.g
@@ -265,6 +265,17 @@ typeSpecifier [int specCount] returns [int retSpecCount]
| "double"
| "signed"
| "unsigned"
+ | "__int32"
+ | "int32_t"
+ | "wchar_t"
+ | "uint32_t"
+ | "__int64"
+ | "int64_t"
+ | "uint64_t"
+ | "ptrdiff_t"
+ | "intptr_t"
+ | "size_t"
+ | "uintptr_t"
| structOrUnionSpecifier
| enumSpecifier
| { specCount == 0 }? typedefName
diff --git a/src/java/com/jogamp/gluegen/pcpp/PCPP.java b/src/java/com/jogamp/gluegen/pcpp/PCPP.java
index f34a707..45a92df 100644
--- a/src/java/com/jogamp/gluegen/pcpp/PCPP.java
+++ b/src/java/com/jogamp/gluegen/pcpp/PCPP.java
@@ -517,6 +517,16 @@ public class PCPP {
while (nextToken(true) != StreamTokenizer.TT_EOL) {
values.add(curTokenAsString());
}
+ addDefine(name, macroDefinition, values);
+ }
+
+ public void addDefine(String name, String value) {
+ List values = new ArrayList();
+ values.add(value);
+ addDefine(name, false, values);
+ }
+
+ private void addDefine(String name, boolean nameIsMacro, List values) {
// if we're not within an active block of code (like inside an "#ifdef
// FOO" where FOO isn't defined), then don't actually alter the definition
// map.
@@ -561,8 +571,8 @@ public class PCPP {
// TO DO: Is this correct? Why not output the symbol unchanged?
// I think that it's a good thing to see that some symbols are
// defined in terms of others. -chris
- macroDefinition = newValue.contains("(");
- if(macroDefinition) {
+ boolean valueIsMacro = newValue.contains("(");
+ if(valueIsMacro) {
// parser can't dig this currently
emitDefine = false;
} else {
@@ -576,8 +586,7 @@ public class PCPP {
}
}
- } else if (macroDefinition) {
-
+ } else if (nameIsMacro) {
// list parameters
List params = new ArrayList();
for (int i = 1; i < values.size(); i++) {
diff --git a/src/junit/com/jogamp/gluegen/test/junit/generation/test1.h b/src/junit/com/jogamp/gluegen/test/junit/generation/test1.h
index 6cdb025..bd526e6 100644
--- a/src/junit/com/jogamp/gluegen/test/junit/generation/test1.h
+++ b/src/junit/com/jogamp/gluegen/test/junit/generation/test1.h
@@ -23,7 +23,8 @@
#define CONSTANT_ONE 1
#define ARRAY_SIZE 8
-#include "gluegenint.h"
+#include
+#include
typedef uint64_t foo;
@@ -98,4 +99,12 @@ MYAPI MYAPIConfig * MYAPIENTRY typeTestAnonPointer(const MYAPIConfig * a);
#define HUGE_VALF_3 ((int) 1e53)
#define DOUBLE_DEFINE_BRACKETS_3 HUGE_VALF_3
+size_t unsigned_size_t_1;
+ptrdiff_t a_signed_pointer_t_1;
+
+#ifdef __GLUEGEN__
+ #warning "Hello GlueGen"
+#else
+ #warning "Hello Native Compiler"
+#endif
--
cgit v1.2.3