glsl2: restructure header file for C++ and C inclusion
authorBrian Paul <brianp@vmware.com>
Fri, 27 Aug 2010 17:53:19 +0000 (11:53 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 27 Aug 2010 20:30:59 +0000 (14:30 -0600)
As it was, the header could not be cleanly #included by a C source.

src/glsl/glsl_parser_extras.h

index b0b1bc3..3ccdab4 100644 (file)
 #ifndef GLSL_PARSER_EXTRAS_H
 #define GLSL_PARSER_EXTRAS_H
 
+/*
+ * Most of the definitions here only apply to C++
+ */
+#ifdef __cplusplus
+
+
 #include <cstdlib>
 #include "glsl_symbol_table.h"
 
@@ -175,14 +181,6 @@ extern void _mesa_glsl_warning(const YYLTYPE *locp,
                               _mesa_glsl_parse_state *state,
                               const char *fmt, ...);
 
-extern "C" {
-extern int preprocess(void *ctx, const char **shader, char **info_log,
-                     const struct gl_extensions *extensions);
-
-extern void _mesa_destroy_shader_compiler();
-extern void _mesa_destroy_shader_compiler_caches();
-}
-
 extern void _mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state,
                                  const char *string);
 
@@ -212,4 +210,26 @@ extern bool _mesa_glsl_process_extension(const char *name, YYLTYPE *name_locp,
 extern const char *
 _mesa_glsl_shader_target_name(enum _mesa_glsl_parser_targets target);
 
+
+#endif /* __cplusplus */
+
+
+/*
+ * These definitions apply to C and C++
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int preprocess(void *ctx, const char **shader, char **info_log,
+                      const struct gl_extensions *extensions);
+
+extern void _mesa_destroy_shader_compiler();
+extern void _mesa_destroy_shader_compiler_caches();
+
+#ifdef __cplusplus
+}
+#endif
+
+
 #endif /* GLSL_PARSER_EXTRAS_H */