History log of /system/tools/hidl/main.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4cc8bda3bb740d7ec3be6d3804a09bf46dacd39b 15-Jun-2017 Steven Moreland <smoreland@google.com> Explicitly generate _vendor library.

Explicitly create '_vendor' copies of libraries so that
vendor code can link against the extensions. When this is
used, framework code should link against vendor.awesome.foo@1.0
and code on the vendor image should link against
vendor.awesome.foo@1.0_vendor. For libraries with the below extensions,
they will be available even on the generic system image.
Because of this, they should always be referenced without the
'_vendor' name suffix.

Note: vendor_available is still outputted even though
it is for the time being a no-op

Bug: 35813011
Bug: 62616897
Test: system hidl lib definitions are unchanged
Test: vendor hidl lib definitions include vendor definition
Merged-In: I9fcc4b4b6f2093fadec7a832413ae168d1ebcfb9
Change-Id: I9fcc4b4b6f2093fadec7a832413ae168d1ebcfb9
/system/tools/hidl/main.cpp
cdeeef05fd9660cddeee3c28e6e6ae0e4493a778 19-May-2017 Steven Moreland <smoreland@google.com> Add 'hidl-module-defaults'

This default library is added to all hals and allows us to
specify special behavior without having to update all hals
everywhere.

Test: boot internal marlin
Bug: 38415912
Merged-In: Iaf71375fabe642d9f28d2790c8a9e7934ca419dc
Change-Id: Iaf71375fabe642d9f28d2790c8a9e7934ca419dc
/system/tools/hidl/main.cpp
4f7b11c4dcbc51337341226c2a6b604c811046f1 09-May-2017 Steven Moreland <smoreland@google.com> Add c++-headers and c++-sources

This way, hidl-gen won't generate headers+sources multiple times.

Test: hidl implementations still link
Test: updated various interface roots
Bug: 38174080
Merged-In: Ibc036df4bda7e4f41eb92865fe3e47376a6a3fbd
Change-Id: Ibc036df4bda7e4f41eb92865fe3e47376a6a3fbd
/system/tools/hidl/main.cpp
297bfb38efb2c41e6d1da89e525ef0be43b5ff2a 09-May-2017 Steven Moreland <smoreland@google.com> Add generationFunctionForFileOrPackage

This removes a ton of duplicated code that has been bothering me.

Test: hidl_hash_test
Test: mma -j64 (runs hidl-gen targets)
Merged-In: Ib9918ce9b34c396862415448900b786179673e9b
Change-Id: Ib9918ce9b34c396862415448900b786179673e9b
/system/tools/hidl/main.cpp
ec642438e32309b694a4b3303f8c5a6a524dda20 25-Apr-2017 Steven Moreland <smoreland@google.com> Vendor extension hals on the vendor image.

This is required to make sure

Test: running hidl-gen on vendor image, image built to vendor
Test: update-makefiles is no-op on:
hardware/interfaces
frameworks/hardware/interfaces
system/hardware/interfaces
system/libhidl/transport
Bug: 35813011

Change-Id: Ie3f4aef0f9088c09c108030084e71d5921599c4d
/system/tools/hidl/main.cpp
68339cd0c32e743286565ff67797f0a5984b6513 19-Apr-2017 Steven Moreland <smoreland@google.com> Move hidl hash into its own lib.

This is required to make it simple for VTS tests to make use of this
library.

Note: also moved host only libs to be host only in the build system

Test: adding things to frozen interfaces breaks the build
Test: hidl-gen compiles android.hardware.nfc@1.0 hal
Bug: 34178341
Change-Id: I763c7ed7fd40dd2d4c7897512f5cd7e6bfc48935
/system/tools/hidl/main.cpp
ad425622cbf8ba7d337cd706094da56e50208712 19-Apr-2017 Steven Moreland <smoreland@google.com> Add -L hash

Test: with -Lhash:
hidl-gen -L hash -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.nfc@1.0::types
hidl-gen -L hash -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.nfc@1.0::INfc
hidl-gen -L hash -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.nfc@1.0::INfcClientCallback
hidl-gen -L hash -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.nfc@1.0

Bug: 34178341
Change-Id: Ibe3707e40c501bec307204b603ba5b596b9fc049
/system/tools/hidl/main.cpp
17456f1166edbd709089c95f58217b915468cf1c 13-Apr-2017 Andreas Huber <andih@google.com> Changed the naming scheme for Treble java libraries (both static and dynamic)

android.hardware.foo@1.0-java => android.hardware.foo-V1.0-java

Bug: 37207894
Test: make
Change-Id: I0f62c49a098400a9798b31d0912f0155bbe75c08
Merged-In: Ia87b63d5c90772e4620aa9fe3ce431b297be117b
/system/tools/hidl/main.cpp
a0927217277c32e00256ea84581285cd686dc369 07-Apr-2017 Dan Willemsen <dwillemsen@google.com> Mark as vendor_available

By setting vendor_available, the following may become true:

* a prebuilt library from this release may be used at runtime by
in a later releasse (by vendor code compiled against this release).
so this library shouldn't depend on runtime state that may change
in the future.
* this library may be loaded twice into a single process (potentially
an old version and a newer version). The symbols will be isolated
using linker namespaces, but this may break assumptions about 1
library in 1 process (your singletons will run twice).

Background:

This means that these modules may be built and installed twice --
once for the system partition and once for the vendor partition. The
system version will build just like today, and will be used by the
framework components on /system. The vendor version will build
against a reduced set of exports and libraries -- similar to, but
separate from, the NDK. This means that all your dependencies must
also mark vendor_available.

At runtime, /system binaries will load libraries from /system/lib*,
while /vendor binaries will load libraries from /vendor/lib*. There
are some exceptions in both directions -- bionic(libc,etc) and liblog
are always loaded from /system. And SP-HALs (OpenGL, etc) may load
/vendor code into /system processes, but the dependencies of those
libraries will load from /vendor until it reaches a library that's
always on /system. In the SP-HAL case, if both framework and vendor
libraries depend on a library of the same name, both versions will be
loaded, but they will be isolated from each other.

It's possible to compile differently -- reducing your source files,
exporting different include directories, etc. For details see:

https://android-review.googlesource.com/368372

None of this is enabled unless the device opts into the system/vendor
split with BOARD_VNDK_VERSION := current.

Bug: 36426473
Bug: 36079834
Bug: 35813011
Test: Android-aosp_arm.mk is the same before/after
Test: build.ninja is the same before/after
Test: build-aosp_arm.ninja is the same before/after
Test: attempt to compile with BOARD_VNDK_VERSION := current
Merged-In: I98dc8f5d3cb147336ae0aea46f5941a9eb57ab90
Change-Id: I98dc8f5d3cb147336ae0aea46f5941a9eb57ab90
/system/tools/hidl/main.cpp
9774d62e3a5cfbf228fd739f2f24034146a94f22 25-Mar-2017 Steven Moreland <smoreland@google.com> Add hwtypes.h to -Landroidbp

