Commit Graph

36 Commits

Author SHA1 Message Date
Colin Cross
adee968a4b Make bpfix not modify the input tree
Make a new object called Fixer to hold the state of the tree, and
make a copy of the input tree so the original doesn't get modified.

Test: bpfix_test.go
Change-Id: I1dc6fd99158c8b0e1db029df99e6cf72699a5e63
2018-04-16 17:32:08 +00:00
Colin Cross
3fad895e75 Don't pretend *parser.List is immutable
The functions in bpfix that take a *parser.List and return a
modified *parser.List are always returning the same pointer
and mutating the target of the pointer.  Remove the extra
unnecessary return value.

Also extract the getLiteralListProperty function.

Test: androidmk_test.go
Change-Id: I08d8aff955c72b7916741cda8083974a49af4d6f
2018-02-22 14:54:47 -08:00
Jeff Gaston
0d83b8c9fe Have androidmk ignore all-makefiles-under
That's automatically implemented now by the finder

Bug: b/37748825
Test: m -j nothing # which runs unit tests
Change-Id: Ie17907733a744dc97cd24c90bed73b4731e878ad
2017-11-28 14:24:24 -08:00
Colin Cross
d00350c61b Add license headers to all go and shell files
Test: none
Change-Id: I75c443e05f2b1e17fcb6823182717d2e6f5df7c4
2017-11-17 23:05:26 +00:00
Jeff Gaston
af7d3ef81d Prevent androidmk crash on art/tools/ahat/Android.mk
Because a directive can exist within a rule's recipe,
there may not exist an ordering of nodes such that
nodes[i].End() <= nodes[i+1].Start()

This disables that assertion.

Test: androidmk art/tools/ahat/Android.mk
Bug: 67906386

Change-Id: I84ea6ebdbc01c1600b1fa188463aae56270f0135
2017-10-19 13:22:56 -07:00
Jeff Gaston
4b9ef72fe2 Add usage message to androidmk
Test: androidmk 2>&1 | grep usage && androidmk --help 2>&1 | grep usage && echo ok
Bug: 67426255
Change-Id: I1e5033321c62c6744672f2ea435a422a4b9bd3da
2017-10-06 11:48:44 -07:00
Jeff Gaston
15e8e75a05 Fix androidmk crash if no CLEAR_VARS is detected
Bug: 38459493
Test: make blueprint_tools
Change-Id: I968a2e46160c6c04091412e6d5450f9917ec8b67
2017-08-17 15:08:06 -07:00
Jeff Gaston
c381fd0282 Revert "Revert "Run bpfix at the end of androidmk""
Bug: 38351765
Test: androidmk Android.mk > Android.bp

This reverts commit eb3186abbe.

Change-Id: I0b67e89f5096aae60c97eb6af4fd205509aac5c9
2017-06-19 15:52:25 -07:00
Jeff Gaston
eb3186abbe Revert "Run bpfix at the end of androidmk"
This reverts commit 7fd905ae26.

Reason for revert: postsubmit build broken

Change-Id: Iddff17616c7307918380e15c1ed69ee5625a6c8e
2017-05-26 00:30:01 +00:00
Jeff Gaston
7fd905ae26 Run bpfix at the end of androidmk
Bug: 38351765
Test: androidmk Android.mk > Android.bp
Change-Id: Iefcae1b01f4e915ec20782b302ba4350a20d0f1a
2017-05-24 13:06:35 -07:00
Jeff Gaston
4f2feeee50 Have AndroidMk skip emitting LOCAL_MODULE_TAGS="optional"
Also somewhat consolidate the way in which properties are converted

Bug: 34671474
Test: make blueprint_tools

Change-Id: Idf0d6d63b8539ab6e514a6043d1f88836899864b
2017-03-08 16:00:14 -08:00
Nan Zhang
62ea583316 Fixed androidmk crash when parsing external/aac/Android.mk
Catched the error when bpparser encountered the non-standard make variables.

Bug: b/34454142
Test: Manual + (m -j blueprint_tools) command
Change-Id: I0766082baa2c2c4020317f975012a476133f4f77
2017-01-27 14:07:38 -08:00
Colin Cross
7b6ba5c7fa Add CommentGroups
Follows blueprint change 1e73794d42

Change-Id: If3539e2d9370a0224a2364608c496a1e4385dbbf
2016-06-14 19:04:53 -07:00
Colin Cross
e538e410cb Rename Pos members
Follows blueprint change b3d0b8dab4

Change-Id: I10f53498557325d26c6b690583596ac4f9206c79
2016-06-14 19:04:28 -07:00
Colin Cross
2867296203 Remove blueprint/parser.Ident
Follows blueprint change c32c47938f

Change-Id: I8f479704504f7bbefed3ed63bd0d040f65a2fdd5
2016-06-14 19:03:10 -07:00
Colin Cross
d20b36be5d Update androidmk to match blueprint changes
blueprint/parser.Value is now an Expression interface, update androidmk
to match.

Change-Id: I01e0b2a83cf430c1981b450d35c8ab0aab6975f1
2016-06-08 14:50:11 -07:00
Dan Willemsen
6c2ac0673d Add tests for androidmk
Change-Id: Ic31bf68f75c8dd4d7737d9ea01f2d93637cdaca2
2016-06-03 00:00:50 -07:00
Colin Cross
08693d2bf2 Improve makefile parser
Improve the androidmk makefile parser based on ideas from go/ast and
friends:
   - Use type switching instead of the As* mess
   - Don't store endPos for every node, compute it based on the last
     known position in the node plus the length of the last token
   - Store positions as only the offset into the file, and then unpack
     them into Line/Column scanner.Position objects later

