1cb93a386Sopenharmony_ci#!/usr/bin/env python
2cb93a386Sopenharmony_ci#
3cb93a386Sopenharmony_ci# Copyright 2017 Google Inc.
4cb93a386Sopenharmony_ci#
5cb93a386Sopenharmony_ci# Use of this source code is governed by a BSD-style license that can be
6cb93a386Sopenharmony_ci# found in the LICENSE file.
7cb93a386Sopenharmony_ci
8cb93a386Sopenharmony_ci
9cb93a386Sopenharmony_ci"""Create Bloaty as a Linux executable."""
10cb93a386Sopenharmony_ci
11cb93a386Sopenharmony_ci
12cb93a386Sopenharmony_ciimport argparse
13cb93a386Sopenharmony_ciimport os
14cb93a386Sopenharmony_ciimport shutil
15cb93a386Sopenharmony_ciimport subprocess
16cb93a386Sopenharmony_ciimport sys
17cb93a386Sopenharmony_ci
18cb93a386Sopenharmony_ciFILE_DIR = os.path.dirname(os.path.abspath(__file__))
19cb93a386Sopenharmony_ciINFRA_BOTS_DIR = os.path.realpath(os.path.join(FILE_DIR, os.pardir, os.pardir))
20cb93a386Sopenharmony_cisys.path.insert(0, INFRA_BOTS_DIR)
21cb93a386Sopenharmony_ciimport utils
22cb93a386Sopenharmony_ci
23cb93a386Sopenharmony_ci
24cb93a386Sopenharmony_ciREPO = 'https://github.com/google/bloaty'
25cb93a386Sopenharmony_ciTAG = 'v1.0'
26cb93a386Sopenharmony_ci
27cb93a386Sopenharmony_ci
28cb93a386Sopenharmony_cidef create_asset(target_dir):
29cb93a386Sopenharmony_ci  with utils.tmp_dir():
30cb93a386Sopenharmony_ci    # Check out bloaty
31cb93a386Sopenharmony_ci    subprocess.check_call(['git', 'clone', '--depth', '1', '-b', TAG,
32cb93a386Sopenharmony_ci                           '--single-branch', REPO])
33cb93a386Sopenharmony_ci    os.chdir('bloaty')
34cb93a386Sopenharmony_ci    # Build bloaty
35cb93a386Sopenharmony_ci    subprocess.check_call(['cmake', '.'])
36cb93a386Sopenharmony_ci    subprocess.check_call(['make', '-j'])
37cb93a386Sopenharmony_ci
38cb93a386Sopenharmony_ci    shutil.move('./bloaty', target_dir)
39cb93a386Sopenharmony_ci
40cb93a386Sopenharmony_ci
41cb93a386Sopenharmony_cidef main():
42cb93a386Sopenharmony_ci  parser = argparse.ArgumentParser()
43cb93a386Sopenharmony_ci  parser.add_argument('--target_dir', '-t', required=True)
44cb93a386Sopenharmony_ci  args = parser.parse_args()
45cb93a386Sopenharmony_ci  create_asset(args.target_dir)
46cb93a386Sopenharmony_ci
47cb93a386Sopenharmony_ci
48cb93a386Sopenharmony_ciif __name__ == '__main__':
49cb93a386Sopenharmony_ci  main()
50