Test: update-makefiles produces correct output and building those files.
Change-Id: Ibacc510adca325d71ae11c319f620d961f0a18d1
/system/tools/hidl/main.cpp
ff5262be9f7a9133d2fb135f9c8717444c00056d 20-Mar-2017 Steven Moreland <smoreland@google.com> hidl-gen: Android.bp, include indirect libraries.

Test: hidl_test, versioning builds, update-makefiles.sh
Bug: 36162559
Change-Id: I4fb628fda976c979678d33413aead03ac46ecdfe
/system/tools/hidl/main.cpp
d9e5d6f84ff57950899ce196b5dcc89de4a91cbd 24-Feb-2017 Steven Moreland <smoreland@google.com> -Landroidbp-impl shouldn't require libhwbinder

Bug: 35710429
Test: -Lc++-impl and -Landroidbp-impl of IFoo links and works
Change-Id: I053146131925137b2c6b6623260432425ac8d56b
/system/tools/hidl/main.cpp
d18c3ba4d0b5bdc4dd380a407910d58b49196d93 24-Feb-2017 Glenn Kasten <gkasten@google.com> -Lexport-header includes package root.

Looks like this:
// Source: android.hardware.nfc@1.0
// Root: android.hardware:hardware/interfaces

Bug: 33541458
Test: -Lexport-header

Change-Id: I11fe22066aa5f5a0cbee4bb0c46428c3629e7d40
/system/tools/hidl/main.cpp
f8a22e9b6ddfdf0ba4e9b0f0a09ec83ad685ae63 16-Feb-2017 Steven Moreland <smoreland@google.com> androidbp-impl emits proprietary: true

Test: generate project with c++-impl/anroidbp-impl, built correctly to
the vendor partition
Bug: 34135607

Change-Id: I8af6d148f64e6ae35e8133c8e5c4a0cc3b33664f
/system/tools/hidl/main.cpp
6a827fa11ac33b3da50d3e8dea057c3086953d86 08-Feb-2017 Tri Vo <trong@google.com> Use filegroup as hal genrule srcs.

Test: mma
Change-Id: I62d35fbd9dabee2ea1dfe146c5e7736e2ee6bec4
/system/tools/hidl/main.cpp
177a8b1db6432472cdda1311219dd83c2a78d3b5 09-Feb-2017 Andreas Huber <andih@google.com> Updated Java intermediates directory.

Java intermediates are now created in the common rather than the device-
specific generated sources subdirectory.

Bug: 33842609
Test: make
Change-Id: I37dba3a3cb9ba4e65f64150fa74e0d473c5e71e6
/system/tools/hidl/main.cpp
15052c66c9109f90e0a9cc4979b5b95821da43b3 06-Feb-2017 Tri Vo <trong@google.com> Generate filegroup build rule for .hal files.

Remove vts driver/profiler build rule generation.

Bug: 34893894
Test: mmma system/tools/hidl
Change-Id: If4af3afd0c6f9bb39a9a80b387d403fc397a69e3
/system/tools/hidl/main.cpp
3bcca70def27a26a3b0f49cb29b8a919f8243f91 02-Feb-2017 Zhuoyao Zhang <zhuoyao@google.com> Support driver/profiler for all hals.

* Remove the filter to generate build rule of driver/profiler for hals.

Test: make hidl-gen.
Change-Id: If529d935be1cc36e254d75adb0dc23b7452fc4c6
/system/tools/hidl/main.cpp
c4e10605564ba5a8c656e5eabecd237abdc310e1 28-Jan-2017 Zhuoyao Zhang <zhuoyao@google.com> Update hidl-gen for vts backend.

* Generate the type definition from all imported interface/types.
* Update the logic to generate a single profiler package for a hal
package.
Test: make hidl-gen
Change-Id: I634c435af9913f74fa0e2495908a1805097649c4
/system/tools/hidl/main.cpp
246bb934cfa454cbcbeb05a2a33f5cf0746778af 01-Feb-2017 Ryan Campbell <ryanjcampbell@google.com> Support gatekeeper HAL in hidl gen.

Add android.hardware.gatekeeper@1.0 to the supported package
names list.

Test: cs hardware/interfaces; mma
Bug: 34178574
Change-Id: I5e19b75f34741ec3be7baa28a5d45fc26ebe7cc9
/system/tools/hidl/main.cpp
855ee24ca6774622e13bcefde1de3d27fa72a22e 30-Jan-2017 Ryan Campbell <ryanjcampbell@google.com> Support DRM HAL in hidl gen.

Add android.hardware.drm@1.0 to the supported package names list.

Test: cd hardware/interfaces; mma
Bug: 34801248
Change-Id: Ie994ea8cf859621ea2c1cbe6f8d2ea47029dc75f
/system/tools/hidl/main.cpp
653ef873fe5e8f07cd2754daf32c322ffaba34f4 23-Jan-2017 Ryan Campbell <ryanjcampbell@google.com> Support fingerprint HAL in hidl gen.

Add android.hardware.biometrics.fingerprint@2.1 to the supported
package names.

Test: cd hardware/interfaces; mma
Bug: 34518442
Change-Id: I45c0d0f347a938071875c1d7cfc82a36f53042f2
/system/tools/hidl/main.cpp
7ae3d54cb65f1309cb643b83a2040225ad5f3128 19-Jan-2017 Steven Moreland <smoreland@google.com> Move FQName to libhidl-gen-util.

This will allow other libraries to process FQNames, namely libhidl.

Test: compiles
Change-Id: I015a69e016c5cef37f42e02b54c22663315e3676
/system/tools/hidl/main.cpp
6a01fb58a5656eb86b2aff69b87cca6c6dc5ccbd 18-Jan-2017 Keun Soo Yim <yim@google.com> generate soundtrigger HAL's driver and profiler

test: mma
Change-Id: I614ac5d3b3b3c3c9566b8f1dc04877c61ae95ea5
/system/tools/hidl/main.cpp
fece6ecab34d69d38f57419d2500017a7136083e 13-Jan-2017 Yifan Hong <elsk@google.com> Cleanup FQName usage.

Bug: 32559427
Test: hidl_test
Change-Id: Ie5e234c102f8ad76ab24db9bce1630e2227562f6
/system/tools/hidl/main.cpp
5715fedbd05231bf845e3a120c83b931b7f53aa3 16-Jan-2017 Steven Moreland <smoreland@google.com> hidl-gen: correct package paths in makefiles.

Previously, only IBase and the current package was added to package
paths whereas we want all paths which are required/inherited from.

Also uploadated tests.vendor to inherit something and be java
compatible.

Also fixed package root paths so that they are compared against the
beginning of a package instead of being anywhere in the package.

