blob: fd4ce922635c51a688881224ea4289c105860fa8 [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 Dukhan29f0e2c2019-09-30 15:22:14 -070015 sources = ["threadpool-legacy.c"]
Marat Dukhand54565d2017-03-06 21:18:42 -050016 if build.target.is_emscripten:
Marat Dukhan51d46942019-09-30 16:21:19 -070017 sources.append("threadpool-shim.c")
Marat Dukhand54565d2017-03-06 21:18:42 -050018 else:
Marat Dukhan51d46942019-09-30 16:21:19 -070019 sources.append("threadpool-pthreads.c")
Marat Dukhan29f0e2c2019-09-30 15:22:14 -070020 build.static_library("pthreadpool", [build.cc(src) for src in sources])
Marat Dukhan0a312192015-08-22 17:46:29 -040021
Marat Dukhan616cbde2017-02-10 18:22:45 -050022 with build.options(source_dir="test", deps=[build, build.deps.googletest]):
23 build.unittest("pthreadpool-test", build.cxx("pthreadpool.cc"))
Marat Dukhan0a312192015-08-22 17:46:29 -040024
Marat Dukhaneecec4d2017-03-05 03:36:41 -050025 with build.options(source_dir="bench", deps=[build, build.deps.googlebenchmark]):
26 build.benchmark("latency-bench", build.cxx("latency.cc"))
27 build.benchmark("throughput-bench", build.cxx("throughput.cc"))
28
Marat Dukhan616cbde2017-02-10 18:22:45 -050029 return build
Marat Dukhan0a312192015-08-22 17:46:29 -040030
31
32if __name__ == "__main__":
Marat Dukhan616cbde2017-02-10 18:22:45 -050033 import sys
34 main(sys.argv[1:]).generate()