diff options
-rw-r--r-- | tools/bit/command.cpp | 2 | ||||
-rw-r--r-- | tools/bit/main.cpp | 7 | ||||
-rw-r--r-- | tools/bit/make.cpp | 29 | ||||
-rw-r--r-- | tools/bit/make.h | 2 |
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 a8002417b916..ef3ccc541589 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 |