Bug: 34316257
Test: tests/vendor/1.0 update-base/makefiles, mma, hardware/interfaces
update-makefiles and mma

Change-Id: I9ef32b3867646690363fc9f85fe691ae74796d45
/system/tools/hidl/main.cpp
518fbf1bad5c899b05e2e39c1049ddf02a4d4367 14-Jan-2017 Yuexi Ma <yuexima@google.com> include radio hal vts driver and profiler

Test: ENABLE_TREBLE=true make vts BUILD_GOOGLE_VTS=true -j32 && vts-tradefed run commandAndExit vts --skip-all-system-status-check --primary-abi-only --skip-preconditions --module RadioHidlTest -l INFO
Change-Id: If2dbc1fe784534effc08a3ebdad12ff8f179e290
/system/tools/hidl/main.cpp
8301362b9e2fcd010dbd2ef1e513525c737e05ee 13-Jan-2017 Zhuoyao Zhang <zhuoyao@google.com> Whitelist graphics.allocator hal for driver/profiler auto generation.

Test: make hidl-gen
Change-Id: Id8c9283b3493bc05914493a46fdcf608d23e2ccc
/system/tools/hidl/main.cpp
8867ba93a8d7c137044eb7f38b7a76e600a77af2 21-Dec-2016 Yuexi Ma <yuexima@google.com> added tv input to vts driver list

Test: make vts

Change-Id: I46d9ee4ff3c3b5a39c8b8ee6e9b7f40448fc2290
(cherry picked from commit 8bdc854dd81a305615ec046d26c9c04df4c98a66)
/system/tools/hidl/main.cpp
eefe4f2405c3cb0f1d164bdb748e5d0ded3624f9 05-Jan-2017 Yifan Hong <elsk@google.com> Clean up hard-coded Bp/Bn/Bs/IHw prefixes.

Also,
* use iface->localName() instead of "I" + iface->getBaseName()
* do not hardcode IBase related strings
* remove baseName in some places

Bug: 32559427
Test: hidl_test
Change-Id: Ib2049f570ca27d33a945dd6ccb5442e336a11262
/system/tools/hidl/main.cpp
b85e8c2547075572f59c93208ea22517a3444bee 21-Dec-2016 Zhuoyao Zhang <zhuoyao@google.com> Support generation of make rule for vts profiler.

Merged-In: I1640b685d1bb099dd518d6ea02ccd51eadb7b4ba
Bug:31930023
Test: make hidl-gen
Change-Id: I1640b685d1bb099dd518d6ea02ccd51eadb7b4ba
(cherry picked from commit a38e785f5ed0cb050ca04efcdcbb8ee183f14147)
/system/tools/hidl/main.cpp
a646605bef87c1217c31875f75c3d9d6775847fd 21-Dec-2016 Steven Moreland <smoreland@google.com> Make vts makefile message match other warnings.

Make clear that this is a warning when people run
hardware/interfaces/update-makefiles.sh.

Test: pass
Change-Id: I34023eb85ec2872c5cc41d95b168617ddeb2fc2a
/system/tools/hidl/main.cpp
442aa3de98d910d5b8302534b51f9f73e47bb346 16-Dec-2016 Keun Soo Yim <yim@google.com> whitelist more vts driver targets

this covers all the currently available driver targets.

Test: mma
Merged-Id: I68956628608c200a0b46d9c342bff5c5e0710107
Change-Id: I68956628608c200a0b46d9c342bff5c5e0710107
(cherry picked from commit 0dfaa30e26ded3a96901ea7b38b18f1da6097db1)
/system/tools/hidl/main.cpp
c4b72ce9feff89e323bc95479bde6679638d8720 15-Dec-2016 Keun Soo Yim <yim@google.com> add gen-rule for VTS driver bp build rules (only for NFC)

there's a filter for NFC which has been tested with this change.

Test: mma
Merged-In: I3710444e6cc3aa052113eb05ced8a9df7468b6c6
Change-Id: I3710444e6cc3aa052113eb05ced8a9df7468b6c6
(cherry picked from commit d723fef8bae1ae717f87ca48ac978f34a18a16b3)
/system/tools/hidl/main.cpp
33223ca2a9b8126d357e0986905fa35c0970a30e 14-Dec-2016 Yifan Hong <elsk@google.com> Rename indentBlock to indent.

No reason to add "block" to the name.

Test: compiles
Change-Id: I8a930cb8d9bb7d03d302c0b9c308ab6d40045260
/system/tools/hidl/main.cpp
aafed707b7ed7c79645d508f140db55cfabfe74e 14-Dec-2016 Yifan Hong <elsk@google.com> Fix -Landroidbp-impl generates file with wrong name.

Bug: 33356875

Test: visualize the output of
hidl-gen -Landroidbp-impl android.hardware.tests.foo@1.0 -o ~/tmp \
-randroid.hardware:hardware/interfaces \
-randroid.hidl:system/libhidl/transport

Change-Id: I9365eb59b4799426371c418cd9863d69c482a5f1
/system/tools/hidl/main.cpp
97288acdcff66df30cc443c65ddb815e8d0cfeaa 13-Dec-2016 Yifan Hong <elsk@google.com> Update package path for Java.

We used to put IFoo.java with package android.hardware.foo.V1_0
under android/hardware/foo/1.0; the last element is fixed to
V1_0.

Test: compiles
Test: hidl_test_java

Bug: 33554192
Change-Id: I6a6a7d6c0a4c95e7c0797643bc98bec5c12889ca
/system/tools/hidl/main.cpp
d177b12182aaace7dda8f66aa57fabd6eb65b817 12-Dec-2016 Steven Moreland <smoreland@google.com> Print hal file package in exported headers.

The information is already technically contained in the header guard,
but pulling it out will make it make more sense for people unfamiliar with
hidl.

Command used to test:
hidl-gen -o system/core/include/system/graphics-base.h
-Lexport-header -r android.hardware:hardware/interfaces
android.hardware.graphics.common@1.0

Bug: 33541458
Test: manual inspection of output
Change-Id: Ie291158285eeebfedb999230cf9846b802cde2cf
/system/tools/hidl/main.cpp
958ee467ad21ea0b01eba05c33f96a9570328c80 07-Dec-2016 Yifan Hong <elsk@google.com> Add -Landroidbp-impl to hidl-gen.

This has the same effect as running hidl-gen with
-Lmakefile-impl and use the androidmk command to convert
the output.
-Lmakefile-impl is removed.

Fix: 33356875

Test: visualize the output of
hidl-gen -Landroidbp-impl android.hardware.tests.foo@1.0 -o ~/tmp \
-randroid.hardware:hardware/interfaces \
-randroid.hidl:system/libhidl/transport

