diff options
author | Romain Guy <romainguy@google.com> | 2017-01-11 18:34:57 -0800 |
---|---|---|
committer | Romain Guy <romainguy@google.com> | 2017-01-11 18:34:57 -0800 |
commit | d973affed21e490a9eef1ae76dfcc3bd0358cb0e (patch) | |
tree | 7ba9092ddfb9b8110e2db97b3f5548c259515c99 | |
parent | bede012069321f7e1a264ac3ed55f45f39102627 (diff) |
Compile bit on darwin, use -j when invoking make
Test: ran the host tool and checked the output
Change-Id: Idd561139348779982b8c01977fcc18fdfbd0134d
-rw-r--r-- | tools/bit/Android.mk | 4 | ||||
-rw-r--r-- | tools/bit/make.cpp | 11 |
2 files changed, 12 insertions, 3 deletions
diff --git a/tools/bit/Android.mk b/tools/bit/Android.mk index 1c1291f07d2e..57f46d490f24 100644 --- a/tools/bit/Android.mk +++ b/tools/bit/Android.mk @@ -22,8 +22,7 @@ include $(CLEAR_VARS) LOCAL_MODULE := bit -# This tool doesn't build on darwin. -LOCAL_MODULE_HOST_OS := linux +LOCAL_MODULE_HOST_OS := linux darwin LOCAL_SRC_FILES := \ aapt.cpp \ @@ -43,4 +42,3 @@ LOCAL_SHARED_LIBRARIES := \ libprotobuf-cpp-full include $(BUILD_HOST_EXECUTABLE) - diff --git a/tools/bit/make.cpp b/tools/bit/make.cpp index 60b5687bb313..a8002417b916 100644 --- a/tools/bit/make.cpp +++ b/tools/bit/make.cpp @@ -26,6 +26,7 @@ #include <fstream> #include <string> #include <map> +#include <thread> #include <sys/types.h> #include <dirent.h> @@ -35,6 +36,14 @@ 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) { @@ -44,6 +53,7 @@ get_build_var(const string& buildTop, const string& name, bool quiet) 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"); @@ -199,6 +209,7 @@ 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"); for (size_t i=0; i<goals.size(); i++) { |