mirror of https://github.com/ArduPilot/ardupilot
60 lines
2.8 KiB
Plaintext
60 lines
2.8 KiB
Plaintext
|
#!/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'
|
||
|
)
|