From bdd9d5074534db22ef0030f52db35aa04721ed09 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Thu, 29 Dec 2022 19:19:55 +0100 Subject: [SCons] Refactor build tools. Split dependency builders into separate tools, optimize OpenSSL builds. --- tools/cmake.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tools/cmake.py (limited to 'tools/cmake.py') diff --git a/tools/cmake.py b/tools/cmake.py new file mode 100644 index 0000000..0d6ee6b --- /dev/null +++ b/tools/cmake.py @@ -0,0 +1,27 @@ + +def exists(env): + return True + + +def generate(env): + env.AddMethod(cmake_configure, "CMakeConfigure") + env.AddMethod(cmake_build, "CMakeBuild") + + +def cmake_configure(env, source, target, opt_args): + args = [ + "-B", + target, + ] + if env["platform"] == "windows" and env["use_mingw"]: + args.extend(["-G", "Unix Makefiles"]) + for arg in opt_args: + args.append(arg) + args.append(source) + return env.Execute("cmake " + " ".join(['"%s"' % a for a in args])) + + +def cmake_build(env, source, target=""): + jobs = env.GetOption("num_jobs") + env = env.Clone() + return env.Execute("cmake --build %s %s -j%s" % (source, "-t %s" % target if target else "", jobs)) -- cgit v1.2.3