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