ESP32_C3 migrate to ESP-IDF package (#6427)

This commit is contained in:
tangzz98
2022-09-14 03:49:05 -04:00
committed by GitHub
parent 52e1d76254
commit cb7fd304ff
22 changed files with 870 additions and 1131 deletions

View File

@@ -186,7 +186,8 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
'cmake':('gcc', 'gcc'),
'cmake-armclang':('keil', 'armclang'),
'xmake':('gcc', 'gcc'),
'codelite' : ('gcc', 'gcc')}
'codelite' : ('gcc', 'gcc'),
'esp-idf': ('gcc', 'gcc')}
tgt_name = GetOption('target')
if tgt_name:
@@ -857,10 +858,16 @@ def GenTargetProject(program = None):
if GetOption('target') == 'cmake' or GetOption('target') == 'cmake-armclang':
from cmake import CMakeProject
CMakeProject(Env,Projects)
if GetOption('target') == 'xmake':
from xmake import XMakeProject
XMakeProject(Env, Projects)
if GetOption('target') == 'esp-idf':
from esp_idf import ESPIDFProject
ESPIDFProject(Env, Projects)
exit(0)
def EndBuilding(target, program = None):
need_exit = False

48
tools/esp_idf.py Normal file
View File

@@ -0,0 +1,48 @@
import os
import re
import utils
from utils import _make_path_relative
def GenerateCFiles(env,project):
"""
Generate CMakeLists.txt files
"""
info = utils.ProjectInfo(env)
init_export = []
main_component_dir = os.path.join(os.getcwd(), 'main')
cm_file = open(os.path.join(main_component_dir, 'CMakeLists.txt'), 'w')
if cm_file:
cm_file.write("idf_component_register(\n")
cm_file.write("\tSRCS\n")
for group in project:
for f in group['src']:
path = _make_path_relative(main_component_dir, os.path.normpath(f.rfile().abspath))
cm_file.write( "\t" + path.replace("\\", "/") + "\n" )
src = open(f.rfile().abspath, 'r')
for line in src.readlines():
if re.match('INIT_(BOARD|PREV|DEVICE|COMPONENT|ENV|APP)_EXPORT\(.+\)', line):
init_export.append(re.search('\(.+\)', line).group(0)[1:-1])
src.close()
cm_file.write("\n")
cm_file.write("\tINCLUDE_DIRS\n")
for i in info['CPPPATH']:
path = _make_path_relative(main_component_dir, i)
cm_file.write( "\t" + path.replace("\\", "/") + "\n")
cm_file.write(")\n\n")
print(init_export)
n = len(init_export)
if n:
cm_file.write("target_link_libraries(${COMPONENT_LIB}\n")
for i in range(n):
cm_file.write("\tINTERFACE \"-u __rt_init_" + init_export[i] + "\"\n")
cm_file.write(")\n")
def ESPIDFProject(env,project):
print('Update setting files for CMakeLists.txt...')
GenerateCFiles(env,project)
print('Done!')