]>
git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/buckifier/targets_builder.py
1 from __future__
import absolute_import
2 from __future__
import division
3 from __future__
import print_function
4 from __future__
import unicode_literals
7 def pretty_list(lst
, indent
=8):
8 if lst
is None or len(lst
) == 0:
12 return "\"%s\"" % lst
[0]
14 separator
= "\",\n%s\"" % (" " * indent
)
15 res
= separator
.join(sorted(lst
))
16 res
= "\n" + (" " * indent
) + "\"" + res
+ "\",\n" + (" " * (indent
- 4))
21 def __init__(self
, path
):
23 self
.targets_file
= open(path
, 'w')
24 self
.targets_file
.write(targets_cfg
.rocksdb_target_header
)
31 self
.targets_file
.close()
33 def add_library(self
, name
, srcs
, deps
=None, headers
=None):
34 headers_attr_prefix
= ""
36 headers_attr_prefix
= "auto_"
37 headers
= "AutoHeaders.RECURSIVE_GLOB"
38 self
.targets_file
.write(targets_cfg
.library_template
.format(
40 srcs
=pretty_list(srcs
),
41 headers_attr_prefix
=headers_attr_prefix
,
43 deps
=pretty_list(deps
)))
44 self
.total_lib
= self
.total_lib
+ 1
46 def add_binary(self
, name
, srcs
, deps
=None):
47 self
.targets_file
.write(targets_cfg
.binary_template
% (
51 self
.total_bin
= self
.total_bin
+ 1
53 def register_test(self
, test_name
, src
, is_parallel
):
56 exec_mode
= "parallel"
57 self
.tests_cfg
+= targets_cfg
.test_cfg_template
% (
62 self
.total_test
= self
.total_test
+ 1
64 def flush_tests(self
):
65 self
.targets_file
.write(targets_cfg
.unittests_template
% self
.tests_cfg
)