Change glapi.sh to generate both files

This commit is contained in:
Scott Anderson 2017-11-22 14:04:29 +13:00
parent b8a2bfbc73
commit 02374b945d
2 changed files with 36 additions and 49 deletions

View File

@ -7,15 +7,16 @@
# to fail if it can't load the function. You'll need to check if that function # to fail if it can't load the function. You'll need to check if that function
# is NULL before using it. # is NULL before using it.
if [ $# -ne 2 ]; then if [ $# -ne 3 ]; then
exit 1 exit 1
fi fi
SPEC=$1 SPEC=$1
OUT=$2 OUT_C=$2
OUT_H=$3
BASE=$(basename "$SPEC" .txt) 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="" DECL=""
DEFN="" DEFN=""
@ -57,10 +58,7 @@ while read -r COMMAND; do
fi fi
done < $SPEC done < $SPEC
cat > $OUT_H << EOF
case $OUT in
*.h)
cat > $OUT << EOF
#ifndef $INCLUDE_GUARD #ifndef $INCLUDE_GUARD
#define $INCLUDE_GUARD #define $INCLUDE_GUARD
@ -77,11 +75,10 @@ case $OUT in
#endif #endif
EOF EOF
;;
*.c) cat > $OUT_C << EOF
cat > $OUT << EOF
#include <wlr/util/log.h> #include <wlr/util/log.h>
#include "$BASE.h" #include "$OUT_H"
$DEFN $DEFN
bool load_$BASE(void) { bool load_$BASE(void) {
@ -95,8 +92,3 @@ EOF
return true; return true;
} }
EOF EOF
;;
*)
exit 1
;;
esac

View File

@ -1,14 +1,9 @@
glgen = find_program('../glgen.sh') glgen = find_program('../glgen.sh')
glapi_c = custom_target('glapi.c', glapi = custom_target('glapi',
input: 'glapi.txt', input: 'glapi.txt',
output: '@BASENAME@.c', output: ['@BASENAME@.c', '@BASENAME@.h'],
command: [glgen, '@INPUT@', '@OUTPUT@'], command: [glgen, '@INPUT@', '@OUTPUT0@', '@OUTPUT1@'],
)
glapi_h = custom_target('glapi.h',
input: 'glapi.txt',
output: '@BASENAME@.h',
command: [glgen, '@INPUT@', '@OUTPUT@'],
) )
lib_wlr_render = static_library( lib_wlr_render = static_library(
@ -24,13 +19,13 @@ lib_wlr_render = static_library(
'wlr_renderer.c', 'wlr_renderer.c',
'wlr_texture.c', 'wlr_texture.c',
), ),
glapi_c, glapi[0],
glapi_h, glapi[1],
include_directories: wlr_inc, include_directories: wlr_inc,
dependencies: [glesv2, egl], dependencies: [glesv2, egl],
) )
wlr_render = declare_dependency( wlr_render = declare_dependency(
link_with: lib_wlr_render, link_with: lib_wlr_render,
sources: glapi_h, sources: glapi[1],
) )