Simplify main function for mainline_modules_sdks.py am: 5511d9becd

Original change: https://android-review.googlesource.com/c/platform/packages/modules/common/+/1903874

Change-Id: Ie1d5c5e78836b73124253da79c75cc5c1a231168
This commit is contained in:
satayev
2021-11-26 15:09:18 +00:00
committed by Automerger Merge Worker
2 changed files with 29 additions and 11 deletions

View File

@@ -317,7 +317,8 @@ class SdkDistProducer:
return os.path.join(self.out_dir, "soong/mainline-sdks",
f"{sdk_name}-{sdk_version}.zip")
def produce_dist(self, sdk_versions, modules):
def produce_dist(self, modules):
sdk_versions = SDK_VERSIONS
self.build_sdks(sdk_versions, modules)
self.populate_dist(sdk_versions, modules)
@@ -503,26 +504,30 @@ def apply_transformations(producer, tmp_dir, transformations):
os.utime(path, (modified, modified))
def main():
"""Program entry point."""
if not os.path.exists("build/make/core/Makefile"):
sys.exit("This script must be run from the top of the tree.")
producer = SdkDistProducer(
def create_producer():
return SdkDistProducer(
# Variables initialized from environment variables that are set by the
# calling mainline_modules_sdks.sh.
out_dir=os.environ["OUT_DIR"],
dist_dir=os.environ["DIST_DIR"],
)
def filter_modules(modules):
target_build_apps = os.environ.get("TARGET_BUILD_APPS")
if target_build_apps:
build_mainline_modules = [m for m in MAINLINE_MODULES
if m.apex in target_build_apps.split()]
target_build_apps = target_build_apps.split()
return [m for m in modules if m.apex in target_build_apps]
else:
build_mainline_modules = MAINLINE_MODULES
return modules
producer.produce_dist(SDK_VERSIONS, build_mainline_modules)
def main():
"""Program entry point."""
if not os.path.exists("build/make/core/Makefile"):
sys.exit("This script must be run from the top of the tree.")
producer = create_producer()
modules = filter_modules(MAINLINE_MODULES)
producer.produce_dist(modules)
if __name__ == "__main__":

View File

@@ -162,5 +162,18 @@ class TestSoongConfigBoilerplateInserter(unittest.TestCase):
self.apply_transformations(src, transformations, expected)
class TestFilterModules(unittest.TestCase):
def test_no_filter(self):
modules = mm.filter_modules(mm.MAINLINE_MODULES)
self.assertEqual(modules, mm.MAINLINE_MODULES)
def test_with_filter(self):
os.environ["TARGET_BUILD_APPS"] = "com.android.art"
modules = mm.filter_modules(mm.MAINLINE_MODULES)
expected = mm.MAINLINE_MODULES_BY_APEX["com.android.art"]
self.assertEqual(modules, [expected])
if __name__ == "__main__":
unittest.main(verbosity=2)