Merge "Use soong_ui directly, instead of make" am: e994b4b584
am: 0531e5c647
am: 98fc198f1f
Change-Id: Id17adee4b02cc499261f88c3faed15d889f5b6c3
This commit is contained in:
@ -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"));
|
||||
|
@ -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);
|
||||
|
@ -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]);
|
||||
}
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user