aboutsummaryrefslogtreecommitdiffstats
path: root/main.cc
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-07-06 19:51:58 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-07-06 19:51:58 +0900
commit087cecdc4a0d34aec91a48dbf42bccf4260792f9 (patch)
treecd0d7e76b107ae21d8596f81b48b23b62a971719 /main.cc
parent8bddb46a8275ed3c4737c0d8020372ad17946ae1 (diff)
downloadandroid_build_kati-087cecdc4a0d34aec91a48dbf42bccf4260792f9.tar.gz
android_build_kati-087cecdc4a0d34aec91a48dbf42bccf4260792f9.tar.bz2
android_build_kati-087cecdc4a0d34aec91a48dbf42bccf4260792f9.zip
[C++] Make it possible to specify the number of jobs
Diffstat (limited to 'main.cc')
-rw-r--r--main.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/main.cc b/main.cc
index 163a114..c293b55 100644
--- a/main.cc
+++ b/main.cc
@@ -17,6 +17,7 @@
#include <limits.h>
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include <unistd.h>
#include "ast.h"
@@ -62,12 +63,21 @@ static bool ParseCommandLineOptionWithArg(StringPiece option,
*out_arg = arg + option.size() + 1;
return true;
}
+ // E.g, -j999
+ if (option.size() == 2) {
+ *out_arg = arg + option.size();
+ return true;
+ }
return false;
}
static void ParseCommandLine(int argc, char* argv[],
vector<Symbol>* targets,
vector<StringPiece>* cl_vars) {
+ // TODO: Decide the appropriate number based on the number of cores.
+ g_num_jobs = 32;
+ const char* num_jobs_str;
+
for (int i = 1; i < argc; i++) {
const char* arg = argv[i];
if (!strcmp(arg, "-f")) {
@@ -81,6 +91,12 @@ static void ParseCommandLine(int argc, char* argv[],
} else if (!strcmp(arg, "--ninja")) {
g_generate_ninja = true;
} else if (ParseCommandLineOptionWithArg(
+ "-j", argv, &i, &num_jobs_str)) {
+ g_num_jobs = strtol(num_jobs_str, NULL, 10);
+ if (g_num_jobs <= 0) {
+ ERROR("Invalid -j flag: %s", num_jobs_str);
+ }
+ } else if (ParseCommandLineOptionWithArg(
"--ninja_suffix", argv, &i, &g_ninja_suffix)) {
} else if (!strcmp(arg, "--use_find_emulator")) {
g_use_find_emulator = true;