Change-Id: I3e299454907caaaff91531f6c3341c5e3f2017c4
/system/tools/hidl/main.cpp
819799325a85c5f9e60860076d52cde91ac87e4f 08-Dec-2016 Steven Moreland <smoreland@google.com> Add warning message when -Lmakefile does nothing.

Test: run and view output of update-makefiles.sh in hardware/interfaces.
Bug: 33420795
Change-Id: I9584e80bab16fd1c15f106c8aff8b0f0d04334ca
/system/tools/hidl/main.cpp
c89340422f53046bfe24ff3e529161f9194120f8 18-Nov-2016 Yifan Hong <elsk@google.com> Hidlize IBase; use IBase instead of IBinder.

* IBase is hidlized over hwbinder. GenericBinder
is removed and Interface with name
android.hidl.base@1.0::IBase is used instead.

* Removed AST::mImportedNamesForJava, because in Java,
we always refer to a type with the full name. We don't
import anything in the java file.

* IFoo.h now includes HidlSupport.h instead of
HidlTransportSupport.h

Test: hidl_test
Test: hidl_test_java

Fix: 32756130
Fix: 33273293

Change-Id: I435ad7c68dea028a16252148b6f5778e3610b7cd
/system/tools/hidl/main.cpp
40a373da8b85a1893868e7d9b864088e6870f7cc 01-Dec-2016 Yifan Hong <elsk@google.com> Fix -Lmakefile LOCAL_JAVA_LIBRARIES does not include hierarchy.

Fix: 33249372

Test: update_makefiles.sh
Change-Id: I03f4197ce85adae764eda8ed303e47fa00fc881c
/system/tools/hidl/main.cpp
05cd423a858b8911ff073326d138d0efc44ddbc6 22-Nov-2016 Steven Moreland <smoreland@google.com> Proper runtime error handling for _hidl_cb.

If _hidl_cb is called a number of times != 1, we LOG_ALWAYS_FATAL.

Bug: 32943424
Test: hidl_test
Change-Id: Ia56ae7bbe172c7952d9a4327d8db1df646f47543
/system/tools/hidl/main.cpp
a5abe9214a264ad6503c35a97345a855c46a9b7c 16-Nov-2016 Yifan Hong <elsk@google.com> Split libhidl into base and transport.

Bug: 32756130
Test: mma
Change-Id: Id5eba7f2acce5b752a7498da566ce1eaf276867a
/system/tools/hidl/main.cpp
e429a26799db6b01843e2dee59377f18037ee05a 15-Nov-2016 Steven Moreland <smoreland@google.com> Prevent errors in compilation of c++-impl.

Added hidl_array in using statement alongside hidl_vec and hidl_string.

Also added better error messages for the -L flag. I keep on typing
'cpp-impl' instaed of 'c++-impl'.

Bug: 32579492
Test: created vendor implementation for tests.vendor@1.0 and it
compiles.

Change-Id: I2064a8299ff9cada1890f076efd472af39e9c791
/system/tools/hidl/main.cpp
af33038299b5f5ad5022e15ed0264275e516eed7 10-Nov-2016 Steven Moreland <smoreland@google.com> Better error message when missing root path.

Test: verified with and without error condition
Bug: 32764715
Change-Id: I9fda440c3d2f435f20fb81f1f2abbcda28d860c5
/system/tools/hidl/main.cpp
c1f9b8dd7adb1d734564732d4e5463b34aa43e38 07-Nov-2016 Yifan Hong <elsk@google.com> Fix export_shared_lib_headers in autogen'd Android.bp

Test: mma
Test: on master,
hardware/interfaces/update_makefiles.sh && cd hardware/interfaces
&& mma

Bug: 32710416

Change-Id: I4b66795aa8cd59e7fcc9b71d7be97b9160c9d7e5
/system/tools/hidl/main.cpp
d5419bd2fb8f1a98a46228d67579a28d2c5b048f 04-Nov-2016 Colin Cross <ccross@android.com> Support genrules with multiple tools

To allow genrules with more than one tool, rename the tool property to
tools and make it an array, replace $tool with $(location <label>),
and use $() for other variables for consistency.

Bug: 31948427
Test: compare build.ninja
Change-Id: I20a69ff2f30715acf718a08bc195d7a938442a2d
(cherry picked from commit 1b27f616afb31974017978ffc2aecc8e4c7582cc)
/system/tools/hidl/main.cpp
865243c302765e2126bb7bf8838bfdb5d224afa3 01-Nov-2016 Steven Moreland <smoreland@google.com> Fixed spacing in autogenerated makefiles.

Test: update-makefiles.sh
Change-Id: Id0fa1b05ef9e159d207a17e1a41aefb50f2dbe81
/system/tools/hidl/main.cpp
1c507273be6a1beefbe7ef6ec63992a7cf66c4f8 05-Oct-2016 Andreas Huber <andih@google.com> And one more backend for hidl-gen to create a simple static java library

exporting all annotated constants.

Bug: 32200867
Test: make
Change-Id: Ifddf296fea7b31cbf7bf8d3a42159ad43004805c
/system/tools/hidl/main.cpp
b8a26c05a0a4752cabc8cde71ffc138c84759be9 21-Oct-2016 Steven Moreland <smoreland@google.com> export_shared_lib_headers

Test: make
Bug: 32337293
Change-Id: Ibcc8361d4903701d6174ba8d60e3aa3d7b02f245
/system/tools/hidl/main.cpp
e0f7d698bbe8fcb01eee46d86d140a9c07ee8d12 21-Oct-2016 Yifan Hong <elsk@google.com> Fix hidl-gen -Lmakefile-impl incorrect import pkgs

Bug: 32256068

Test: mma
Test: examined the output for
hidl-gen -o ~/temp -Lmakefile-impl -r
android.hardware:hardware/interfaces android.hardware.tests.bar@1.0

Change-Id: Ic2b6386c713c831eb432afa6cdc62ffa0329ecf1
/system/tools/hidl/main.cpp
5a9fe2ca6769e8ab68b40aee318042cabc5e81a6 14-Oct-2016 Andreas Huber <andih@google.com> Don't generate a Java Android.mk if we don't need to.

If an interface consists solely of a types.hal file that itself
contains nothing but typedefs, we won't generate any Java code,
so we don't need a makefile.

Bug: 32156804
Test: visual inspection
Change-Id: I9e2950c149a012b5092227fa70139be9c0ca4113
/system/tools/hidl/main.cpp
75ae95d536acdc5b9529c4aefe0afdb39a2ecda6 13-Oct-2016 Andreas Huber <andih@google.com> Properly determine if the current package is java compatible or not

by forming the transitive closure of all imported interfaces and
types.hal-s. If any of these is not java compatible, neither is the
package.

Bug: 31910492
Test: mma, hidl-gen -Lmakefile and visual inspection.
Change-Id: Ia4f01f25bd4ab075db24f54d2a2c19f6b619817b
/system/tools/hidl/main.cpp
94bcea09d4be7761fc03e26f4ac860b1404f5e53 06-Oct-2016 Yifan Hong <elsk@google.com> hidl-gen: Fix -Lmakefile-impl.

