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
|
int
|
||||||
exec_with_path_search(const char* prog, char const* const* argv, char const* const* envp)
|
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);
|
return execve(prog, (char*const*)argv, (char*const*)envp);
|
||||||
} else {
|
} else {
|
||||||
char* pathEnv = strdup(getenv("PATH"));
|
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 buildProduct = get_required_env("TARGET_PRODUCT", false);
|
||||||
const string buildVariant = get_required_env("TARGET_BUILD_VARIANT", false);
|
const string buildVariant = get_required_env("TARGET_BUILD_VARIANT", false);
|
||||||
const string buildType = get_required_env("TARGET_BUILD_TYPE", 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());
|
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
|
// Get the modules for the targets
|
||||||
map<string,Module> modules;
|
map<string,Module> modules;
|
||||||
read_modules(buildOut, buildDevice, &modules, false);
|
read_modules(buildOut, buildDevice, &modules, false);
|
||||||
|
@ -36,31 +36,16 @@ using namespace std;
|
|||||||
|
|
||||||
map<string,string> g_buildVars;
|
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
|
string
|
||||||
get_build_var(const string& buildTop, const string& name, bool quiet)
|
get_build_var(const string& name, bool quiet)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
map<string,string>::iterator it = g_buildVars.find(name);
|
map<string,string>::iterator it = g_buildVars.find(name);
|
||||||
if (it == g_buildVars.end()) {
|
if (it == g_buildVars.end()) {
|
||||||
Command cmd("make");
|
Command cmd("build/soong/soong_ui.bash");
|
||||||
cmd.AddArg("--no-print-directory");
|
cmd.AddArg("--dumpvar-mode");
|
||||||
cmd.AddArg(string("-j") + std::to_string(get_thread_count()));
|
cmd.AddArg(name);
|
||||||
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");
|
|
||||||
|
|
||||||
string output = trim(get_command_output(cmd, &err, quiet));
|
string output = trim(get_command_output(cmd, &err, quiet));
|
||||||
if (err == 0) {
|
if (err == 0) {
|
||||||
@ -208,10 +193,8 @@ read_modules(const string& buildOut, const string& device, map<string,Module>* r
|
|||||||
int
|
int
|
||||||
build_goals(const vector<string>& goals)
|
build_goals(const vector<string>& goals)
|
||||||
{
|
{
|
||||||
Command cmd("make");
|
Command cmd("build/soong/soong_ui.bash");
|
||||||
cmd.AddArg(string("-j") + std::to_string(get_thread_count()));
|
cmd.AddArg("--make-mode");
|
||||||
cmd.AddArg("-f");
|
|
||||||
cmd.AddArg("build/core/main.mk");
|
|
||||||
for (size_t i=0; i<goals.size(); i++) {
|
for (size_t i=0; i<goals.size(); i++) {
|
||||||
cmd.AddArg(goals[i]);
|
cmd.AddArg(goals[i]);
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ struct Module
|
|||||||
vector<string> installed;
|
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
|
* Poke around in the out directory and try to find a device name that matches
|
||||||
|
Reference in New Issue
Block a user