#!/usr/bin/env python # Copyright 2019 The Flutter Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import argparse import os import sys import json THIS_DIR = os.path.abspath(os.path.dirname(__file__)) # The template for the POM file. POM_FILE_CONTENT = ''' 4.0.0 io.flutter {0} {1} jar {2} ''' POM_DEPENDENCY = ''' {0} {1} {2} compile ''' def main(): with open (os.path.join(THIS_DIR, 'files.json')) as f: dependencies = json.load(f) parser = argparse.ArgumentParser(description='Generate the POM file for the engine artifacts') parser.add_argument('--engine-artifact-id', type=str, required=True, help='The artifact id. e.g. android_arm_release') parser.add_argument('--engine-version', type=str, required=True, help='The engine commit hash') parser.add_argument('--destination', type=str, required=True, help='The destination directory absolute path') parser.add_argument('--include-embedding-dependencies', type=bool, help='Include the dependencies for the embedding') args = parser.parse_args() engine_artifact_id = args.engine_artifact_id engine_version = args.engine_version artifact_version = '1.0.0-' + engine_version out_file_name = '%s.pom' % engine_artifact_id pom_dependencies = '' if args.include_embedding_dependencies: for dependency in dependencies: if not dependency['provides']: # Don't include transitive dependencies since they aren't used by the embedding. continue group_id, artifact_id, version = dependency['maven_dependency'].split(':') pom_dependencies += POM_DEPENDENCY.format(group_id, artifact_id, version) # Write the POM file. with open(os.path.join(args.destination, out_file_name), 'w') as f: f.write(POM_FILE_CONTENT.format(engine_artifact_id, artifact_version, pom_dependencies)) if __name__ == '__main__': sys.exit(main())