# -*- python -*-
import Options

def options(opt): pass

def configure(conf): pass

def make_test(bld, src, use):
  bld.program(
    features = 'gtest',
    source = src,
    target = src[0:src.rindex('.')],
    use = use,
    )

def make_tests(bld, srcs, use):
  for src in srcs:
    make_test(bld, src, use)

def build(bld):
  source = [
      'storage_factory.cpp',
      'storage_base.cpp',
      'local_storage.cpp',
      'local_storage_mixture.cpp',
      'sparse_matrix_storage.cpp',
      'inverted_index_storage.cpp',
      'bit_vector.cpp',
      'bit_index_storage.cpp',
      'lsh_vector.cpp',
      'lsh_util.cpp',
      'lsh_index_storage.cpp'
      ]
  headers = [
      'storage_base.hpp',
      'storage_type.hpp',
      'storage_factory.hpp',
      'bit_vector.hpp',
      'sparse_matrix_storage.hpp',
      'recommender_storage_base.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)

  make_tests(bld, [
      'storage_test.cpp',
      'storage_factory_test.cpp',
      'local_storage_mixture_test.cpp',
      'sparse_matrix_storage_test.cpp',
      'fixed_size_heap_test.cpp',
      'inverted_index_storage_test.cpp',
      'lsh_vector_test.cpp',
      'lsh_util_test.cpp',
      'lsh_index_storage_test.cpp',
      'bit_vector_test.cpp',
      'bit_index_storage_test.cpp',
      'storage_type_test.cpp',
      ], ['jubatus_util', 'jubatus_core'])