Bug: 31055568

Test: hidl-gen -o system/tools/hidl/fooimpl/ -Lmakefile-impl
-randroid.hardware:hardware/interfaces
android.hardware.tests.foo@1.0

Change-Id: I35c550aa443bffb0c36e1006d563e5937837c11c
/system/tools/hidl/main.cpp
019d21db821ee4ae6dd3858174a0a5cee4d33c25 03-Oct-2016 Andreas Huber <andih@google.com> Yet another backend for hidl-gen, this one generates a C-compatible header file

containing those enum types annotated in the package like so:

@export
enum Foo {
...
};

Optionally, the name to be used for the type declaration in the header file
can be different from that used in the .hal interface description by specifying

@export(name="foo_t")
enum Foo {
...
};

Finally, overriding the name to be empty, i.e.

@export(name="")
enum Foo {
...
};

will cause the generator to emit an anonymous enum.

Bug: 31800672
Change-Id: Idffb2c1700af1c7fd312941d80c3373add8ae558
Test: make
/system/tools/hidl/main.cpp
676abdc8f7f1814c8657f0cb0e8a301e4aa36cb1 29-Sep-2016 Dan Willemsen <dwillemsen@google.com> Generate Android.bp files; Convert to Android.bp

Keep generating Android.mk files for java libraries, but move c++ shared
libraries to Android.bp.

Now that we're building these in Soong, we can build hidl_test in Soong
as well.

Bug: 31742855
Test: hardware/interfaces/update-makefiles.sh
Change-Id: Ifd7b6d423971b04b2120b51d63eacfc6b162e25d
/system/tools/hidl/main.cpp
b747bd953545b08a6f8dacaa22f8bd0b8f0d6609 27-Sep-2016 Andreas Huber <andih@google.com> More deterministic makefile generation: Java top-level types (from types.hal)

are now ordered.

Bug: 31372383
Test: hidl_test, hidl_test_java
Change-Id: I8b542f979f48bbf089ff8178b0e4cf75ce86cdaa
/system/tools/hidl/main.cpp
aa1868371f36507ff8f6337ec0e6bb02b2620981 26-Sep-2016 Steven Moreland <smoreland@google.com> appendPackageInterfaces*ToVector*

Test: hidl_test, update-makefiles.sh
Change-Id: I7e85c45870a5fe48f861752a34ae3cd264b504eb
/system/tools/hidl/main.cpp
782d45efe950b202eeac7f5352bd9fcb44fba735 22-Sep-2016 Andreas Huber <andih@google.com> In addition to regular java library targets, also emit static java library

targets.

Bug: 31684178
Test: hidl_test and hidl_test_java
Change-Id: Iac6953dc91fc8c8225e4122a3bd7b964a67beb35
/system/tools/hidl/main.cpp
8be09559c175494cf8ef1ce914477a14ddacad1d 23-Sep-2016 Iliyan Malchev <malchev@google.com> hidl-gen: include all-makefiles-under in Android.mk

Auto-generated Android.mk files for HIDL packages now include this line
at the end:

include $(call all-makefiles-under,$(LOCAL_PATH))

b/31524912
Test: pass

Change-Id: Ic5cc94e8df2e7fd88bff18ecbe5b8b56cb0973d0
Signed-off-by: Iliyan Malchev <malchev@google.com>
/system/tools/hidl/main.cpp
dda25cc2c3e7dc6d56f18ad9ae5cd091e4232b72 22-Sep-2016 Andreas Huber <andih@google.com> [Java] typedefs in types.hal files no longer mistakenly appear in the generated

makefile.

Bug: 31678014
Test: run hidl_test, hidl_test_java
Change-Id: I60dc8b4dc5c5482e01887ab3d991554beab04ff1
/system/tools/hidl/main.cpp
de57800c370f79b52b4b87014ab50b34f8aec7fd 08-Sep-2016 Zhuoyao Zhang <zhuoyao@google.com> Support generating instrumentation code for C++ backend in hidl-gen.

* Register instrumentation callbacks on server side.
* Invoke each callback during the entry/exit of each method.

Bug: 31266145
Test: test pass for hidl_test
Change-Id: I53d8b1b248fc6100e4e29d8a4b31d0994133fb71
/system/tools/hidl/main.cpp
d29724ffb70e38a605a711d2edad00a80e7d480c 14-Sep-2016 Andreas Huber <andih@google.com> Fix Java types.hal generation filtering

Bug: 31470959
Change-Id: I9312ad5a73289d829548a93491a8353abf9a451a
/system/tools/hidl/main.cpp
d537ab02e1707597d70665fd8c75ca1ec9f57326 12-Sep-2016 Steven Moreland <smoreland@google.com> Remove dependency on libutils.

As part of this, TypeDef has also been converted to a NamedType. This is
because originally, Scope contained just a KeyedVector<localname, idx> of
types which it contained, and an std::vector<type> which idx indexes into
(KeyedVector<localname, type> alone would have also worked). However, now
it contains a std::map<localname, idx> instead. Because of this, we have lost
the ability to iterate over the keys (localnames) in O(n). By converting
TypeDef to a NamedType, name => idx => type such that name == type->name.
This also means that in function hierarchy calling Scope::addType, we no
longer have to pass around the tuple (name, type) since type->name == name,
and we can pass around only type.

Change-Id: I8f85afe0e389979a2fd98ff5eeccf47e3fcc8307
/system/tools/hidl/main.cpp
a72e0d2be173cebf62f728b9d215808bd862f219 09-Sep-2016 Iliyan Malchev <malchev@google.com> Revert "Revert "Split out libhidl-gen and libhidl-gen-utils.""

Shared code between hidl-gen, c2hal, and VTS.

Also build for device, as we might use libhidl-gen reflectively in
future (for profiling and instrumentation).

Change-Id: Ia56901f4afbc12b7c2abee693e0ebea97ba76a8b
/system/tools/hidl/main.cpp
194c2ffccef2dd1c515397e597f26b184bc1269b 10-Sep-2016 Steven Moreland <smoreland@google.com> Revert "split out libhidl-gen and libhidl-gen-utils"

This reverts commit 1316091aaf89abc73ab11539b61b20f13ee261c4.

Change-Id: I97acad6cadd847cb5540ffe0258b081d7901c1e9
/system/tools/hidl/main.cpp
1316091aaf89abc73ab11539b61b20f13ee261c4 09-Sep-2016 Iliyan Malchev <malchev@google.com> split out libhidl-gen and libhidl-gen-utils

Shared code between hidl-gen, c2hal, and VTS.

Also build for device, as we might use libhidl-gen reflectively in
future (for profiling and instrumentation).

