6414023e523eae236a25bbde3bd37e71bb629ecd
[bluesky.git] / kvstore / SConscript
1 Import('env')
2
3 protobuf = Builder(
4     action = (
5         'protoc --proto_path=${SOURCE.dir} --cpp_out=${TARGET.dir} $SOURCE'
6              ),
7     single_source = True,
8     )
9
10 env["BUILDERS"]["Protobuf"] = protobuf
11
12 env.ParseConfig("echo -I./protobufrpc")
13 env.ParseConfig("echo -I/opt/local/include -L/opt/local/lib")
14
15 if not env.has_key('LIBS'):
16     env['LIBS'] = []
17
18 env['LIBS'] += ['protobuf',
19                 'pthread',
20                 'boost_thread-mt',
21                 'boost_regex-mt',
22                 'boost_system-mt',
23                 'boost_program_options-mt',
24                 'db']
25
26 protobufrpc = SConscript(dirs=['./protobufrpc/'], exports='env')
27
28 kvstore_proto_files = env.Protobuf(
29         target = [ 'kvstore.pb.cc', 'kvstore.pb.h' ],
30         source = 'kvstore.proto'
31     )
32
33 kvservice_files = ['kvservice.cc', 'backend.cc']
34 kvclient_files = ['kvclient.cc']
35
36 kvservice = env.StaticLibrary('kvservice', kvservice_files)
37 kvclient = env.StaticLibrary('kvclient', kvclient_files)
38 kvstore_proto = env.StaticLibrary('kvstore', kvstore_proto_files)
39
40 env.Program('kvstore', ['kvstore.cc']
41                        + kvservice
42                        + kvstore_proto
43                        + protobufrpc)
44
45 env.Program('kvtest',
46             ['kvtest.cc']
47                     + kvservice
48                     + kvclient
49                     + kvstore_proto
50                     + protobufrpc,
51             LIBS=env['LIBS']+['gtest'])
52
53 env.Program('kvbench',
54             ['kvbench.cc']
55                     + kvclient
56                     + kvstore_proto
57                     + protobufrpc)
58
59 products = {
60             'kvservice': kvservice,
61             'kvclient': kvclient,
62             'kvstore_proto': kvstore_proto,
63            }
64
65 Return('products')