diff options
author | Steven Moreland <smoreland@google.com> | 2019-10-25 16:34:31 -0700 |
---|---|---|
committer | Steven Moreland <smoreland@google.com> | 2019-10-26 00:03:12 +0000 |
commit | 4f80d6eab0e29b3eeae9ca54ade6c3fffb81dbaa (patch) | |
tree | cfc43f8f427aeb25c3c7e70021331baf5a69eaa4 | |
parent | 81e76c4ddf656613b30f29d4cf02492234ff81d8 (diff) | |
download | hidl-4f80d6eab0e29b3eeae9ca54ade6c3fffb81dbaa.tar.gz |
libhidlmetadata: compiler faster
On some branches w/ many interfaces, m libhidlmetadata:
- don't optimize (~10min -> ~1min)
- explicit types (~1min -> ~30s)
Fixes: 143375846
Test: compilation time
Change-Id: Ifd16afaff781a45e08cc2eff24e2982af55bdaf1
-rw-r--r-- | metadata/Android.bp | 2 | ||||
-rw-r--r-- | metadata/parser.cpp | 10 |
2 files changed, 7 insertions, 5 deletions
diff --git a/metadata/Android.bp b/metadata/Android.bp index 0a7fd487..e3b4eea6 100644 --- a/metadata/Android.bp +++ b/metadata/Android.bp @@ -4,6 +4,8 @@ cc_library { host_supported: true, srcs: [":hidl_metadata_in_cpp"], export_include_dirs: ["include"], + + cflags: ["-O0"], } // private impl below diff --git a/metadata/parser.cpp b/metadata/parser.cpp index ae78415f..ff0be558 100644 --- a/metadata/parser.cpp +++ b/metadata/parser.cpp @@ -37,14 +37,14 @@ int main(int argc, char** argv) { std::cout << "#include <hidl/metadata.h>" << std::endl; std::cout << "namespace android {" << std::endl; std::cout << "std::vector<HidlInterfaceMetadata> HidlInterfaceMetadata::all() {" << std::endl; - std::cout << "return {" << std::endl; + std::cout << "return std::vector<HidlInterfaceMetadata>{" << std::endl; for (const Json::Value& entry : root) { - std::cout << "{" << std::endl; + std::cout << "HidlInterfaceMetadata{" << std::endl; // HIDL interface characters guaranteed to be accepted in C++ string - std::cout << "\"" << entry["interface"].asString() << "\"," << std::endl; - std::cout << "{" << std::endl; + std::cout << "std::string(\"" << entry["interface"].asString() << "\")," << std::endl; + std::cout << "std::vector<std::string>{" << std::endl; for (const Json::Value& intf : entry["inheritedInterfaces"]) { - std::cout << "\"" << intf.asString() << "\"," << std::endl; + std::cout << "std::string(\"" << intf.asString() << "\")," << std::endl; } std::cout << "}," << std::endl; std::cout << "}," << std::endl; |