waf: Add building DDS client to waf

* Had to ignore pre-commit hooks for isort and mypy since there are unrelated broken issues in the file

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Co-authored-by: Arsh Pratap <arshpratapofficial@gmail.com>
Co-authored-by: Andrew Tridgell <andrew@tridgell.net>
This commit is contained in:
Ryan Friedman 2023-03-10 17:44:51 -07:00 committed by Andrew Tridgell
parent d361fec745
commit c7cac9abae
4 changed files with 27 additions and 0 deletions

View File

@ -118,6 +118,11 @@ def ap_library(bld, library, vehicle):
for s in bld.env.AP_LIB_EXTRA_SOURCES[library]:
src.append(bld.bldnode.find_or_declare(os.path.join('libraries', library, s)))
# include the dependencies for XRCE-DDS
if len(bld.env.XRCE_DEPENDENCIES):
for s in bld.env.XRCE_DEPENDENCIES:
src.append(bld.bldnode.find_or_declare(s))
if not common_tg:
kw = dict(bld.env.AP_LIBRARIES_OBJECTS_KW)
kw['features'] = kw.get('features', []) + ['ap_library_object']

View File

@ -134,6 +134,7 @@ def get_legacy_defines(sketch_name, bld):
IGNORED_AP_LIBRARIES = [
'doc',
'AP_Scripting', # this gets explicitly included when it is needed and should otherwise never be globbed in
'AP_DDS',
]

View File

@ -75,6 +75,20 @@ class Board:
if cfg.options.no_gcs:
env.CXXFLAGS += ['-DHAL_GCS_ENABLED=0']
# configurations for XRCE-DDS
if cfg.options.enable_dds:
cfg.recurse('libraries/AP_DDS')
env.ENABLE_DDS = True
env.AP_LIBRARIES += [
'AP_DDS'
]
env.DEFINES.update(AP_DDS_ENABLED = 1)
# check for microxrceddsgen
cfg.find_program('microxrceddsgen',mandatory=True)
else:
env.ENABLE_DDS = False
env.DEFINES.update(AP_DDS_ENABLED = 0)
# setup for supporting onvif cam control
if cfg.options.enable_onvif:
cfg.recurse('libraries/AP_ONVIF')

View File

@ -251,6 +251,10 @@ submodules at specific revisions.
default=False,
help="Enables GPS logging")
g.add_option('--enable-dds', action='store_true',
help="Enable the dds client to connect with ROS2/DDS"
)
g = opt.ap_groups['linux']
linux_options = ('--prefix', '--destdir', '--bindir', '--libdir')
@ -672,6 +676,9 @@ def _build_dynamic_sources(bld):
]
)
if bld.env.ENABLE_DDS:
bld.recurse("libraries/AP_DDS")
def write_version_header(tsk):
bld = tsk.generator.bld
return bld.write_version_header(tsk.outputs[0].abspath())