def options(opt):
  pass

def configure(conf):
  pass

def build(bld):
  source = [
      'driver.cpp',
      'classifier.cpp',
      'regression.cpp',
      'recommender.cpp',
      'stat.cpp',
      'anomaly.cpp',
      'graph.cpp',
      'nearest_neighbor.cpp',
      'clustering.cpp',
      'burst.cpp',
      'bandit.cpp',
      ]
  headers = [
      'driver.hpp',
      'classifier.hpp',
      'regression.hpp',
      'recommender.hpp',
      'stat.hpp',
      'anomaly.hpp',
      'graph.hpp',
      'nearest_neighbor.hpp',
      'clustering.hpp',
      'burst.hpp',
      'bandit.hpp',
      ]
  use = ['jubatus_util', 'MSGPACK']


  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', 'jubatus_core']
      )

  tests = [
    'anomaly_test',
    'classifier_test',
    'graph_test',
    'regression_test',
    'recommender_test',
    'stat_test',
    'nearest_neighbor_test',
    'clustering_test',
    'burst_test',
    'bandit_test',
    ]

  for t in tests:
    make_test(t)
