You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.1 KiB
56 lines
2.1 KiB
#!/usr/bin/env python |
|
# encoding: utf-8 |
|
''' |
|
build generated bindings from bindings.desc for AP_Scripting |
|
''' |
|
|
|
from waflib.TaskGen import after_method, before_method, feature |
|
import os |
|
|
|
# these are only used for binding generation, not compilation of the library |
|
BINDING_CFLAGS="-std=c99 -Wno-error=missing-field-initializers -Wall -Werror -Wextra" |
|
BINDING_CC="gcc" |
|
|
|
def configure(cfg): |
|
cfg.env.AP_LIB_EXTRA_SOURCES['AP_Scripting'] = ['lua_generated_bindings.cpp'] |
|
|
|
def relpath(bld, node): |
|
'''make a build relative path. This is needed for CI to pass on azure''' |
|
blddir = bld.bldnode.make_node(".").abspath() |
|
return os.path.relpath(node.abspath(), blddir) |
|
|
|
def build(bld): |
|
main_c = bld.srcnode.make_node('libraries/AP_Scripting/generator/src/main.c') |
|
gen_bindings = bld.bldnode.find_or_declare('gen-bindings') |
|
|
|
main_c_rel = relpath(bld, main_c) |
|
gen_bindings_rel = relpath(bld, gen_bindings) |
|
|
|
bld( |
|
# build gen-bindings compiler |
|
source=main_c, |
|
target=[gen_bindings], |
|
# we should have configure tests for finding the native compiler |
|
rule="%s %s -o %s %s" % (BINDING_CC, BINDING_CFLAGS, gen_bindings_rel, main_c_rel), |
|
group='dynamic_sources', |
|
) |
|
|
|
bindings = bld.srcnode.make_node('libraries/AP_Scripting/generator/description/bindings.desc') |
|
bindings_rel = relpath(bld, bindings) |
|
gen_bindings = bld.bldnode.find_or_declare('gen-bindings') |
|
generated_cpp = bld.bldnode.find_or_declare('libraries/AP_Scripting/lua_generated_bindings.cpp') |
|
generated_h = bld.bldnode.find_or_declare('libraries/AP_Scripting/lua_generated_bindings.h') |
|
|
|
docs_command = "" |
|
if bld.options.scripting_docs: |
|
docs = bld.srcnode.make_node('libraries/AP_Scripting/docs/docs.lua') |
|
docs_rel = relpath(bld,docs) |
|
docs_command = "-d %s" % docs_rel |
|
|
|
bld( |
|
# build the bindings |
|
source=[bindings, gen_bindings], |
|
rule="./gen-bindings -o libraries/AP_Scripting/lua_generated_bindings -i %s %s" % (bindings_rel, docs_command), |
|
target=[generated_cpp, generated_h], |
|
group='dynamic_sources', |
|
)
|
|
|