Marat Dukhan | 0a31219 | 2015-08-22 17:46:29 -0400 | [diff] [blame] | 1 | #!/usr/bin/env python |
| 2 | |
Marat Dukhan | 616cbde | 2017-02-10 18:22:45 -0500 | [diff] [blame] | 3 | |
| 4 | import confu |
| 5 | parser = confu.standard_parser("pthreadpool configuration script") |
Marat Dukhan | 0a31219 | 2015-08-22 17:46:29 -0400 | [diff] [blame] | 6 | |
| 7 | |
Marat Dukhan | 616cbde | 2017-02-10 18:22:45 -0500 | [diff] [blame] | 8 | def main(args): |
| 9 | options = parser.parse_args(args) |
| 10 | build = confu.Build.from_options(options) |
Marat Dukhan | 0a31219 | 2015-08-22 17:46:29 -0400 | [diff] [blame] | 11 | |
Marat Dukhan | 616cbde | 2017-02-10 18:22:45 -0500 | [diff] [blame] | 12 | build.export_cpath("include", ["pthreadpool.h"]) |
Marat Dukhan | 0a31219 | 2015-08-22 17:46:29 -0400 | [diff] [blame] | 13 | |
Marat Dukhan | 616cbde | 2017-02-10 18:22:45 -0500 | [diff] [blame] | 14 | with build.options(source_dir="src", extra_include_dirs="src", deps=build.deps.fxdiv): |
Marat Dukhan | bfa3b9c | 2020-04-12 13:18:52 -0700 | [diff] [blame] | 15 | sources = ["legacy-api.c", "portable-api.c"] |
Marat Dukhan | d54565d | 2017-03-06 21:18:42 -0500 | [diff] [blame] | 16 | if build.target.is_emscripten: |
Marat Dukhan | bfa3b9c | 2020-04-12 13:18:52 -0700 | [diff] [blame] | 17 | 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 Dukhan | d54565d | 2017-03-06 21:18:42 -0500 | [diff] [blame] | 22 | else: |
Marat Dukhan | bfa3b9c | 2020-04-12 13:18:52 -0700 | [diff] [blame] | 23 | sources.append("pthreads.c") |
Marat Dukhan | 29f0e2c | 2019-09-30 15:22:14 -0700 | [diff] [blame] | 24 | build.static_library("pthreadpool", [build.cc(src) for src in sources]) |
Marat Dukhan | 0a31219 | 2015-08-22 17:46:29 -0400 | [diff] [blame] | 25 | |
Marat Dukhan | 616cbde | 2017-02-10 18:22:45 -0500 | [diff] [blame] | 26 | with build.options(source_dir="test", deps=[build, build.deps.googletest]): |
| 27 | build.unittest("pthreadpool-test", build.cxx("pthreadpool.cc")) |
Marat Dukhan | 0a31219 | 2015-08-22 17:46:29 -0400 | [diff] [blame] | 28 | |
Marat Dukhan | eecec4d | 2017-03-05 03:36:41 -0500 | [diff] [blame] | 29 | 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 Dukhan | 616cbde | 2017-02-10 18:22:45 -0500 | [diff] [blame] | 33 | return build |
Marat Dukhan | 0a31219 | 2015-08-22 17:46:29 -0400 | [diff] [blame] | 34 | |
| 35 | |
| 36 | if __name__ == "__main__": |
Marat Dukhan | 616cbde | 2017-02-10 18:22:45 -0500 | [diff] [blame] | 37 | import sys |
| 38 | main(sys.argv[1:]).generate() |