16ccd8248SMilanka Ringwald#!/usr/bin/env python3 29c7c30eeSMatthias Ringwald 39c7c30eeSMatthias Ringwald# 49c7c30eeSMatthias Ringwald# Add btstack component to esp-idf 59c7c30eeSMatthias Ringwald# 69c7c30eeSMatthias Ringwald 79c7c30eeSMatthias Ringwaldimport os 89c7c30eeSMatthias Ringwaldimport sys 99c7c30eeSMatthias Ringwaldimport shutil 109c7c30eeSMatthias Ringwaldimport create_examples 119c7c30eeSMatthias Ringwald 129c7c30eeSMatthias Ringwaldif not 'IDF_PATH' in os.environ: 139c7c30eeSMatthias Ringwald print('Error: IDF_PATH not defined. Please set IDF_PATH as described here:\nhttp://esp-idf.readthedocs.io/en/latest/get-started/index.html#get-started-get-esp-idf'); 149c7c30eeSMatthias Ringwald sys.exit(10) 159c7c30eeSMatthias Ringwald 169c7c30eeSMatthias RingwaldIDF_PATH=os.environ['IDF_PATH'] 179c7c30eeSMatthias Ringwaldprint("IDF_PATH=%s" % IDF_PATH) 189c7c30eeSMatthias Ringwald 199c7c30eeSMatthias RingwaldIDF_COMPONENTS=IDF_PATH + "/components" 209c7c30eeSMatthias Ringwald 219c7c30eeSMatthias Ringwaldif not os.path.exists(IDF_COMPONENTS): 229c7c30eeSMatthias Ringwald print("Error: No components folder at $IDF_PATH/components, please check IDF_PATH") 239c7c30eeSMatthias Ringwald sys.exit(10) 249c7c30eeSMatthias Ringwald 259c7c30eeSMatthias RingwaldIDF_BTSTACK=IDF_COMPONENTS+"/btstack" 269c7c30eeSMatthias Ringwald 279c7c30eeSMatthias Ringwaldif os.path.exists(IDF_BTSTACK): 289c7c30eeSMatthias Ringwald print("Deleting old BTstack component %s" % IDF_BTSTACK) 299c7c30eeSMatthias Ringwald shutil.rmtree(IDF_BTSTACK) 309c7c30eeSMatthias Ringwald 319c7c30eeSMatthias Ringwald# get local dir 329c7c30eeSMatthias Ringwaldlocal_dir = os.path.abspath(os.path.dirname(sys.argv[0])) 339c7c30eeSMatthias Ringwald 349c7c30eeSMatthias Ringwald# create components/btstack 359c7c30eeSMatthias Ringwaldprint("Creating BTstack component at %s" % IDF_COMPONENTS) 369c7c30eeSMatthias Ringwaldshutil.copytree(local_dir+'/components/btstack', IDF_BTSTACK) 379c7c30eeSMatthias Ringwald 389c7c30eeSMatthias Ringwalddirs_to_copy = [ 399c7c30eeSMatthias Ringwald'src', 409c7c30eeSMatthias Ringwald'3rd-party/bluedroid', 419c7c30eeSMatthias Ringwald'3rd-party/hxcmod-player', 4286a50e77SMatthias Ringwald'3rd-party/lwip/dhcp-server', 43cb0081ebSMatthias Ringwald'3rd-party/lc3-google', 44bc44e666SMatthias Ringwald'3rd-party/md5', 45826d4bceSMatthias Ringwald'3rd-party/micro-ecc', 466420389dSMatthias Ringwald'3rd-party/yxml', 479c7c30eeSMatthias Ringwald'platform/freertos', 4866871e79SMatthias Ringwald'platform/lwip', 499c7c30eeSMatthias Ringwald'tool' 509c7c30eeSMatthias Ringwald] 519c7c30eeSMatthias Ringwald 529c7c30eeSMatthias Ringwaldfor dir in dirs_to_copy: 539c7c30eeSMatthias Ringwald print('- %s' % dir) 549c7c30eeSMatthias Ringwald shutil.copytree(local_dir + '/../../' + dir, IDF_BTSTACK + '/' + dir) 559c7c30eeSMatthias Ringwald 56*5524a004SMatthias Ringwald# manually prepare platform/embedded 57*5524a004SMatthias Ringwaldprint('- platform/embedded') 58*5524a004SMatthias Ringwaldplatform_embedded_path = IDF_BTSTACK + '/platform/embedded' 59*5524a004SMatthias Ringwaldos.makedirs(platform_embedded_path) 60*5524a004SMatthias Ringwaldplatform_embedded_files_to_copy = [ 61*5524a004SMatthias Ringwald 'hal_time_ms.h', 62*5524a004SMatthias Ringwald 'hal_uart_dma.h', 63*5524a004SMatthias Ringwald 'hci_dump_embedded_stdout.h', 64*5524a004SMatthias Ringwald 'hci_dump_embedded_stdout.c', 65*5524a004SMatthias Ringwald] 66*5524a004SMatthias Ringwaldfor file in platform_embedded_files_to_copy: 67*5524a004SMatthias Ringwald shutil.copy(local_dir+'/../../platform/embedded/'+file, platform_embedded_path) 68*5524a004SMatthias Ringwald 699c7c30eeSMatthias Ringwald# create example/btstack 70bb44f0f5SMatthias Ringwaldcreate_examples.create_examples(local_dir, '') 71