ardupilot/Tools/ardupilotwaf/gtest.py
Lucas De Marchi b375b33189 waf: allow to disable tests
This allows to completely disable the tests. Even the gtest submodule is
not checked out allowing integration on build servers without needing to
download one more submodule.

This is different from the --notests flag. The latter only disables
executing the tests, but always use the submodule.
2016-07-13 15:38:50 -03:00

52 lines
1.2 KiB
Python

#!/usr/bin/env python
# encoding: utf-8
"""
gtest is a Waf tool for test builds in Ardupilot
"""
from waflib import Utils
from waflib.Configure import conf
import boards
def configure(cfg):
cfg.env.HAS_GTEST = False
if cfg.options.disable_tests:
return
board = cfg.get_board()
if isinstance(board, boards.px4):
# toolchain is currently broken for gtest
cfg.msg(
'Gtest',
'PX4 boards currently don\'t support compiling gtest',
color='YELLOW',
)
return
if cfg.env.STATIC_LINKING:
# gtest uses a function (getaddrinfo) that is supposed to be linked
# dynamically
cfg.msg(
'Gtest',
'statically linked tests not supported',
color='YELLOW',
)
return
cfg.env.append_value('GIT_SUBMODULES', 'gtest')
cfg.env.HAS_GTEST = True
@conf
def libgtest(bld, **kw):
kw['cxxflags'] = Utils.to_list(kw.get('cxxflags', [])) + ['-Wno-undef']
kw.update(
source='modules/gtest/src/gtest-all.cc',
target='gtest/gtest',
includes='modules/gtest/ modules/gtest/include',
export_includes='modules/gtest/include',
name='GTEST',
)
return bld.stlib(**kw)