def options(ctx): pass

def configure(ctx): pass

def build(bld):
  source = [
    'recommender_base.cpp',
    'recommender_mock.cpp',
    'recommender_mock_storage.cpp',
    'recommender_mock_util.cpp',
    'inverted_index.cpp',
    'minhash.cpp',
    'lsh.cpp',
    'recommender_factory.cpp',
    'lsh_util.cpp',
    'euclid_lsh.cpp',
    'nearest_neighbor_recommender.cpp',
    ]
  headers = [
      'recommender_base.hpp',
      'recommender_factory.hpp',
      'recommender_type.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(s):
    bld.program(
      features = 'gtest',
      source = s,
      target = s[0:s.rfind('.')],
      includes = '.',
      use = ['jubatus_util', 'jubatus_core'])

  map(make_test, [
      'recommender_base_test.cpp',
      'recommender_mock_storage_test.cpp',
      'recommender_mock_test.cpp',
      'recommender_random_test.cpp',
      'lsh_util_test.cpp',
      'euclid_lsh_test.cpp',
      'minhash_test.cpp',
      'lsh_test.cpp',
      'recommender_factory_test.cpp',
      ])
