Handle the case when a symbol is annotated with "# apex vndk"

This change fixes a bug that a symbol is omitted for apex (or vndk) when
it is annotated with "# vndk apex" (or "# apex vndk).

Bug: 123349183
Test: python3 test_gen_stub_libs.py

Change-Id: I344d6e70732bae8877cb16bbe881edb79fe90670
This commit is contained in:
Jiyong Park
2019-02-08 20:34:32 +09:00
parent f98087ffce
commit 1431765f8d
2 changed files with 17 additions and 6 deletions

View File

@@ -119,9 +119,12 @@ def should_omit_version(version, arch, api, vndk, apex):
return True
if 'platform-only' in version.tags:
return True
if 'vndk' in version.tags and not vndk:
return True
if 'apex' in version.tags and not apex:
no_vndk_no_apex = 'vndk' not in version.tags and 'apex' not in version.tags
keep = no_vndk_no_apex or \
('vndk' in version.tags and vndk) or \
('apex' in version.tags and apex)
if not keep:
return True
if not symbol_in_arch(version.tags, arch):
return True
@@ -132,9 +135,11 @@ def should_omit_version(version, arch, api, vndk, apex):
def should_omit_symbol(symbol, arch, api, vndk, apex):
"""Returns True if the symbol should be omitted."""
if not vndk and 'vndk' in symbol.tags:
return True
if not apex and 'apex' in symbol.tags:
no_vndk_no_apex = 'vndk' not in symbol.tags and 'apex' not in symbol.tags
keep = no_vndk_no_apex or \
('vndk' in symbol.tags and vndk) or \
('apex' in symbol.tags and apex)
if not keep:
return True
if not symbol_in_arch(symbol.tags, arch):
return True