mesa/src/compiler/glsl/glcpp
Jose Fonseca f6dad10d04 meson: Avoid duplicate symbols.
All the stubs in src/compiler/glsl/glcpp/pp_standalone_scaffolding.c
are duplicate symbols.  They should only be used as replacement for
Mesa functions when building glcpp and glsl standalone compilers, but
in fact they are getting linked with Mesa.

This change fixes this by moving the standalone stubs to a
libglcpp_standalone target, that's only linked with the glcpp/glsl
tools.

Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4186>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4186>
2020-03-16 11:52:26 +00:00
..
tests autotools: delete leftover script wrapper 2019-07-31 10:16:30 +01:00
glcpp-lex.l glsl: add preprocessor #include support 2019-11-20 05:05:55 +00:00
glcpp-parse.y glsl: do not crash if string literal is used outside of #include/#line 2020-03-13 11:49:06 +02:00
glcpp.c Fix scons build 2018-04-12 19:55:01 -04:00
glcpp.h glsl: add preprocessor #include support 2019-11-20 05:05:55 +00:00
meson.build meson: Avoid duplicate symbols. 2020-03-16 11:52:26 +00:00
pp.c glsl: pass gl_context to glcpp_parser_create() 2019-11-20 05:05:55 +00:00
pp_standalone_scaffolding.c mesa: add support cursor support for relative path shader includes 2019-11-20 05:05:56 +00:00
pp_standalone_scaffolding.h mesa: add support cursor support for relative path shader includes 2019-11-20 05:05:56 +00:00
README

glcpp -- GLSL "C" preprocessor

This is a simple preprocessor designed to provide the preprocessing
needs of the GLSL language. The requirements for this preprocessor are
specified in the GLSL 1.30 specification availble from:

http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.30.10.pdf

This specification is not precise on some semantics, (for example,
#define and #if), defining these merely "as is standard for C++
preprocessors". To fill in these details, I've been using a draft of
the C99 standard as available from:

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf

Any downstream compiler accepting output from glcpp should be prepared
to encounter and deal with the following preprocessor macros:

	#line
	#pragma
	#extension

All other macros will be handled according to the GLSL specification
and will not appear in the output.

Known limitations
-----------------
A file that ends with a function-like macro name as the last
non-whitespace token will result in a parse error, (where it should be
passed through as is).