xref: /aosp_15_r20/external/pthreadpool/configure.py (revision b095b0533730c2930f947df924a4486d266faa1a)
1*b095b053SXin Li#!/usr/bin/env python
2*b095b053SXin Li
3*b095b053SXin Li
4*b095b053SXin Liimport confu
5*b095b053SXin Liparser = confu.standard_parser("pthreadpool configuration script")
6*b095b053SXin Li
7*b095b053SXin Li
8*b095b053SXin Lidef main(args):
9*b095b053SXin Li    options = parser.parse_args(args)
10*b095b053SXin Li    build = confu.Build.from_options(options)
11*b095b053SXin Li
12*b095b053SXin Li    build.export_cpath("include", ["pthreadpool.h"])
13*b095b053SXin Li
14*b095b053SXin Li    with build.options(source_dir="src", extra_include_dirs="src", deps=build.deps.fxdiv):
15*b095b053SXin Li        sources = ["legacy-api.c", "portable-api.c"]
16*b095b053SXin Li        if build.target.is_emscripten:
17*b095b053SXin Li            sources.append("shim.c")
18*b095b053SXin Li        elif build.target.is_macos:
19*b095b053SXin Li            sources.append("gcd.c")
20*b095b053SXin Li        elif build.target.is_windows:
21*b095b053SXin Li            sources.append("windows.c")
22*b095b053SXin Li        else:
23*b095b053SXin Li            sources.append("pthreads.c")
24*b095b053SXin Li        build.static_library("pthreadpool", [build.cc(src) for src in sources])
25*b095b053SXin Li
26*b095b053SXin Li    with build.options(source_dir="test", deps=[build, build.deps.googletest]):
27*b095b053SXin Li        build.unittest("pthreadpool-test", build.cxx("pthreadpool.cc"))
28*b095b053SXin Li
29*b095b053SXin Li    with build.options(source_dir="bench", deps=[build, build.deps.googlebenchmark]):
30*b095b053SXin Li        build.benchmark("latency-bench", build.cxx("latency.cc"))
31*b095b053SXin Li        build.benchmark("throughput-bench", build.cxx("throughput.cc"))
32*b095b053SXin Li
33*b095b053SXin Li    return build
34*b095b053SXin Li
35*b095b053SXin Li
36*b095b053SXin Liif __name__ == "__main__":
37*b095b053SXin Li    import sys
38*b095b053SXin Li    main(sys.argv[1:]).generate()
39