aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-11-21 20:13:53 -0500
committerGitHub <noreply@github.com>2017-11-21 20:13:53 -0500
commite6bf92cf02be8587e14d32f214467b09da40d9ff (patch)
treebd97f7f7ff9951349e2e3059a0f0e279fc2f6f4d
parentb8a2bfbc73a7e21010469c95538cc39c559dbed8 (diff)
parent02374b945d26b094ba7cd771841f967c7b83c956 (diff)
Merge pull request #443 from ascent12/meson-glapi
Change glapi.sh to generate both source and header simeltaneously
-rwxr-xr-xglgen.sh72
-rw-r--r--render/meson.build17
2 files changed, 38 insertions, 51 deletions
diff --git a/glgen.sh b/glgen.sh
index 75d93c3b..5cb23225 100755
--- a/glgen.sh
+++ b/glgen.sh
@@ -7,15 +7,16 @@
# to fail if it can't load the function. You'll need to check if that function
# is NULL before using it.
-if [ $# -ne 2 ]; then
+if [ $# -ne 3 ]; then
exit 1
fi
SPEC=$1
-OUT=$2
+OUT_C=$2
+OUT_H=$3
BASE=$(basename "$SPEC" .txt)
-INCLUDE_GUARD=$(printf %s "$SPEC" | tr -c [:alnum:] _ | tr [:lower:] [:upper:])
+INCLUDE_GUARD=$(printf %s "$OUT_H" | tr -c [:alnum:] _ | tr [:lower:] [:upper:])
DECL=""
DEFN=""
@@ -57,46 +58,37 @@ while read -r COMMAND; do
fi
done < $SPEC
+cat > $OUT_H << EOF
+#ifndef $INCLUDE_GUARD
+#define $INCLUDE_GUARD
-case $OUT in
-*.h)
- cat > $OUT << EOF
- #ifndef $INCLUDE_GUARD
- #define $INCLUDE_GUARD
+#include <stdbool.h>
- #include <stdbool.h>
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+#include <EGL/eglmesaext.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
- #include <EGL/egl.h>
- #include <EGL/eglext.h>
- #include <EGL/eglmesaext.h>
- #include <GLES2/gl2.h>
- #include <GLES2/gl2ext.h>
+bool load_$BASE(void);
+$DECL
- bool load_$BASE(void);
- $DECL
-
- #endif
+#endif
EOF
- ;;
-*.c)
- cat > $OUT << EOF
- #include <wlr/util/log.h>
- #include "$BASE.h"
- $DEFN
-
- bool load_$BASE(void) {
- static bool done = false;
- if (done) {
- return true;
- }
- $LOADER
-
- done = true;
- return true;
- }
+
+cat > $OUT_C << EOF
+#include <wlr/util/log.h>
+#include "$OUT_H"
+$DEFN
+
+bool load_$BASE(void) {
+ static bool done = false;
+ if (done) {
+ return true;
+ }
+$LOADER
+
+ done = true;
+ return true;
+}
EOF
- ;;
-*)
- exit 1
- ;;
-esac
diff --git a/render/meson.build b/render/meson.build
index 749d1393..1eea9a83 100644
--- a/render/meson.build
+++ b/render/meson.build
@@ -1,14 +1,9 @@
glgen = find_program('../glgen.sh')
-glapi_c = custom_target('glapi.c',
+glapi = custom_target('glapi',
input: 'glapi.txt',
- output: '@BASENAME@.c',
- command: [glgen, '@INPUT@', '@OUTPUT@'],
-)
-glapi_h = custom_target('glapi.h',
- input: 'glapi.txt',
- output: '@BASENAME@.h',
- command: [glgen, '@INPUT@', '@OUTPUT@'],
+ output: ['@BASENAME@.c', '@BASENAME@.h'],
+ command: [glgen, '@INPUT@', '@OUTPUT0@', '@OUTPUT1@'],
)
lib_wlr_render = static_library(
@@ -24,13 +19,13 @@ lib_wlr_render = static_library(
'wlr_renderer.c',
'wlr_texture.c',
),
- glapi_c,
- glapi_h,
+ glapi[0],
+ glapi[1],
include_directories: wlr_inc,
dependencies: [glesv2, egl],
)
wlr_render = declare_dependency(
link_with: lib_wlr_render,
- sources: glapi_h,
+ sources: glapi[1],
)