Change-Id: Iffdcbf99308e1f69a504e89fcbb4c9447a6bbe7e
Signed-off-by: Iliyan Malchev <malchev@google.com>
/system/tools/hidl/main.cpp
4923f937246a32d8ed0466530f1037a495301bdf 09-Sep-2016 Iliyan Malchev <malchev@google.com> use the -impl, not .impl suffix for autogenerated stubs

b/31055568

Change-Id: I4fc4dca9521a0d2149ac33ca40e4d7b473e492f7
/system/tools/hidl/main.cpp
197d56cc937e3f3e3762eb7e9a188b795e0267bf 09-Sep-2016 Steven Moreland <smoreland@google.com> Added -Lmakefile-impl.

This generates a makefile for the code that is generated using
-Lc++-impl. (example, makes the shared library
android.hardware.tests.foo@1.0.impl)

make hidl-gen -j64
hidl-gen -o system/tools/hidl/fooimpl/ -Lc++-impl -randroid.hardware:hardware/interfaces android.hardware.tests.foo@1.0
hidl-gen -o system/tools/hidl/fooimpl/ -Lmakefile-impl -randroid.hardware:hardware/interfaces android.hardware.tests.foo@1.0
make android.hardware.tests.foo@1.0.impl -j64

b/31055568

Change-Id: I57fccf3da07d6b22b9ca4a9f1783294d1848ca7e
/system/tools/hidl/main.cpp
9c38761b9650ff98b326c130807b0c1733de881d 07-Sep-2016 Steven Moreland <smoreland@google.com> c++-impl: gen server stub boilerplate

-Lc++-impl now generates a default implementation for all
the interfaces in the specified package. The method
implementations are all left empty.

The default implementation also contains a special function,
HIDL_FETCH_IFOO(), which is used to retrieve an instance of
a particular interface in pass-through mode. For that to work,
the default implementation must live in a shared-library with
a well-known name, eg android.hardware.tests.foo@1.0.impl.so.

Sample invocation:
hidl-gen -o tmp/impl/ -Lc++-impl -randroid.hardware:hardware/interfaces
android.hardware.tests.foo@1.0

Bug: 31228745
Change-Id: I747aa47cb76931eed85179b8131d2efd3f887471
/system/tools/hidl/main.cpp
b9819139d2829fd26f52668e45580c79ed3023cb 07-Sep-2016 Iliyan Malchev <malchev@google.com> hidl-gen: generate same-package Makefile dependencies correctly

If, within a package, say android.hardware.tests.baz@1.0, one interface
depends on another interface (whether implicitly via types.hal) or
explicitly via interface-level extension (e.g., IBaz extends IBase) or
by referring to a user-defined type, -Lmakefile was not generating the
inter-dependencies correctly.

b/31015466
b/31045569

Change-Id: I797a8079496ca1e1d154e2fa917781c64c7de633
Signed-off-by: Iliyan Malchev <malchev@google.com>
/system/tools/hidl/main.cpp
800273d49f418065f5efbe41f7c74c5510707be4 03-Sep-2016 Iliyan Malchev <malchev@google.com> hidl-gen: auto-generate depdendencies for nested types

HIDL allows for types to be defined within interfaces, and for these
types to be able to be referred to from outside of these interfaces.
hidl-gen was not emitting the correct #include and import paths in C++
and Java respectively for such cases, and also Makefile dependencies.

b/31268323

Change-Id: I168c52823098348b4161b5d2c151d1d8eadec9b8
Signed-off-by: Iliyan Malchev <malchev@google.com>
/system/tools/hidl/main.cpp
0fa9e3956e59155c52e40b85b6aef5476ae90912 31-Aug-2016 Andreas Huber <andih@google.com> Auto-generate java libraries for compatible packages.

Change-Id: I753f8bc5ab8ca6b5293c75b548897bbdec16aa65
Bug: 31221188
/system/tools/hidl/main.cpp
c6e21f00824b3fb3e483a461add22a8b86367827 01-Sep-2016 Keun Soo Yim <yim@google.com> Merge "Revert "update makefile rule to package test modules as part of VTS""
15f62319ba8eab1ba07225778e9d07339e95351c 31-Aug-2016 Keun Soo Yim <yim@google.com> Revert "update makefile rule to package test modules as part of VTS"

This reverts commit 21496daeb31254866b199c3cb37c48fbd3d0c057.

Bug: 31110244
Change-Id: I6b667bee639a4690637af75b47246287e19f6453
/system/tools/hidl/main.cpp
261370ae8d57b78b01e4168abcf54d506f946f24 30-Aug-2016 Steven Moreland <smoreland@google.com> Added package directory unable to open error message.

This is useful to know when:
- someone mistypes the path root or package
- hidl-gen is run from a different directory than usual

Additionally, a return code of 1 is now sent when output could not be
generated (so 'hidl-gen .... && echo "Success"' works as expected in
all cases).

Change-Id: Ica68510133442cfe4152dde6c58f4e395ceeb450
/system/tools/hidl/main.cpp
c2903d282925e255ab4d2f84a5585e9c2177fe59 27-Aug-2016 Keun Soo Yim <yim@google.com> update script to generate Android.mk which has rules to build multilib

Change-Id: I255a01fae4cd1d282380caff23107f9a8b42ae37
/system/tools/hidl/main.cpp
1aec397b1fdea7db4120dbe55b6995bb2a9d9138 26-Aug-2016 Andreas Huber <andih@google.com> Adds (C)opyright headers everywhere.

Change-Id: I453af702f80aa4159ef6c3d29d9514b4897adc0a
/system/tools/hidl/main.cpp
21496daeb31254866b199c3cb37c48fbd3d0c057 24-Aug-2016 Keun Soo Yim <yim@google.com> update makefile rule to package test modules as part of VTS

Change-Id: I3d9011a5740f321b9e7e9f0ed4fb5cbf338afa81
/system/tools/hidl/main.cpp
7473fab0d9902b3befab21670780a5ba5f5ea323 19-Aug-2016 Martijn Coenen <maco@google.com> Generated makefiles link against libhidl.

And updated tests to link to libhidl as well.

Bug: 30839546
Change-Id: I0eff676e114531498859ca548072b0c226fd2ed4
/system/tools/hidl/main.cpp
70a59e1dc3dcf32f791d2dd7966111d4adf32eca 16-Aug-2016 Andreas Huber <andih@google.com> Validate upfront that an interface is compatible with our Java backend,

emit diagnostics if it is not. Also cleans up all other error messages to
clearly indicate an error condition.

Bug: 30876839
Change-Id: I18bcd723107ab93abcad38c976f3c38dda60a743
/system/tools/hidl/main.cpp
5158db484e5ab302368f191d75d5b1334c270e52 10-Aug-2016 Zhuoyao Zhang <zhuoyao@google.com> Extend hidl-gen to support generate vts file.

