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