更新代码

This commit is contained in:
2025-09-22 14:49:14 +08:00
parent d16427f7d4
commit 09602c76cd
5 changed files with 40 additions and 2 deletions

View File

@@ -163,7 +163,7 @@ class CodeGenerateInterface(QWidget):
def on_cmake_config_btn_clicked(self):
"""配置cmake自动更新CMakeLists.txt中的源文件列表"""
try:
from app.tools.update_cmake_sources import find_user_c_files, update_cmake_sources
from app.tools.update_cmake_sources import find_user_c_files, update_cmake_sources,update_cmake_includes
from pathlib import Path
# 构建User目录和CMakeLists.txt路径
@@ -204,6 +204,7 @@ class CodeGenerateInterface(QWidget):
# 更新CMakeLists.txt
success = update_cmake_sources(cmake_file, c_files)
success = update_cmake_includes(cmake_file, user_dir)
if success:
InfoBar.success(

View File

@@ -70,6 +70,36 @@ def update_cmake_sources(cmake_file, c_files):
else:
print("❌ 错误: 在CMakeLists.txt中找不到target_sources部分")
return False
def update_cmake_includes(cmake_file, user_dir):
"""确保CMakeLists.txt中的include路径包含User"""
if not os.path.exists(cmake_file):
print(f"错误: CMakeLists.txt文件不存在: {cmake_file}")
return False
with open(cmake_file, 'r', encoding='utf-8') as f:
content = f.read()
# 构建新的include部分
include_section = (
"# Add include paths\n"
"target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE\n"
" # Add user defined include paths\n"
" User\n"
")"
)
# 正则匹配并替换include部分
pattern = r'# Add include paths\s*\ntarget_include_directories\(\$\{CMAKE_PROJECT_NAME\}\s+PRIVATE\s*\n.*?\)'
if re.search(pattern, content, re.DOTALL):
new_content = re.sub(pattern, include_section, content, flags=re.DOTALL)
with open(cmake_file, 'w', encoding='utf-8') as f:
f.write(new_content)
print("✅ 成功更新CMakeLists.txt中的include路径")
return True
else:
print("❌ 错误: 在CMakeLists.txt中找不到target_include_directories部分")
return False
def main():
"""主函数"""