# -*- python -*-
subdirs = 'mixer'

def options(opt):
  opt.recurse(subdirs)

def configure(conf):
  conf.recurse(subdirs)

def build(bld):
  bld.recurse(subdirs)

  framework_source = 'save_load.cpp server_util.cpp server_base.cpp server_helper.cpp'
  if 'HAVE_ZOOKEEPER_H' in bld.env.define_key:
    framework_source +=  ' proxy_common.cpp proxy.cpp'

  bld.shlib(
    source = framework_source,
    target = 'jubaserv_framework',
    includes = '.',
    use = 'JUBATUS_CORE MSGPACK JUBATUS_MPIO JUBATUS_MSGPACK_RPC MSGPACK jubaserv_mixer jubaserv_common jubaserv_common_mprpc jubaserv_common_logger',
    vnum = bld.env['ABI_VERSION'],
    )

  test_source = [
    'server_base_test.cpp',
  ]

  def make_test(t):
    bld.program(
      features='gtest',
      source=t,
      target = s[0:s.rfind('.')],
      includes='.',
      use='jubaserv_framework'
      )

  for s in test_source:
    make_test(s)

  header_files = [
    'save_load.hpp',
    'server_base.hpp',
    'server_helper.hpp',
    'server_util.hpp',
  ]
  if 'HAVE_ZOOKEEPER_H' in bld.env.define_key:
    header_files += [
      'proxy.hpp',
      'proxy_common.hpp',
      'aggregators.hpp'
    ]

  bld.install_files('${PREFIX}/include/jubatus/server/framework', header_files)
