blob: 75fa736c8252008586966bffde5e7e73e911ce5e [file] [log] [blame]
Marat Dukhan0a312192015-08-22 17:46:29 -04001#!/usr/bin/env python
2
Marat Dukhan616cbde2017-02-10 18:22:45 -05003
4import confu
5parser = confu.standard_parser("pthreadpool configuration script")
Marat Dukhan0a312192015-08-22 17:46:29 -04006
7
Marat Dukhan616cbde2017-02-10 18:22:45 -05008def main(args):
9 options = parser.parse_args(args)
10 build = confu.Build.from_options(options)
Marat Dukhan0a312192015-08-22 17:46:29 -040011
Marat Dukhan616cbde2017-02-10 18:22:45 -050012 build.export_cpath("include", ["pthreadpool.h"])
Marat Dukhan0a312192015-08-22 17:46:29 -040013
Marat Dukhan616cbde2017-02-10 18:22:45 -050014 with build.options(source_dir="src", extra_include_dirs="src", deps=build.deps.fxdiv):
Marat Dukhand54565d2017-03-06 21:18:42 -050015 if build.target.is_emscripten:
16 source = "threadpool-shim.c"
17 else:
18 source = "threadpool-pthreads.c"
19 build.static_library("pthreadpool", build.cc(source))
Marat Dukhan0a312192015-08-22 17:46:29 -040020
Marat Dukhan616cbde2017-02-10 18:22:45 -050021 with build.options(source_dir="test", deps=[build, build.deps.googletest]):
22 build.unittest("pthreadpool-test", build.cxx("pthreadpool.cc"))
Marat Dukhan0a312192015-08-22 17:46:29 -040023
Marat Dukhaneecec4d2017-03-05 03:36:41 -050024 with build.options(source_dir="bench", deps=[build, build.deps.googlebenchmark]):
25 build.benchmark("latency-bench", build.cxx("latency.cc"))
26 build.benchmark("throughput-bench", build.cxx("throughput.cc"))
27
Marat Dukhan616cbde2017-02-10 18:22:45 -050028 return build
Marat Dukhan0a312192015-08-22 17:46:29 -040029
30
31if __name__ == "__main__":
Marat Dukhan616cbde2017-02-10 18:22:45 -050032 import sys
33 main(sys.argv[1:]).generate()