Change-Id: I87eb6661859951e6c2ea5a85db6229fa5561d615
2016-05-26 03:34:30 +00:00
Colin Cross
7fd911f713 Fix blank line translation once and for all
Track the position in the input makefile and output blueprint file
separately.  When parsing a new makefile line, increment the line in the
output position by the number of lines between the end of the last
makefile line and the beginning of this line.  Any extra blank lines
will be discarded by the blueprint printer.

Change-Id: I85c6e006667b5733b15e03b56b91caf29fbc0ea0
2016-05-26 03:34:17 +00:00
Colin Cross
ab6e6e0135 Fix non-deterministic errors with LOCAL_*_x86_64
LOCAL_*_x86_64 was sometimes recognized as a _64 suffix and other times
as the correct _x86_64 suffix, based on the random order of the
propertyPrefixes map.  Replace the map with a slice so that the ordering
is consistent, and ensure 64 as after x86_64.

Change-Id: I1a4b4959f8ef4273ad4a1cdd0672ad557bf1891e
2016-05-25 17:17:40 -07:00
Colin Cross
4bd49c2ce1 androidmk: Add support for TARGET_BUILD_APPS
Change-Id: Iade2dd9fd5b8873d723d5f6f235775f447fb1d98
2015-12-01 18:06:33 -08:00
Colin Cross
3d289a4037 androidmk: make class+suffix into generic prefix
Allow variables to have a prefix, for example "target.arm.cflags".
Each prefixed name separated by a "." will become a nested map
property.

Change-Id: Ib982b8dcaf2f1dc919acb2767e769950916c50f7
2015-05-12 13:36:11 -07:00
Colin Cross
a93000350a androidmk: strip LOCAL_PATH from export_include_dirs and local_include_dirs
Sort LOCAL_INCLUDE_DIRS values into local_include_dir include_dirs based
on whether they are prefixed with $(LOCAL_PATH)/, and strip $(LOCAL_PATH)/
from export_include_dirs.

Change-Id: I20f9f0f8385088660855c7ccf85b7933ff2dcd44
2015-05-12 11:38:37 -07:00
Colin Cross
4e13f6d573 androidmk: clean up nested comparisons for local variable names
Change-Id: If84dbce05f1a28a562c8dba3eceedfe92b8d5ba5
2015-05-12 18:18:05 +00:00
Colin Cross
f5f5dec662 androidmk: use a single map for property list
Change-Id: I08019443f5fcb012190486e9144a1bfec26761b4
2015-05-12 18:17:40 +00:00
Colin Cross
d560a9e192 androidmk: add support for ifdef USE_MINGW
Change-Id: Ib3436cb4fd2469f5be2f7ee1525709eb1e143dbf
2015-04-16 14:06:12 -07:00
Colin Cross
16daa921e3 androidmk: support translating all-java-files-under
Change-Id: I4c343f6d8d23d42dddc256ff022016b595bb3841
2015-04-03 16:51:45 -07:00
Colin Cross
139b815875 androidmk: use map to hold module types
Reduces the number of places that need to be edited when adding
new module types.

Change-Id: Id35d16f005e377e1e3bb955348ed92a4a2c392bb
2015-04-02 14:49:06 -07:00
Colin Cross
bbcb4963d6 androidmk: support conditionals on HOST_OS == linux
Add HOST_OS == linux to the supported conditionals, and replace
a manual list with a map lookup.

Change-Id: I0c26e3a854d1011870f41c05fc400d68334cd45f
2015-03-27 17:56:34 -07:00
Colin Cross
24e6aef941 androidmk: print unsupported $(call) and $(eval) lines
Unsupported top level lines were getting silently dropped, print
an unsupported translation error instead.

Change-Id: I1a8ac13966116c997c2a3be923f3c3ba6fbe2258
2015-03-27 17:56:34 -07:00
Colin Cross
1f8f234c33 Support cc_test_host
Support cc_test_host for gtest tests compiled for the host.

Change-Id: I632d2c211075ba9391d934609f1bf368459397e1
2015-03-27 15:58:24 -07:00
Colin Cross
70b4059e3f Update import paths for changes to blueprint
Blueprint has been modified to include a canonical import path,
update soong to match.

Change-Id: If29d31afbf3bf2e6364961a66456fa5f8f738455
2015-03-23 12:57:34 -07:00
Colin Cross
7601ef600a androidmk fixes for blueprint update
Blueprint's internal Comment type changed, update androidmk to
match.

Change-Id: I7ce308cd5879734c1c76e19deef5b08aee377404
2015-03-20 17:54:09 -07:00
Tim Kilbourn
3f0c9ede6d Add support for LOCAL_ARM_MODE in androidmk
Uses a hack to nest it inside of an arch-arm block.

Change-Id: Id36c7398e4a91fc8dd69fa7d1f78c9d30258281a
2015-03-19 17:26:22 -07:00
Colin Cross
70a255f3c9 Remove LOCAL_CPP_EXTENSION during Android.mk translation
LOCAL_CPP_EXTENSION is unnecesary in soong, it can accept files
with .cc or .cpp extension.

Change-Id: I64cb37f199e25f1fed7e53144f85e52ba616529a
2015-03-19 10:51:40 -07:00
Colin Cross
3f40fa460d Add soong_build primary builder
Initial build logic for building android with soong.  It can build
a variety of C and C++ files for arm/arm64 and host.

Change-Id: I10eb37c2c2a50be6af1bb5fd568c0962b9476bf0
2015-03-13 20:28:16 -07:00