def options(opt):
  pass

def configure(conf):
  pass

def build(bld):

  source = [
      'model.cpp',
      'mixable.cpp',
      'mixable_versioned_table.cpp',
      'push_mixable.cpp',
      'linear_mixable.cpp',
      'linear_function_mixer.cpp',
      ]
  headers = [
      'diffv.hpp',
      'linear_mixable.hpp',
      'linear_function_mixer.hpp',
      'mixable.hpp',
      'mixable_helper.hpp',
      'mixable_versioned_table.hpp',
      'model.hpp',
      'packer.hpp',
      'push_mixable.hpp',
      'stream_writer.hpp',
      ]
  use = ['jubatus_util']

  bld.core_sources.extend(bld.add_prefix(source))
  bld.core_headers.extend(bld.add_prefix(headers))
  bld.core_use.extend(use)

  def make_test(t):
    bld.program(
      features='gtest',
      source=t + '.cpp',
      target=t,
      includes='.',
      use = ['jubatus_util', 'MSGPACK', 'jubatus_core'])

  tests = [
    'mixable_test',
    'linear_function_mixer_test',
    ]

  for t in tests:
    make_test(t)