b/30762234

TODO: add regression test.

Change-Id: I1c31fd9a85805cd450ea03cc0ccc750a756d1009
/system/tools/hidl/main.cpp
2831d5145675ead9f2fb767bf5fe4ae56b88349f 15-Aug-2016 Andreas Huber <andih@google.com> Initial commit of Java backend to hidl-gen.

Change-Id: I38b62637df74d3e5daf702a8996502d0d5726033
/system/tools/hidl/main.cpp
5bb14024064a51a044e51c14466e5b2ae8352505 10-Aug-2016 Iliyan Malchev <malchev@google.com> hidl-gen: multiple changes

1. Break up generateMakefileOrSourcesForPackage() into separate
functions for generating C++ and Android.mk files.

2. Add new command-line switch (-L) followed by a string to identify the
code generator. Supported code generators are -Lc++ and -Lmakefile,
like so:

hidl-gen -Lc++ \
-randroid.hardware:hardware/interfaces \
android.hardware.nfc@1.0

3. Remove the -m switch

4. Restore the ability to generate code for individual interfaces within
a package, as well as for entire packages. The following are valid
invokations of hidl-gen:

hidl-gen -o/tmp -Lc++ \
-randroid.hardware:hardware/interfaces \
android.hardware.nfc@1.0

hidl-gen -o /tmp -Lc++ \
-randroid.hardware:hardware/interfaces \
android.hardware.nfc@1.0::INfc

The first invokation will generate the following files under
/tmp/android/hardware/nfc/1.0:

/tmp/android/hardware/nfc/1.0/INfc.h
/tmp/android/hardware/nfc/1.0/BnNfc.h
/tmp/android/hardware/nfc/1.0/NfcAll.cpp
/tmp/android/hardware/nfc/1.0/BpNfc.h

The second invokation will result in:

/tmp/android/hardware/nfc/1.0/types.cpp
/tmp/android/hardware/nfc/1.0/INfc.h
/tmp/android/hardware/nfc/1.0/BnNfc.h
/tmp/android/hardware/nfc/1.0/NfcClientCallbackAll.cpp
/tmp/android/hardware/nfc/1.0/NfcAll.cpp
/tmp/android/hardware/nfc/1.0/BpNfcClientCallback.h
/tmp/android/hardware/nfc/1.0/BpNfc.h
/tmp/android/hardware/nfc/1.0/types.h
/tmp/android/hardware/nfc/1.0/BnNfcClientCallback.h
/tmp/android/hardware/nfc/1.0/INfcClientCallback.h

5. Fixed Android.mk generation to build every .hal file once. To make,
a HIDL interface I${name}.hal now maps to the target ${name}All.cpp

Change-Id: I83f76cbc847536bec03520bcaa39d8f449da67f2
Signed-off-by: Iliyan Malchev <malchev@google.com>
/system/tools/hidl/main.cpp
e2c595ab83ce65ade0be8f4ff48511de8c576773 08-Aug-2016 Iliyan Malchev <malchev@google.com> use the HIDL package name as the library name

When auto-generating Android.mk for a given package--e.g.,
android.hardware.nfc@1.0--instead of calling the resulting library
lib_android_hardware_nfc_V1_0.so, we call it
android.hardware.nfc@1.0.so.

Change-Id: I038faa6d74916aa2964c946c6e43a60bb7238956
Signed-off-by: Iliyan Malchev <malchev@google.com>
/system/tools/hidl/main.cpp
b66c3991c5203d6a93444012b9fa8ace22242550 08-Aug-2016 Iliyan Malchev <malchev@google.com> use hidl-gen as the name of the code generator

-- Pass argv[0] as the name of the executable to run in auto-generated
Android.mk files
-- Use hidl-gen in makefiles for the test executable

Change-Id: Ia35eaf9f66608d67730910c73436e4a7b8540752
Signed-off-by: Iliyan Malchev <malchev@google.com>
/system/tools/hidl/main.cpp
d2943e11533697b97aa5330f05fc144493748c0b 05-Aug-2016 Andreas Huber <andih@google.com> extends nuhidl-gen to optionally generate an Android.mk makefile that

produces a shared-library module exporting the necessary header, stub and
proxy code for the packages specified.
/system/tools/hidl/main.cpp
4c11d8044c9f6e611da4470ebc2d7e9923a8856c 05-Aug-2016 Andreas Huber <andih@google.com> Revert "Compute but do not generate code for dependencies"

This reverts commit 9e4d8bc6d9321fd487ca3af9b11d86a54b346727.
/system/tools/hidl/main.cpp
f5647c19a88de85ddce313333fda337d4560ac1f 04-Aug-2016 Andreas Huber <andih@google.com> Compute but do not generate code for dependencies

No longer generate code for dependencies, unless the -A option is
specified.

Given the following layout of package android.hardware.foo@1.0:

IFooCallback.hal
IFoo.hal
types.hal

Further, given that android.hardware.foo@1.0::IFoo imports
android.hardware.nfc@1.0::INfc, which has no further dependencies,
higl-gen will emit code as follows:

hidl-gen -o /tmp/ -r android.hardware:hardware/interfaces android.hardware.foo@1.0::types

/tmp/android/hardware/foo/1.0/types.cpp
/tmp/android/hardware/foo/1.0/types.h

hidl-gen -o /tmp/ -r android.hardware:hardware/interfaces android.hardware.foo@1.0::IFoo

/tmp/android/hardware/foo/1.0/IFoo.h
/tmp/android/hardware/foo/1.0/BpFoo.h
/tmp/android/hardware/foo/1.0/FooAll.cpp
/tmp/android/hardware/foo/1.0/BnFoo.h

hidl-gen -A -o /tmp/ -r android.hardware:hardware/interfaces android.hardware.foo@1.0::IFoo

/tmp/android/hardware/foo/1.0/types.cpp
/tmp/android/hardware/foo/1.0/IFoo.h
/tmp/android/hardware/foo/1.0/BpFooCallback.h
/tmp/android/hardware/foo/1.0/BpFoo.h
/tmp/android/hardware/foo/1.0/FooCallbackAll.cpp
/tmp/android/hardware/foo/1.0/types.h
/tmp/android/hardware/foo/1.0/BnFooCallback.h
/tmp/android/hardware/foo/1.0/IFooCallback.h
/tmp/android/hardware/foo/1.0/FooAll.cpp
/tmp/android/hardware/foo/1.0/BnFoo.h
/tmp/android/hardware/nfc/1.0/types.cpp
/tmp/android/hardware/nfc/1.0/INfc.h
/tmp/android/hardware/nfc/1.0/BnNfc.h
/tmp/android/hardware/nfc/1.0/NfcClientCallbackAll.cpp
/tmp/android/hardware/nfc/1.0/NfcAll.cpp
/tmp/android/hardware/nfc/1.0/BpNfcClientCallback.h
/tmp/android/hardware/nfc/1.0/BpNfc.h
/tmp/android/hardware/nfc/1.0/types.h
/tmp/android/hardware/nfc/1.0/BnNfcClientCallback.h
/tmp/android/hardware/nfc/1.0/INfcClientCallback.h

