From 1911d7c1a27771dde909deeed5cc99e6a744e8ce Mon Sep 17 00:00:00 2001 From: Anton Hansson Date: Thu, 5 Dec 2019 11:56:08 +0000 Subject: [PATCH] Add genrule for the current sdk proto This is intended to be added to all apexes exposing SDK apis. The version can then be bumped by changing the value in a single place. The current version is 0. Also build this into the sdkext module. Bug: 137191822 Test: m com.android.sdkext Change-Id: Ic2cd92ad1d184c8a01f0bc3d4fc21deb588cb7e8 --- apex/sdkext/Android.bp | 30 +++++++++++++++++++++++++++++- apex/sdkext/gen_sdkinfo.py | 19 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 apex/sdkext/gen_sdkinfo.py diff --git a/apex/sdkext/Android.bp b/apex/sdkext/Android.bp index 12d6b8687eb1d..b132f7e3ff4c5 100644 --- a/apex/sdkext/Android.bp +++ b/apex/sdkext/Android.bp @@ -17,7 +17,10 @@ apex { manifest: "manifest.json", binaries: [ "derive_sdk" ], java_libs: [ "framework-sdkext" ], - prebuilts: [ "com.android.sdkext.ldconfig" ], + prebuilts: [ + "com.android.sdkext.ldconfig", + "cur_sdkinfo", + ], key: "com.android.sdkext.key", certificate: ":com.android.sdkext.certificate", } @@ -39,3 +42,28 @@ prebuilt_etc { filename: "ld.config.txt", installable: false, } + +python_binary_host { + name: "gen_sdkinfo", + srcs: [ + "derive_sdk/sdk.proto", + "gen_sdkinfo.py", + ], + proto: { + canonical_path_from_root: false, + }, +} + +gensrcs { + name: "cur_sdkinfo_src", + srcs: [""], + tools: [ "gen_sdkinfo" ], + cmd: "$(location) -v 0 -o $(out)", +} + +prebuilt_etc { + name: "cur_sdkinfo", + src: ":cur_sdkinfo_src", + filename: "sdkinfo.binarypb", + installable: false, +} diff --git a/apex/sdkext/gen_sdkinfo.py b/apex/sdkext/gen_sdkinfo.py new file mode 100644 index 0000000000000..5af478ba7fe63 --- /dev/null +++ b/apex/sdkext/gen_sdkinfo.py @@ -0,0 +1,19 @@ +import sdk_pb2 +import sys + +if __name__ == '__main__': + argv = sys.argv[1:] + if not len(argv) == 4 or sorted([argv[0], argv[2]]) != ['-o', '-v']: + print('usage: gen_sdkinfo -v -o ') + sys.exit(1) + + for i in range(len(argv)): + if sys.argv[i] == '-o': + filename = sys.argv[i+1] + if sys.argv[i] == '-v': + version = int(sys.argv[i+1]) + + proto = sdk_pb2.SdkVersion() + proto.version = version + with open(filename, 'wb') as f: + f.write(proto.SerializeToString())