ardupilot/libraries/AP_ONVIF/wscript

60 lines
2.8 KiB
Python

#!/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'
)