Signed-off-by: Iliyan Malchev <malchev@google.com>
/system/tools/hidl/main.cpp
dca261ff8a8fed807c6e8206360eb84b1ff9e0a9 04-Aug-2016 Andreas Huber <andih@google.com> Remove hardcoded package paths and prefixes

No longer assume that a package prefix is "android.hardware" and that
the directory mapping to that package prefix is "$TOP/hardware/interfaces".
Instead, provide this informatoin via a command-line option (-r) as follows:

hidl-gen -o /tmp \
-r android.hardware:hardware/interfaces \
android.hardware.nfc@1.0::INfc

Multiple -r options can be provided, for example:

hidl-gen -o /tmp \
-r android.hardware:$TOP/hardware/interfaces \
-r vendor.qcom.hardware:vendor/qcom/interfaces \
android.hardware.nfc@1.0::INfc

The auto-generated files are emitted in the output path (-o option, /tmp
in the example above) and nested under a directory structure based on
the package root. Thus, for android.hardware.nfc@1.0::INfc, given -r
android.hardware:hardware/interfaces, we identify android.hardware as
the package root, which gets mapped to the path fragment
"android/hardware", causing auto-generated files to go under
/tmp/android/hardware/nfc/V1_0/

Signed-off-by: Iliyan Malchev <malchev@google.com>
/system/tools/hidl/main.cpp
e61e3f7b138a992047a60c4b8c27f1c752ed57ba 03-Aug-2016 Andreas Huber <andih@google.com> Emit all necessary interface and type files.
/system/tools/hidl/main.cpp
867fcb63af8c3ac96ed1b3f3950525aa70393bdf 03-Aug-2016 Andreas Huber <andih@google.com> bye bye, dump(), RefType no longer gets a name.
/system/tools/hidl/main.cpp
737080baf85882c45bb322ee2191ae5fd9e1283a 03-Aug-2016 Andreas Huber <andih@google.com> Keeping track of imported names, resolve enum storage types, some finetuning.
/system/tools/hidl/main.cpp
b82318c682ec581edd5cc31d04ede1e6cbf0eaaf 02-Aug-2016 Andreas Huber <andih@google.com> commandline option to specify output base directory.
/system/tools/hidl/main.cpp
881227d860c59471eee31d39946e96ce2daa35d6 02-Aug-2016 Andreas Huber <andih@google.com> generate C++ interface header, proxy and stub headers and sources.
/system/tools/hidl/main.cpp
dc981333b38f47f416b9b810dc80e5cf2d7ac68a 30-Jul-2016 Andreas Huber <andih@google.com> Use environment variable $TOP to determine full path to hardware/interfaces.
/system/tools/hidl/main.cpp
68f24590cda230fb92eac44ed0247f54f9b31ad0 29-Jul-2016 Andreas Huber <andih@google.com> better error-handling, importing entire packages. Cache now keyed by FQName
/system/tools/hidl/main.cpp
5345ec2b1b7e4126b77aa2131b231a9eb5ee811d 29-Jul-2016 Andreas Huber <andih@google.com> Recursively parse imported .hal files and perform global type lookup.
/system/tools/hidl/main.cpp
da51b8e0dd17a0edcb5c3e72beb65d45ef0ce8b0 29-Jul-2016 Andreas Huber <andih@google.com> No more "version" keyword, new syntax is "package foo.bar.baz@3.4;"
/system/tools/hidl/main.cpp
84f89de8395a78577f80db0f860b61a9f2409294 29-Jul-2016 Andreas Huber <andih@google.com> major revamp, fully qualified names (FQName) used throughout lexer/parser.
/system/tools/hidl/main.cpp
eb1081f65c82ada1bfc26b207148b297da99d87b 28-Jul-2016 Andreas Huber <andih@google.com> some finetuning, version, package, some hacky support for imports
/system/tools/hidl/main.cpp
c9410c7e62a33fd7599b2f3e025093a2d171577e 28-Jul-2016 Andreas Huber <andih@google.com> initial commit of reimplementation of hidl-gen

commit 56da787631c17276bc987f19649c6c1ea92200c3
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 12:18:57 2016 -0700

ast.cpp => AST.cpp

commit 095552aba072152d9c87475895cd2e97c43b7b03
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 10:43:04 2016 -0700

TypeContainer => Scope, since it now also holds constants.

commit 89ec1c511e7806037a53e43333c37fdf1b7aa39e
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 10:41:05 2016 -0700

initial support for constants

commit b60b7ae588654b634bfdc5c283a25dd6378e1df7
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 10:01:46 2016 -0700

Support for typedef, maintain ordering inside TypeContainer

commit 8e83034a077ce2309deeb0e2094079cf6f11d8b4
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 09:36:29 2016 -0700

support for optional super interface

commit 9d44b022adb4a68dfca67ba2a6d845b7c8f27b88
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 09:28:18 2016 -0700

ast => AST

commit 48fd7f8a4e8ecf230cfc416aec6c8f6115e410af
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 09:26:44 2016 -0700

Each type in its own source/header file pair.

commit ca1285ecbcbbb1340eec476e3fd4d1334908d8c1
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 28 08:52:24 2016 -0700

added scalar types "char", "bool" and "opaque"

commit fbb351e5f4392fcbbce77402dfe059a1c8d79fb2
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 27 13:47:32 2016 -0700

some fixes to the parser and ast.

commit 78288216b101349e9364c2d4470ecb5b9a942f5c
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 27 12:34:21 2016 -0700

Formatter, AST::dump(), NamedType

commit 4b8cc5d0a8ff5f70cb53e21b56138124259b8bcb
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 27 11:45:10 2016 -0700

revamp of the parser, scoped type containers

commit 0193fbfa5c7ac3ac1ce306dfb9c55d879f8c02b5
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 27 10:13:35 2016 -0700

store output in AST.

commit 7f53022123978cc7c2a05b0c4aba7a4c5deea93b
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 27 10:06:54 2016 -0700

reentrant lexer/parser

commit 3d3e343d6cea2fb127b203071e8aff08a5715011
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 26 15:27:02 2016 -0700

better typename lookup, comments.

commit 39f13ae860dbd9ffd163a5c99f150170525457ef
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 26 14:29:33 2016 -0700

an actual AST.

commit b1f3f1d94a8d1257426da35ace5bc2af04c433b6
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 26 12:51:34 2016 -0700

initial commit

Change-Id: I44d1d928a5f3dcb908e264d53af09bbe25d8c464
/system/tools/hidl/main.cpp