summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2017-10-18 06:33:44 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-10-18 06:33:44 +0000
commitaeff5b880b095e148e0243907d384d6f1d0a4c20 (patch)
tree9160a56f4005b21303fcc85dbc8ecdc6566a5e3c
parent7fb9a4d538b3691328f2f703a0bacbe2fd1f70bb (diff)
parentbfc9e71e0d851204d9f0f380b7f2def51875b657 (diff)
Merge "Use soong_ui directly, instead of make" am: e994b4b584 am: 0531e5c647 am: 98fc198f1f
am: bfc9e71e0d Change-Id: I5ef2f58b01632438702ac3bebb19b61000016dfe
-rw-r--r--tools/bit/command.cpp2
-rw-r--r--tools/bit/main.cpp7
-rw-r--r--tools/bit/make.cpp29
-rw-r--r--tools/bit/make.h2
4 files changed, 12 insertions, 28 deletions
diff --git a/tools/bit/command.cpp b/tools/bit/command.cpp
index 1ff7c221b26e..f95ea117a96e 100644
--- a/tools/bit/command.cpp
+++ b/tools/bit/command.cpp
@@ -189,7 +189,7 @@ run_command(const Command& command)
int
exec_with_path_search(const char* prog, char const* const* argv, char const* const* envp)
{
- if (prog[0] == '/') {
+ if (strchr(prog, '/') != NULL) {
return execve(prog, (char*const*)argv, (char*const*)envp);
} else {
char* pathEnv = strdup(getenv("PATH"));
diff --git a/tools/bit/main.cpp b/tools/bit/main.cpp
index a8a4cfcab351..a71cea1c44f9 100644
--- a/tools/bit/main.cpp
+++ b/tools/bit/main.cpp
@@ -623,12 +623,13 @@ run_phases(vector<Target*> targets, const Options& options)
const string buildProduct = get_required_env("TARGET_PRODUCT", false);
const string buildVariant = get_required_env("TARGET_BUILD_VARIANT", false);
const string buildType = get_required_env("TARGET_BUILD_TYPE", false);
- const string buildDevice = get_build_var(buildTop, "TARGET_DEVICE", false);
- const string buildId = get_build_var(buildTop, "BUILD_ID", false);
- const string buildOut = get_out_dir();
chdir_or_exit(buildTop.c_str());
+ const string buildDevice = get_build_var("TARGET_DEVICE", false);
+ const string buildId = get_build_var("BUILD_ID", false);
+ const string buildOut = get_out_dir();
+
// Get the modules for the targets
map<string,Module> modules;
read_modules(buildOut, buildDevice, &modules, false);
diff --git a/tools/bit/make.cpp b/tools/bit/make.cpp
index b2ee99c2c74c..5a9ab22719cb 100644
--- a/tools/bit/make.cpp
+++ b/tools/bit/make.cpp
@@ -36,31 +36,16 @@ using namespace std;
map<string,string> g_buildVars;
-static unsigned int
-get_thread_count()
-{
- unsigned int threads = std::thread::hardware_concurrency();
- // Guess if the value cannot be computed
- return threads == 0 ? 4 : static_cast<unsigned int>(threads * 1.3f);
-}
-
string
-get_build_var(const string& buildTop, const string& name, bool quiet)
+get_build_var(const string& name, bool quiet)
{
int err;
map<string,string>::iterator it = g_buildVars.find(name);
if (it == g_buildVars.end()) {
- Command cmd("make");
- cmd.AddArg("--no-print-directory");
- cmd.AddArg(string("-j") + std::to_string(get_thread_count()));
- cmd.AddArg("-C");
- cmd.AddArg(buildTop);
- cmd.AddArg("-f");
- cmd.AddArg("build/core/config.mk");
- cmd.AddArg(string("dumpvar-") + name);
- cmd.AddEnv("CALLED_FROM_SETUP", "true");
- cmd.AddEnv("BUILD_SYSTEM", "build/core");
+ Command cmd("build/soong/soong_ui.bash");
+ cmd.AddArg("--dumpvar-mode");
+ cmd.AddArg(name);
string output = trim(get_command_output(cmd, &err, quiet));
if (err == 0) {
@@ -208,10 +193,8 @@ read_modules(const string& buildOut, const string& device, map<string,Module>* r
int
build_goals(const vector<string>& goals)
{
- Command cmd("make");
- cmd.AddArg(string("-j") + std::to_string(get_thread_count()));
- cmd.AddArg("-f");
- cmd.AddArg("build/core/main.mk");
+ Command cmd("build/soong/soong_ui.bash");
+ cmd.AddArg("--make-mode");
for (size_t i=0; i<goals.size(); i++) {
cmd.AddArg(goals[i]);
}
diff --git a/tools/bit/make.h b/tools/bit/make.h
index bb83c6e14226..1c9504d62d46 100644
--- a/tools/bit/make.h
+++ b/tools/bit/make.h
@@ -31,7 +31,7 @@ struct Module
vector<string> installed;
};
-string get_build_var(const string& buildTop, const string& name, bool quiet);
+string get_build_var(const string& name, bool quiet);
/**
* Poke around in the out directory and try to find a device name that matches