xref: /btstack/port/esp32/integrate_btstack.py (revision 5524a00429c492de1a7d61233390b0442844310f)
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