Import('env', 'envCython', 'arch')

common_libs = [
  'params.cc',
  'statlog.cc',
  'swaglog.cc',
  'util.cc',
  'i2c.cc',
  'watchdog.cc',
  'ratekeeper.cc'
]

if arch != "Darwin":
  common_libs.append('gpio.cc')

_common = env.Library('common', common_libs, LIBS="json11")

files = [
  'clutil.cc',
]

_gpucommon = env.Library('gpucommon', files)
Export('_common', '_gpucommon')

if GetOption('extras'):
  env.Program('tests/test_common',
              ['tests/test_runner.cc', 'tests/test_util.cc', 'tests/test_swaglog.cc', 'tests/test_ratekeeper.cc'],
              LIBS=[_common, 'json11', 'zmq', 'pthread'])

# Cython bindings
params_python = envCython.Program('params_pyx.so', 'params_pyx.pyx', LIBS=envCython['LIBS'] + [_common, 'zmq', 'json11'])

SConscript([
  'kalman/SConscript',
  'transformations/SConscript'  
])

Import('simple_kalman_python', 'transformations_python')
common_python = [params_python, simple_kalman_python, transformations_python]

Export('common_python')