blob: 51b9b62ed982b107399cec73ef447e0dd7ba7a96 [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 Dukhanbfa3b9c2020-04-12 13:18:52 -070015 sources = ["legacy-api.c", "portable-api.c"]
Marat Dukhand54565d2017-03-06 21:18:42 -050016 if build.target.is_emscripten:
Marat Dukhanbfa3b9c2020-04-12 13:18:52 -070017 sources.append("shim.c")
18 elif build.target.is_macos:
19 sources.append("gcd.c")
20 elif build.target.is_windows:
21 sources.append("windows.c")
Marat Dukhand54565d2017-03-06 21:18:42 -050022 else:
Marat Dukhanbfa3b9c2020-04-12 13:18:52 -070023 sources.append("pthreads.c")
Marat Dukhan29f0e2c2019-09-30 15:22:14 -070024 build.static_library("pthreadpool", [build.cc(src) for src in sources])
Marat Dukhan0a312192015-08-22 17:46:29 -040025
Marat Dukhan616cbde2017-02-10 18:22:45 -050026 with build.options(source_dir="test", deps=[build, build.deps.googletest]):
27 build.unittest("pthreadpool-test", build.cxx("pthreadpool.cc"))
Marat Dukhan0a312192015-08-22 17:46:29 -040028
Marat Dukhaneecec4d2017-03-05 03:36:41 -050029 with build.options(source_dir="bench", deps=[build, build.deps.googlebenchmark]):
30 build.benchmark("latency-bench", build.cxx("latency.cc"))
31 build.benchmark("throughput-bench", build.cxx("throughput.cc"))
32
Marat Dukhan616cbde2017-02-10 18:22:45 -050033 return build
Marat Dukhan0a312192015-08-22 17:46:29 -040034
35
36if __name__ == "__main__":
Marat Dukhan616cbde2017-02-10 18:22:45 -050037 import sys
38 main(sys.argv[1:]).generate()