diff options
Diffstat (limited to 'tools/cmake.py')
-rw-r--r-- | tools/cmake.py | 27 |
1 files changed, 27 insertions, 0 deletions
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)) |