• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python
2
3
4import confu
5parser = confu.standard_parser("pthreadpool configuration script")
6
7
8def main(args):
9    options = parser.parse_args(args)
10    build = confu.Build.from_options(options)
11
12    build.export_cpath("include", ["pthreadpool.h"])
13
14    with build.options(source_dir="src", extra_include_dirs="src", deps=build.deps.fxdiv):
15        sources = ["legacy-api.c", "portable-api.c"]
16        if build.target.is_emscripten:
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")
22        else:
23            sources.append("pthreads.c")
24        build.static_library("pthreadpool", [build.cc(src) for src in sources])
25
26    with build.options(source_dir="test", deps=[build, build.deps.googletest]):
27        build.unittest("pthreadpool-test", build.cxx("pthreadpool.cc"))
28
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
33    return build
34
35
36if __name__ == "__main__":
37    import sys
38    main(sys.argv[1:]).generate()
39