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.
59 lines
2.8 KiB
59 lines
2.8 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 |
|
|
|
def configure(cfg): |
|
""" |
|
setup environment for mavlink header generator |
|
""" |
|
cfg.find_program('soapcpp2') |
|
env = cfg.env |
|
env.SOAP_DIR = cfg.srcnode.make_node('libraries/AP_ONVIF/soap').abspath() |
|
env.SOAP_IMPORT = cfg.srcnode.make_node('modules/gsoap/gsoap/import').abspath() |
|
cfg.env.AP_LIB_EXTRA_SOURCES['AP_ONVIF'] = [] |
|
|
|
cfg.env.AP_LIB_EXTRA_SOURCES['AP_ONVIF'] += ['onvifDeviceBindingProxy.cpp', |
|
'onvifMediaBindingProxy.cpp', |
|
'onvifPTZBindingProxy.cpp'] |
|
name = 'onvif' |
|
cfg.env.AP_LIB_EXTRA_SOURCES['AP_ONVIF'] += ['{}C.cpp'.format(name)] |
|
cfg.env.AP_LIB_EXTRA_SOURCES['AP_ONVIF'].append(cfg.srcnode.make_node('modules/gsoap/gsoap/stdsoap2.cpp').abspath()) |
|
cfg.env.AP_LIB_EXTRA_SOURCES['AP_ONVIF'].append(cfg.srcnode.make_node('modules/gsoap/gsoap/dom.cpp').abspath()) |
|
# cfg.env.AP_LIB_EXTRA_SOURCES['AP_ONVIF'].append(cfg.srcnode.make_node('modules/gsoap/gsoap/plugin/smdevp.c').abspath()) |
|
# cfg.env.AP_LIB_EXTRA_SOURCES['AP_ONVIF'].append(cfg.srcnode.make_node('modules/gsoap/gsoap/plugin/mecevp.c').abspath()) |
|
cfg.env.AP_LIB_EXTRA_SOURCES['AP_ONVIF'].append(cfg.srcnode.make_node('modules/gsoap/gsoap/plugin/wsseapi-lite.cpp').abspath()) |
|
cfg.env.AP_LIB_EXTRA_SOURCES['AP_ONVIF'].append(cfg.srcnode.make_node('modules/gsoap/gsoap/custom/struct_timeval.cpp').abspath()) |
|
cfg.env.INCLUDES += [cfg.srcnode.make_node('modules/gsoap/gsoap/').abspath()] |
|
cfg.env.DEFINES += [ |
|
'SOAP_H_FILE=AP_ONVIF/onvifH.h', |
|
] |
|
env.append_value('GIT_SUBMODULES', 'gsoap') |
|
|
|
|
|
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): |
|
output_dir = bld.bldnode.make_node('libraries/AP_ONVIF').abspath() |
|
gsoap_dir = bld.srcnode.make_node('modules/gsoap/gsoap').abspath() |
|
import_dir = bld.srcnode.make_node('modules/gsoap/gsoap/import').abspath() |
|
src = bld.srcnode.ant_glob('libraries/AP_ONVIF/soap/onvif.h') |
|
name = 'onvif' |
|
generated_cpp = [bld.bldnode.find_or_declare('libraries/AP_ONVIF/{}C.cpp'.format(name))] |
|
generated_h = [bld.bldnode.find_or_declare('libraries/AP_ONVIF/{}H.h'.format(name))] |
|
bld( |
|
source=src, |
|
rule="$(cd %s;%s -2 -Cp onvif -I%s:%s -j -x ../../${SRC})" % (output_dir, |
|
bld.env.get_flat('SOAPCPP2'), |
|
import_dir, gsoap_dir), |
|
target=generated_cpp + generated_h, |
|
group='dynamic_sources' |
|
)
|
|
|