From 1f7328174b6d62c6cbb06523e5707b63cc49f370 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=99=BE=E5=93=A5?= Date: Tue, 28 Apr 2026 18:26:10 +0800 Subject: [PATCH] =?UTF-8?q?v1.1:=20=E4=BF=AE=E5=A4=8D=20Windows=20?= =?UTF-8?q?=E8=B7=A8=E5=B9=B3=E5=8F=B0=E5=85=BC=E5=AE=B9=E6=80=A7=20&=20?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E9=AB=98=E5=AF=B9=E6=AF=94=E5=BA=A6=E9=85=8D?= =?UTF-8?q?=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【跨平台修复】 - cmakegenerator.cpp: CMAKE_C_COMPILER / CMAKE_MAKE_PROGRAM 提前到 project() 之前设置,避免 CMake 在 Windows 回退 NMake - cmakegenerator.cpp: MinGW 编译器路径下自动推导 mingw32-make.exe - mainwindow.cpp: generateCMake() 在 Windows 下添加 -G 'MinGW Makefiles' - mainwindow.cpp: compileProject() cmake 添加生成器参数 & mingw32-make 替代 make 【UI 改进】 - 全部操作按钮升级为 Material Design 高对比度配色(Darker 系列) - 按钮添加圆角和内边距,提升可读性和视觉层次 【工程规范】 - 新增 .gitignore,排除编译产物 (.o / moc_*.cpp / Makefile / 二进制) - README.md 重写,补充 Windows 编译指南和技术要点 - 需求规格说明书更新至 v1.1 --- .gitignore | 13 ++ Makefile | 444 ----------------------------------------- README.md | 102 +++++++--- VoiletCStudio | Bin 192768 -> 0 bytes cmakegenerator.o | Bin 74808 -> 0 bytes main.o | Bin 5712 -> 0 bytes mainwindow.o | Bin 148024 -> 0 bytes moc_cmakegenerator.cpp | 155 -------------- moc_cmakegenerator.o | Bin 7416 -> 0 bytes moc_mainwindow.cpp | 233 --------------------- moc_mainwindow.o | Bin 15472 -> 0 bytes moc_projectconfig.cpp | 134 ------------- moc_projectconfig.o | Bin 13608 -> 0 bytes projectconfig.o | Bin 60384 -> 0 bytes src/cmakegenerator.cpp | 41 +++- src/mainwindow.cpp | 44 +++- 需求规格说明书.md | 4 +- 17 files changed, 150 insertions(+), 1020 deletions(-) create mode 100644 .gitignore delete mode 100644 Makefile delete mode 100755 VoiletCStudio delete mode 100644 cmakegenerator.o delete mode 100644 main.o delete mode 100644 mainwindow.o delete mode 100644 moc_cmakegenerator.cpp delete mode 100644 moc_cmakegenerator.o delete mode 100644 moc_mainwindow.cpp delete mode 100644 moc_mainwindow.o delete mode 100644 moc_projectconfig.cpp delete mode 100644 moc_projectconfig.o delete mode 100644 projectconfig.o diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a53cc1c --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +# Build artifacts +*.o +moc_*.cpp +moc_predefs.h +Makefile +VoiletCStudio +.qmake.stash + +# IDE +.vscode/ +.idea/ +*.user +*.pro.user diff --git a/Makefile b/Makefile deleted file mode 100644 index efc0a95..0000000 --- a/Makefile +++ /dev/null @@ -1,444 +0,0 @@ -############################################################################# -# Makefile for building: VoiletCStudio -# Generated by qmake (3.1) (Qt 5.15.15) -# Project: VoiletCStudio.pro -# Template: app -# Command: /usr/lib/qt5/bin/qmake -o Makefile VoiletCStudio.pro -############################################################################# - -MAKEFILE = Makefile - -EQ = = - -####### Compiler, tools and options - -CC = gcc -CXX = g++ -DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) -CXXFLAGS = -pipe -O2 -std=gnu++11 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) -INCPATH = -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -QMAKE = /usr/lib/qt5/bin/qmake -DEL_FILE = rm -f -CHK_DIR_EXISTS= test -d -MKDIR = mkdir -p -COPY = cp -f -COPY_FILE = cp -f -COPY_DIR = cp -f -R -INSTALL_FILE = install -m 644 -p -INSTALL_PROGRAM = install -m 755 -p -INSTALL_DIR = cp -f -R -QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall -QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe -DEL_FILE = rm -f -SYMLINK = ln -f -s -DEL_DIR = rmdir -MOVE = mv -f -TAR = tar -cf -COMPRESS = gzip -9f -DISTNAME = VoiletCStudio1.0.0 -DISTDIR = /home/anonymous/Desktop/VoiletCStudio/.tmp/VoiletCStudio1.0.0 -LINK = g++ -LFLAGS = -Wl,-O1 -LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread -AR = ar cqs -RANLIB = -SED = sed -STRIP = strip - -####### Output directory - -OBJECTS_DIR = ./ - -####### Files - -SOURCES = src/main.cpp \ - src/mainwindow.cpp \ - src/projectconfig.cpp \ - src/cmakegenerator.cpp moc_mainwindow.cpp \ - moc_projectconfig.cpp \ - moc_cmakegenerator.cpp -OBJECTS = main.o \ - mainwindow.o \ - projectconfig.o \ - cmakegenerator.o \ - moc_mainwindow.o \ - moc_projectconfig.o \ - moc_cmakegenerator.o -DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ - VoiletCStudio.pro src/mainwindow.h \ - src/projectconfig.h \ - src/cmakegenerator.h src/main.cpp \ - src/mainwindow.cpp \ - src/projectconfig.cpp \ - src/cmakegenerator.cpp -QMAKE_TARGET = VoiletCStudio -DESTDIR = -TARGET = VoiletCStudio - - -first: all -####### Build rules - -VoiletCStudio: $(OBJECTS) - $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) - -Makefile: VoiletCStudio.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ - VoiletCStudio.pro - $(QMAKE) -o Makefile VoiletCStudio.pro -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: -VoiletCStudio.pro: -qmake: FORCE - @$(QMAKE) -o Makefile VoiletCStudio.pro - -qmake_all: FORCE - - -all: Makefile VoiletCStudio - -dist: distdir FORCE - (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) - -distdir: FORCE - @test -d $(DISTDIR) || mkdir -p $(DISTDIR) - $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ - $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ - $(COPY_FILE) --parents src/mainwindow.h src/projectconfig.h src/cmakegenerator.h $(DISTDIR)/ - $(COPY_FILE) --parents src/main.cpp src/mainwindow.cpp src/projectconfig.cpp src/cmakegenerator.cpp $(DISTDIR)/ - - -clean: compiler_clean - -$(DEL_FILE) $(OBJECTS) - -$(DEL_FILE) *~ core *.core - - -distclean: clean - -$(DEL_FILE) $(TARGET) - -$(DEL_FILE) .qmake.stash - -$(DEL_FILE) Makefile - - -####### Sub-libraries - -mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean - -mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all - -check: first - -benchmark: first - -compiler_rcc_make_all: -compiler_rcc_clean: -compiler_moc_predefs_make_all: moc_predefs.h -compiler_moc_predefs_clean: - -$(DEL_FILE) moc_predefs.h -moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp - g++ -pipe -O2 -std=gnu++11 -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp - -compiler_moc_header_make_all: moc_mainwindow.cpp moc_projectconfig.cpp moc_cmakegenerator.cpp -compiler_moc_header_clean: - -$(DEL_FILE) moc_mainwindow.cpp moc_projectconfig.cpp moc_cmakegenerator.cpp -moc_mainwindow.cpp: src/mainwindow.h \ - src/projectconfig.h \ - src/cmakegenerator.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/anonymous/Desktop/VoiletCStudio/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/anonymous/Desktop/VoiletCStudio -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/14 -I/usr/include/x86_64-linux-gnu/c++/14 -I/usr/include/c++/14/backward -I/usr/lib/gcc/x86_64-linux-gnu/14/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/mainwindow.h -o moc_mainwindow.cpp - -moc_projectconfig.cpp: src/projectconfig.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/anonymous/Desktop/VoiletCStudio/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/anonymous/Desktop/VoiletCStudio -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/14 -I/usr/include/x86_64-linux-gnu/c++/14 -I/usr/include/c++/14/backward -I/usr/lib/gcc/x86_64-linux-gnu/14/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/projectconfig.h -o moc_projectconfig.cpp - -moc_cmakegenerator.cpp: src/cmakegenerator.h \ - src/projectconfig.h \ - moc_predefs.h \ - /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/anonymous/Desktop/VoiletCStudio/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/anonymous/Desktop/VoiletCStudio -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/14 -I/usr/include/x86_64-linux-gnu/c++/14 -I/usr/include/c++/14/backward -I/usr/lib/gcc/x86_64-linux-gnu/14/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/cmakegenerator.h -o moc_cmakegenerator.cpp - -compiler_moc_objc_header_make_all: -compiler_moc_objc_header_clean: -compiler_moc_source_make_all: -compiler_moc_source_clean: -compiler_uic_make_all: -compiler_uic_clean: -compiler_yacc_decl_make_all: -compiler_yacc_decl_clean: -compiler_yacc_impl_make_all: -compiler_yacc_impl_clean: -compiler_lex_make_all: -compiler_lex_clean: -compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean - -####### Compile - -main.o: src/main.cpp src/mainwindow.h \ - src/projectconfig.h \ - src/cmakegenerator.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o src/main.cpp - -mainwindow.o: src/mainwindow.cpp src/mainwindow.h \ - src/projectconfig.h \ - src/cmakegenerator.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o src/mainwindow.cpp - -projectconfig.o: src/projectconfig.cpp src/projectconfig.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o projectconfig.o src/projectconfig.cpp - -cmakegenerator.o: src/cmakegenerator.cpp src/cmakegenerator.h \ - src/projectconfig.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o cmakegenerator.o src/cmakegenerator.cpp - -moc_mainwindow.o: moc_mainwindow.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp - -moc_projectconfig.o: moc_projectconfig.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_projectconfig.o moc_projectconfig.cpp - -moc_cmakegenerator.o: moc_cmakegenerator.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_cmakegenerator.o moc_cmakegenerator.cpp - -####### Install - -install_target: first FORCE - @test -d $(INSTALL_ROOT)/opt/VoiletCStudio/bin || mkdir -p $(INSTALL_ROOT)/opt/VoiletCStudio/bin - $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/VoiletCStudio/bin/$(QMAKE_TARGET) - -$(STRIP) $(INSTALL_ROOT)/opt/VoiletCStudio/bin/$(QMAKE_TARGET) - -uninstall_target: FORCE - -$(DEL_FILE) $(INSTALL_ROOT)/opt/VoiletCStudio/bin/$(QMAKE_TARGET) - -$(DEL_DIR) $(INSTALL_ROOT)/opt/VoiletCStudio/bin/ - - -install: install_target FORCE - -uninstall: uninstall_target FORCE - -FORCE: - diff --git a/README.md b/README.md index 775add4..c75561f 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ Qt5 跨平台 C 工程配置器,自动生成 CMakeLists.txt +> 版本:v1.1 · 2026-04-28 + --- ## 🚀 功能特性 @@ -9,13 +11,15 @@ Qt5 跨平台 C 工程配置器,自动生成 CMakeLists.txt ### 1. 工程配置管理 - ✅ JSON 格式配置文件 - ✅ 新建/打开/保存工程 +- ✅ 拖拽 JSON 文件打开 - ✅ Ctrl+S 快速保存 ### 2. 编译工具链配置 - ✅ 编译器路径选择 - ✅ 汇编器路径选择 - ✅ 链接器路径选择 -- ✅ 支持 MinGW/GCC/Clang +- ✅ 支持 MinGW / GCC / Clang +- ✅ Windows 下自动识别 MinGW 工具链 ### 3. 文件管理 - ✅ 虚拟目录(类似 MDK) @@ -26,55 +30,64 @@ Qt5 跨平台 C 工程配置器,自动生成 CMakeLists.txt ### 4. 编译配置 - ✅ 编译宏定义 - ✅ 自定义编译选项 -- ✅ Debug/Release 模式 +- ✅ Debug / Release 模式 ### 5. CMake 生成 - ✅ 自动生成 CMakeLists.txt -- ✅ 支持 make debug/release -- ✅ 跨平台兼容 +- ✅ 编译器路径在 `project()` 之前设置,避免默认回退到 NMake +- ✅ Windows 下自动指定 `-G "MinGW Makefiles"` 生成器 +- ✅ 内置一键编译(Debug / Release) --- ## 📋 使用方法 -### 编译 +### 编译 VoiletCStudio + +**Linux:** ```bash cd VoiletCStudio qmake make ``` +**Windows (MSYS2/MinGW):** +```bash +cd VoiletCStudio +qmake +mingw32-make +``` + ### 运行 ```bash -./VoiletCStudio +./VoiletCStudio # Linux +VoiletCStudio.exe # Windows ``` ### 使用流程 -1. 新建工程 -2. 配置编译器路径 -3. 添加虚拟目录和源文件 +1. 新建工程 → 输入工程名 +2. 配置编译器路径(Windows 选 `gcc.exe`) +3. 添加虚拟目录和 .c 源文件 4. 添加包含目录和库文件 5. 添加编译宏和选项 6. 保存工程(JSON) -7. 生成 CMakeLists.txt -8. 使用 CMake 编译 +7. 点击「生成 CMake」→ 自动生成 CMakeLists.txt +8. 点击「编译 Debug / Release」→ 一键编译 --- ## 🛠️ CMake 使用 ```bash -# 配置 +# Linux / macOS cmake -B build +make debug # 编译 Debug +make release # 编译 Release -# 编译 Debug -make debug - -# 编译 Release -make release - -# 或直接使用 -cmake --build build --config Debug +# Windows (MinGW) +cmake -G "MinGW Makefiles" -B build +mingw32-make debug +mingw32-make release ``` --- @@ -84,24 +97,31 @@ cmake --build build --config Debug ``` VoiletCStudio/ ├── src/ -│ ├── main.cpp # 主程序入口 -│ ├── mainwindow.cpp/h # 主窗口 -│ ├── projectconfig.cpp/h # 配置管理 +│ ├── main.cpp # 主程序入口 +│ ├── mainwindow.cpp/h # 主窗口(含编译流程) +│ ├── projectconfig.cpp/h # 配置管理 │ └── cmakegenerator.cpp/h # CMake 生成 -├── resources/ # 资源文件 -├── VoiletCStudio.pro # Qt 项目文件 -└── README.md # 说明文档 +├── VoiletCStudio.pro # Qt 项目文件 +├── README.md # 说明文档 +└── 需求规格说明书.md # 详细需求文档 ``` --- ## 💻 跨平台支持 -| 平台 | 编译器 | 状态 | -|------|--------|------| -| Windows | MinGW | ✅ | -| Linux | GCC | ✅ | -| macOS | Clang | ✅ | +| 平台 | 编译器 | 生成器 | 状态 | +|------|--------|--------|------| +| Windows | MinGW (MSYS2) | MinGW Makefiles | ✅ | +| Windows | MSVC | NMake | ⚠️ 未测试 | +| Linux | GCC | Unix Makefiles | ✅ | +| macOS | Clang | Unix Makefiles | ✅ | + +### Windows 特别注意 +- 必须安装 **MSYS2** 并安装 `mingw-w64-gcc`、`mingw-w64-cmake` +- 编译器路径示例:`C:/msys2/mingw64/bin/gcc.exe` +- CMake 生成时程序自动使用 `-G "MinGW Makefiles"` +- 构建时使用 `mingw32-make` 而非 `make` --- @@ -111,7 +131,10 @@ VoiletCStudio/ { "projectName": "MyProject", "projectPath": "/path/to/project", + "outputDir": "./build", "compilerPath": "/usr/bin/gcc", + "assemblerPath": "/usr/bin/gcc", + "linkerPath": "/usr/bin/gcc", "virtualDirs": { "App": { "name": "App", @@ -127,11 +150,24 @@ VoiletCStudio/ --- +## 🔧 技术要点 + +### 编译器设置顺序 +CMakeLists.txt 中 `CMAKE_C_COMPILER` **必须在 `project()` 之前设置**,否则 CMake 会在 `project()` 时自动检测编译器并可能回退到不存在的 NMake。 + +### Windows 生成器 +程序通过 `#ifdef Q_OS_WIN32` 编译期检测平台,在 Windows 上自动: +- CMake 添加 `-G "MinGW Makefiles"` 参数 +- 构建时使用 `mingw32-make` 替代 `make` +- 自动从编译器路径推导 `CMAKE_MAKE_PROGRAM` + +--- + ## 🎯 特色 - **类 MDK 虚拟目录**:像 Keil MDK 一样管理源文件 - **一键生成 CMake**:自动生成完整的 CMakeLists.txt -- **跨平台**:Windows/Linux/macOS 全支持 +- **真正跨平台**:Windows (MinGW) / Linux / macOS 全支持,自动化平台适配 - **轻量级**:纯 Qt5 实现,无额外依赖 --- @@ -143,4 +179,4 @@ MIT License --- **作者:虾哥** -**日期:2026-04-09** +**日期:2026-04-09 · 更新:2026-04-28** diff --git a/VoiletCStudio b/VoiletCStudio deleted file mode 100755 index abbcc2d5447c9474110844743640e6b65ffcdb98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192768 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 W+w)eY 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

eu`m=XB5%LL4 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

IA~$clTpf1YVREK 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 diff --git a/cmakegenerator.o b/cmakegenerator.o deleted file mode 100644 index 80308d8ab89e9ed04c2a82f8ab8b90277b42e3f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74808 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 KgOV|7`2PnKTXOsW diff --git a/main.o b/main.o deleted file mode 100644 index adfbb7b4eb8183cedd6a77b021f9f83495422560..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5712 zcmcIoU2Ggz6~4P`Cni7ZrKQLvDc!h+rihNb&QF_wiZ| zcXpiEQAHcA60%BDg$G(8S{|#Yl@Jd|1Ox??2A)u(zVx9INIXC*ikgC`1fnwMyK_%` zJl-i4f+NkGbHDR<|Ih3`Rj!PuQz^xiQV*!*7Nbh#`j_QVEsm-?)MjnlN9|A01HX0j ztT*xo;v0?pDdM-$!_?p3tHnch=ff$x^S4)*i0t;eefHV6!gY4%_isbp`87*+r>yMu zYkiMCc2)b?7uH_LoqZ$hZ~t>CTyvwnH5K+;?Y~pm7rydS^yk$yz21T8Vc)B}VQDIy zpZ0uJu!dE|YtAneYYkV8&$m3ksW?fc^Cz9w?!0Gs)Qvy?Q56r`oxlDBy*@N$pLzE> z1+HA29?Er|9NJ)C42L$5uYK|8P(E_JxC5yz3-&dXz#bv>IfvKx06;UA$_y=Oj>;>1@Xny z#($*LkG1@Z)VlXmioAPnjdlVijA(DEv^&3b%suW^oB6_aYs4D9x3KFTBP#48Q0nvn zm0HN9Hf>njcZoLM5Mi6OMyYM!#cb|edMrE8&Q!8_Cp$pxVzy7^NHu2czF;`}rA|*& zbkw!qgJu)Q-cAj~2i;D&dLZn{=AKDEm>oEmDQ5HSp1s){sr2jXviXuuwI|zGT%RYi zqp&3!q(}RaUAyO8<{9kIk06|-9`*iGHe&?@qu=3Hadz+)u#U3HWyt@bwA(SBxs=P<5QJIwPG*BRWhg4C-!EDhfMK1b(B~s(GF>>(=Mo0EV74DHT?A zVFX=xWM5%;vKR!_#j$EwEeub))q35pRYSKtG37KGGR9beJTQ7ScEk$Y6PDx5EG#&b zuH`qYbuV0WP7dpkBa_9sxw=PTXc(0GfHyG_^{23Nvg8M@P#5lRxuIz9t2W&7frohR zbi7qgBZZYthoc$$kA8(+4!PaoJR8Y)~tWZEX0bC+ua4X#w)ZON3Q`^ zZG~}!9%`PVT+RWvHBVnIOq)oMxBF*|0<{LW`@isAMa1x6ZjT^zb^1Wfxjtm zxv&0WaEupohX?fci0OF-#{K^=hV#DcrTZSlaTwp2fZvvYM^U2RI-lbP@w|}{9}kml z1Yq)OWk%owY)t$~fy?jWvjSfu?0+P1o*O{;?f@Y#>>oe_WVIF>Vf8riFo^gpOQE|E zDr=f5g|d#fT8gSby=pxXnu2B8u(D+Ni|STn99NE^3|WDXpvYLTsEF#Y+H$^G_a1la zixO*v)gYXoQ`Sta=C}(rcP^w-dA#l#BOQuDSSVz5>!XU5Rr4DSw@HI)`k`y>-FN6- zie7u%L~>`H69LsDN)`B&@qaCtr zzs=c?d6NHhm;Bhb?8h8;B#w^Uqi{`{U31J}qG=1gfyuK1#mDu(n{4q7{NMVc{vdx^ z9%5>9{v64Y_)T~L9rp?vySzLFZ(lIBn-e z@?SUkhm9xlqdvv+e}k}Y`L7s1uG^-$>RbQor0ABPe`4`Ckso_8o+voDYz_e?zh%Y-3SZ2PF90mexuDL(#RkrEhw$4NSG+MJJd@%GP1 z(QW;QaoG^b^+ye6f5uVok)QV|iJC5%{CU%6#{Fmh0V!B!8}J{-#>2X}Eq)gQi<`6m zb#^qI`_J$ia_+W%wi*9rV~F*`nAxAl-z_&>o;DZSCBt#g;=h%+KaROEA!(U%Ya{t` WY+%SI345xW{|(ds%`t~qQ~eu4%26Bu diff --git a/mainwindow.o b/mainwindow.o deleted file mode 100644 index 1661d0438b74d537926d66bc017a265a18bba275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148024 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 diff --git a/moc_cmakegenerator.cpp b/moc_cmakegenerator.cpp deleted file mode 100644 index 2ca96f0..0000000 --- a/moc_cmakegenerator.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/**************************************************************************** -** Meta object code from reading C++ file 'cmakegenerator.h' -** -** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.15) -** -** WARNING! All changes made in this file will be lost! -*****************************************************************************/ - -#include -#include "src/cmakegenerator.h" -#include -#include -#if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'cmakegenerator.h' doesn't include ." -#elif Q_MOC_OUTPUT_REVISION != 67 -#error "This file was generated using the moc from 5.15.15. It" -#error "cannot be used with the include files from this version of Qt." -#error "(The moc has changed too much.)" -#endif - -QT_BEGIN_MOC_NAMESPACE -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_CMakeGenerator_t { - QByteArrayData data[6]; - char stringdata0[56]; -}; -#define QT_MOC_LITERAL(idx, ofs, len) \ - Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_CMakeGenerator_t, stringdata0) + ofs \ - - idx * sizeof(QByteArrayData)) \ - ) -static const qt_meta_stringdata_CMakeGenerator_t qt_meta_stringdata_CMakeGenerator = { - { -QT_MOC_LITERAL(0, 0, 14), // "CMakeGenerator" -QT_MOC_LITERAL(1, 15, 14), // "cmakeGenerated" -QT_MOC_LITERAL(2, 30, 0), // "" -QT_MOC_LITERAL(3, 31, 4), // "path" -QT_MOC_LITERAL(4, 36, 13), // "errorOccurred" -QT_MOC_LITERAL(5, 50, 5) // "error" - - }, - "CMakeGenerator\0cmakeGenerated\0\0path\0" - "errorOccurred\0error" -}; -#undef QT_MOC_LITERAL - -static const uint qt_meta_data_CMakeGenerator[] = { - - // content: - 8, // revision - 0, // classname - 0, 0, // classinfo - 2, 14, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 2, // signalCount - - // signals: name, argc, parameters, tag, flags - 1, 1, 24, 2, 0x06 /* Public */, - 4, 1, 27, 2, 0x06 /* Public */, - - // signals: parameters - QMetaType::Void, QMetaType::QString, 3, - QMetaType::Void, QMetaType::QString, 5, - - 0 // eod -}; - -void CMakeGenerator::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); - (void)_t; - switch (_id) { - case 0: _t->cmakeGenerated((*reinterpret_cast< const QString(*)>(_a[1]))); break; - case 1: _t->errorOccurred((*reinterpret_cast< const QString(*)>(_a[1]))); break; - default: ; - } - } else if (_c == QMetaObject::IndexOfMethod) { - int *result = reinterpret_cast(_a[0]); - { - using _t = void (CMakeGenerator::*)(const QString & ); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CMakeGenerator::cmakeGenerated)) { - *result = 0; - return; - } - } - { - using _t = void (CMakeGenerator::*)(const QString & ); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&CMakeGenerator::errorOccurred)) { - *result = 1; - return; - } - } - } -} - -QT_INIT_METAOBJECT const QMetaObject CMakeGenerator::staticMetaObject = { { - QMetaObject::SuperData::link(), - qt_meta_stringdata_CMakeGenerator.data, - qt_meta_data_CMakeGenerator, - qt_static_metacall, - nullptr, - nullptr -} }; - - -const QMetaObject *CMakeGenerator::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *CMakeGenerator::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_CMakeGenerator.stringdata0)) - return static_cast(this); - return QObject::qt_metacast(_clname); -} - -int CMakeGenerator::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QObject::qt_metacall(_c, _id, _a); - if (_id < 0) - return _id; - if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 2) - qt_static_metacall(this, _c, _id, _a); - _id -= 2; - } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 2) - *reinterpret_cast(_a[0]) = -1; - _id -= 2; - } - return _id; -} - -// SIGNAL 0 -void CMakeGenerator::cmakeGenerated(const QString & _t1) -{ - void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; - QMetaObject::activate(this, &staticMetaObject, 0, _a); -} - -// SIGNAL 1 -void CMakeGenerator::errorOccurred(const QString & _t1) -{ - void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; - QMetaObject::activate(this, &staticMetaObject, 1, _a); -} -QT_WARNING_POP -QT_END_MOC_NAMESPACE diff --git a/moc_cmakegenerator.o b/moc_cmakegenerator.o deleted file mode 100644 index 8751526d9636ce81acb74b36af5af0a5d12d3f06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7416 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 -#include "src/mainwindow.h" -#include -#include -#if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'mainwindow.h' doesn't include ." -#elif Q_MOC_OUTPUT_REVISION != 67 -#error "This file was generated using the moc from 5.15.15. It" -#error "cannot be used with the include files from this version of Qt." -#error "(The moc has changed too much.)" -#endif - -QT_BEGIN_MOC_NAMESPACE -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_MainWindow_t { - QByteArrayData data[30]; - char stringdata0[438]; -}; -#define QT_MOC_LITERAL(idx, ofs, len) \ - Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \ - - idx * sizeof(QByteArrayData)) \ - ) -static const qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = { - { -QT_MOC_LITERAL(0, 0, 10), // "MainWindow" -QT_MOC_LITERAL(1, 11, 10), // "newProject" -QT_MOC_LITERAL(2, 22, 0), // "" -QT_MOC_LITERAL(3, 23, 11), // "openProject" -QT_MOC_LITERAL(4, 35, 11), // "saveProject" -QT_MOC_LITERAL(5, 47, 13), // "saveProjectAs" -QT_MOC_LITERAL(6, 61, 13), // "generateCMake" -QT_MOC_LITERAL(7, 75, 12), // "compileDebug" -QT_MOC_LITERAL(8, 88, 14), // "compileRelease" -QT_MOC_LITERAL(9, 103, 14), // "compileProject" -QT_MOC_LITERAL(10, 118, 9), // "buildType" -QT_MOC_LITERAL(11, 128, 20), // "onProjectNameChanged" -QT_MOC_LITERAL(12, 149, 4), // "text" -QT_MOC_LITERAL(13, 154, 21), // "onCompilerPathChanged" -QT_MOC_LITERAL(14, 176, 22), // "onAssemblerPathChanged" -QT_MOC_LITERAL(15, 199, 19), // "onLinkerPathChanged" -QT_MOC_LITERAL(16, 219, 13), // "addVirtualDir" -QT_MOC_LITERAL(17, 233, 13), // "addSourceFile" -QT_MOC_LITERAL(18, 247, 16), // "removeSourceFile" -QT_MOC_LITERAL(19, 264, 13), // "addIncludeDir" -QT_MOC_LITERAL(20, 278, 16), // "removeIncludeDir" -QT_MOC_LITERAL(21, 295, 10), // "addLibrary" -QT_MOC_LITERAL(22, 306, 13), // "removeLibrary" -QT_MOC_LITERAL(23, 320, 9), // "addDefine" -QT_MOC_LITERAL(24, 330, 12), // "removeDefine" -QT_MOC_LITERAL(25, 343, 17), // "addCompilerOption" -QT_MOC_LITERAL(26, 361, 20), // "removeCompilerOption" -QT_MOC_LITERAL(27, 382, 18), // "browseCompilerPath" -QT_MOC_LITERAL(28, 401, 19), // "browseAssemblerPath" -QT_MOC_LITERAL(29, 421, 16) // "browseLinkerPath" - - }, - "MainWindow\0newProject\0\0openProject\0" - "saveProject\0saveProjectAs\0generateCMake\0" - "compileDebug\0compileRelease\0compileProject\0" - "buildType\0onProjectNameChanged\0text\0" - "onCompilerPathChanged\0onAssemblerPathChanged\0" - "onLinkerPathChanged\0addVirtualDir\0" - "addSourceFile\0removeSourceFile\0" - "addIncludeDir\0removeIncludeDir\0" - "addLibrary\0removeLibrary\0addDefine\0" - "removeDefine\0addCompilerOption\0" - "removeCompilerOption\0browseCompilerPath\0" - "browseAssemblerPath\0browseLinkerPath" -}; -#undef QT_MOC_LITERAL - -static const uint qt_meta_data_MainWindow[] = { - - // content: - 8, // revision - 0, // classname - 0, 0, // classinfo - 26, 14, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 0, // signalCount - - // slots: name, argc, parameters, tag, flags - 1, 0, 144, 2, 0x08 /* Private */, - 3, 0, 145, 2, 0x08 /* Private */, - 4, 0, 146, 2, 0x08 /* Private */, - 5, 0, 147, 2, 0x08 /* Private */, - 6, 0, 148, 2, 0x08 /* Private */, - 7, 0, 149, 2, 0x08 /* Private */, - 8, 0, 150, 2, 0x08 /* Private */, - 9, 1, 151, 2, 0x08 /* Private */, - 11, 1, 154, 2, 0x08 /* Private */, - 13, 0, 157, 2, 0x08 /* Private */, - 14, 0, 158, 2, 0x08 /* Private */, - 15, 0, 159, 2, 0x08 /* Private */, - 16, 0, 160, 2, 0x08 /* Private */, - 17, 0, 161, 2, 0x08 /* Private */, - 18, 0, 162, 2, 0x08 /* Private */, - 19, 0, 163, 2, 0x08 /* Private */, - 20, 0, 164, 2, 0x08 /* Private */, - 21, 0, 165, 2, 0x08 /* Private */, - 22, 0, 166, 2, 0x08 /* Private */, - 23, 0, 167, 2, 0x08 /* Private */, - 24, 0, 168, 2, 0x08 /* Private */, - 25, 0, 169, 2, 0x08 /* Private */, - 26, 0, 170, 2, 0x08 /* Private */, - 27, 0, 171, 2, 0x08 /* Private */, - 28, 0, 172, 2, 0x08 /* Private */, - 29, 0, 173, 2, 0x08 /* Private */, - - // slots: parameters - QMetaType::Void, - QMetaType::Void, - QMetaType::Bool, - QMetaType::Bool, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, QMetaType::QString, 10, - QMetaType::Void, QMetaType::QString, 12, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - QMetaType::Void, - - 0 // eod -}; - -void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); - (void)_t; - switch (_id) { - case 0: _t->newProject(); break; - case 1: _t->openProject(); break; - case 2: { bool _r = _t->saveProject(); - if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = std::move(_r); } break; - case 3: { bool _r = _t->saveProjectAs(); - if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = std::move(_r); } break; - case 4: _t->generateCMake(); break; - case 5: _t->compileDebug(); break; - case 6: _t->compileRelease(); break; - case 7: _t->compileProject((*reinterpret_cast< const QString(*)>(_a[1]))); break; - case 8: _t->onProjectNameChanged((*reinterpret_cast< const QString(*)>(_a[1]))); break; - case 9: _t->onCompilerPathChanged(); break; - case 10: _t->onAssemblerPathChanged(); break; - case 11: _t->onLinkerPathChanged(); break; - case 12: _t->addVirtualDir(); break; - case 13: _t->addSourceFile(); break; - case 14: _t->removeSourceFile(); break; - case 15: _t->addIncludeDir(); break; - case 16: _t->removeIncludeDir(); break; - case 17: _t->addLibrary(); break; - case 18: _t->removeLibrary(); break; - case 19: _t->addDefine(); break; - case 20: _t->removeDefine(); break; - case 21: _t->addCompilerOption(); break; - case 22: _t->removeCompilerOption(); break; - case 23: _t->browseCompilerPath(); break; - case 24: _t->browseAssemblerPath(); break; - case 25: _t->browseLinkerPath(); break; - default: ; - } - } -} - -QT_INIT_METAOBJECT const QMetaObject MainWindow::staticMetaObject = { { - QMetaObject::SuperData::link(), - qt_meta_stringdata_MainWindow.data, - qt_meta_data_MainWindow, - qt_static_metacall, - nullptr, - nullptr -} }; - - -const QMetaObject *MainWindow::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *MainWindow::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_MainWindow.stringdata0)) - return static_cast(this); - return QMainWindow::qt_metacast(_clname); -} - -int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QMainWindow::qt_metacall(_c, _id, _a); - if (_id < 0) - return _id; - if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 26) - qt_static_metacall(this, _c, _id, _a); - _id -= 26; - } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 26) - *reinterpret_cast(_a[0]) = -1; - _id -= 26; - } - return _id; -} -QT_WARNING_POP -QT_END_MOC_NAMESPACE diff --git a/moc_mainwindow.o b/moc_mainwindow.o deleted file mode 100644 index cf8644594c7ef47a07751e421980e6d6796b3935..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15472 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 -#include "src/projectconfig.h" -#include -#include -#if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'projectconfig.h' doesn't include ." -#elif Q_MOC_OUTPUT_REVISION != 67 -#error "This file was generated using the moc from 5.15.15. It" -#error "cannot be used with the include files from this version of Qt." -#error "(The moc has changed too much.)" -#endif - -QT_BEGIN_MOC_NAMESPACE -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_ProjectConfig_t { - QByteArrayData data[3]; - char stringdata0[29]; -}; -#define QT_MOC_LITERAL(idx, ofs, len) \ - Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_ProjectConfig_t, stringdata0) + ofs \ - - idx * sizeof(QByteArrayData)) \ - ) -static const qt_meta_stringdata_ProjectConfig_t qt_meta_stringdata_ProjectConfig = { - { -QT_MOC_LITERAL(0, 0, 13), // "ProjectConfig" -QT_MOC_LITERAL(1, 14, 13), // "configChanged" -QT_MOC_LITERAL(2, 28, 0) // "" - - }, - "ProjectConfig\0configChanged\0" -}; -#undef QT_MOC_LITERAL - -static const uint qt_meta_data_ProjectConfig[] = { - - // content: - 8, // revision - 0, // classname - 0, 0, // classinfo - 1, 14, // methods - 0, 0, // properties - 0, 0, // enums/sets - 0, 0, // constructors - 0, // flags - 1, // signalCount - - // signals: name, argc, parameters, tag, flags - 1, 0, 19, 2, 0x06 /* Public */, - - // signals: parameters - QMetaType::Void, - - 0 // eod -}; - -void ProjectConfig::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) -{ - if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); - (void)_t; - switch (_id) { - case 0: _t->configChanged(); break; - default: ; - } - } else if (_c == QMetaObject::IndexOfMethod) { - int *result = reinterpret_cast(_a[0]); - { - using _t = void (ProjectConfig::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&ProjectConfig::configChanged)) { - *result = 0; - return; - } - } - } - (void)_a; -} - -QT_INIT_METAOBJECT const QMetaObject ProjectConfig::staticMetaObject = { { - QMetaObject::SuperData::link(), - qt_meta_stringdata_ProjectConfig.data, - qt_meta_data_ProjectConfig, - qt_static_metacall, - nullptr, - nullptr -} }; - - -const QMetaObject *ProjectConfig::metaObject() const -{ - return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; -} - -void *ProjectConfig::qt_metacast(const char *_clname) -{ - if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_ProjectConfig.stringdata0)) - return static_cast(this); - return QObject::qt_metacast(_clname); -} - -int ProjectConfig::qt_metacall(QMetaObject::Call _c, int _id, void **_a) -{ - _id = QObject::qt_metacall(_c, _id, _a); - if (_id < 0) - return _id; - if (_c == QMetaObject::InvokeMetaMethod) { - if (_id < 1) - qt_static_metacall(this, _c, _id, _a); - _id -= 1; - } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { - if (_id < 1) - *reinterpret_cast(_a[0]) = -1; - _id -= 1; - } - return _id; -} - -// SIGNAL 0 -void ProjectConfig::configChanged() -{ - QMetaObject::activate(this, &staticMetaObject, 0, nullptr); -} -QT_WARNING_POP -QT_END_MOC_NAMESPACE diff --git a/moc_projectconfig.o b/moc_projectconfig.o deleted file mode 100644 index 056060b06cd528fce6f2faae174d588066e0c226..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13608 zcmeHOdvH|M8NbOQtPpo2ibkkq326yF)?J>Vz7moRHzmYif>ItX%VtBiB-yaJOM^(E z-Gnh+u*~RmnCSzjWjao4r`W%=owitP!H&~GooPE2#aAncj6g@4W8~J7cZQ~-^X8tw*DTt07 z&Q+NC$Nc8#skQ5mbnmnC&zYldtX(g3Nk5{8kL(N1tT!4uTSlJ{`bb^=wMwaEXv)Yl zxl2Y4TXXWK%1B4$+Vu_Vs0~K`y^7o$WaLy!;nJF;&mPf%_YxT)n;M)+h+cZzc7iMd-11!GWv^h z`VkHhNA9`S(N{!4w4|HkYZk88n9n>pHdZG5F-PAs3yoFqH#j`QN1aDLPlnII;R-66 zd$-rx`U{OAn`@erYa+M`oBig<>%rkGXq=ganACSKd8gA_V|B2J3@3}kvpp)y{;417;3{gqgnJCQeGYe~}_)KtkKtze7K0+lWN?TD`8ugP- zuH!<5h`JRoI{t#wrKj8-pW)=H@O0dc*SOyg(_kx(mOiIPcewjK$7!od*xK$0l8B0R zM^ST!Q>FPan$n+1!#&}9JiB780CdBD3Vxjp}f@eP*8!OJE()ttc zJL*Ha-WMJ9J4))Ol3hiANqyCM?0?NszoW$em_vVweK}r(Bdx@D8b4U)3f_Frf)78$ zhj~3J>W7)Sby$*s;tyzz?pB* zy0^VnLr>pCo2oMIBYJ(Av%XHRf6OuNH`jL;j}QB3_o$@ZBRE`60akX93C{5UgM#R~ zgS_ty_Ulw!QRuCq9f@|hdmtruIBOaLIvcxX?#iMAErpVK*uvW$iQ2t39ip{Dv|4c< z=M|FI$1y?5l1U|H|0>zea&{lkam5~G%0-RVu3LjRNG*SyAJfII2A z2s~oZpcHphIA9L7ov^^*p37v)jE>)=;LMA3fh;(qofJWD>`C-*N_DC1hOw-% z@pGZtrqsrCqCXT}5S|x~TpL|7S7r^|r9owP-fEN$RhG@DnB?C_jlta;_h%69*C1dK zk+buR(Q#8yOr|VXc4vF5&^qaxsF}gKp`%9f9;9>v@@oQ>d&(OERl9u+flz)z`KHN% zs)j)2(t!W-Q>gkHdL9HHksnvkrA~g|tL5VY%Shk`V!0d4M04qSBy5n(-twh^sy(o= zdqP8?Hh;nLK&1TC#(|4jg65B+y zoO2LVO)&mC=EmYPE_8zppLqLHTICaOW884Oohc>X_~>%h`NW$WCx((wyv=dL@pi{a zc<)nY%rZ7exJRaV83UZDlQWe16rADpB7+(0q?{;^|&)zwCkgXicbA#wXSY&~$-gblJpslyEn@b%di|c1eCQ*D1fwgFoqk?~;0sOFd%l zQ~nVT{xgKn5^p{ZNT{D~<7%<{%TIbK(V#WJXRw6!VWz+qex)PLiZnMNS zZxM63*0(KO*_s}-S{ASD5K3ZA3u9YJdz*GXvf*W|w=8XFjo;GT+!5=HcQ!0-jl~Vp zzcrN|OlSJzR$>!mmute&2;977BaU0P_T|y&O1s=dUPl*qZR=0;rIRZ(HeJu6K`UW7 z*j!wV&Uc(HWOJe`i^}T~Nh`fIVWnd2i=`Xw%RA!f_I9_XN9(ACwqX(OWTLmXDA-0V zDQaHOh)Pye65Dy?Ow;Y*Y^pmPk8c_piVslWGX06(w6!h1H6j`lS=o@yCbo&VM7mO> zFOw9mcEtPoz_CR180r^yr3VKxgVc<+j`#u~F));vjoLA&Te%`J(3a^+jrVpma$7oU z1-^zpescqDYLC3x3M#uO3A=E&&f?_LVQixv_q^`E-ncB*QsjaDg3c;e4F=W)LXjIfSr+ckbHb&8RWr|qoKB~60 z&;;llFFJHZl0E6(t|D9Gc+tTYP38uzOrPX)a|$!MpB9g{jFs-*7P}S82PPdoJ((_t zvPCo}J_dK`f+9B?+>1c?{D(Zf6BRTYAd!x@+OWWJI$-{N5~pq5sG#SdEPqR;w0#(# zrHA=nQ1H15j`I`<{HlKF1Odlsh4owmkO=rRdKljVkVx0_a~l@;9Lh7lgbnP_>VBr` z!D*NIzbplyAKx|^|BiyI{AeQx{5Zuh|2BX`I?kW>bo}o&yWq!tj`jGIxT*L&1y}8^ zS8$bovj=`a!BstHJn+jf5QyNvs=vkqzg@vq{a;mZRnJ2TuJWHyaFu@&oxecvN9~uH z9{9~3c-#Zu>46{cz<=q1pY*`TJn%Va5Ru-lb`N~O13%z_AN9abdf;OoINv0&p5U85 zkK0*ro(N)UKY|aWz`x*uXFTw)d*DCzz{`~JskS$+;HsZJ z3a;`WP;iz1M+&Zv|DSo_zxBYMQScDOmiy}^1)rthbcq*){!;x3dEn}Lg}e>H=Y zs{HsHC?>woL(gXzq%sa9(=>^(goPnO76|FaCH+f_|9-$60QJEUWS4Gajncc;fHLbb_8m3K)`k zEKhQY5(xXoIP-CQ80Q%A7ZTv?0~FnbA0ps#NfYG}@oVE)`N4EX6)$T&SObHMQ} zf=T@C7!`m|Vvtfk4+G~IqIxa@Km=TUTf9NRQMZd8(0&a+Zo`HV9^BSvB{ouOW$mnuFr3YR ztK=%|%2o1iqJ)b&M_87fG;Rg2T6)9hdP5UVX8QVYXAbvgtWLtGp zLPV;4oU2%lQ!n`*Azl1t2mAPL$#R@}$q!3;zf2*I{fp%|^^)HsU1d2=Lxf?8QrAQ(8i(*hbd_Ac>{4+b<}&W>&{fZXOhf1_BEOVJ z{IFhfJb8`By9uzUYdaNfpqv9!l3hCmB(HNo#j}x6?$G8;_=H>>_3;Wmy7mm z^0o3)4Yw2R$M|P?#+wO)sfn8WS!w?u)v2WW(?FGO_Uom6QwqaA{)Sw)-$fWq>Fvk& zCJ=P1B;6W^?xh?s-T(bkp1*6cfbKv3RK(5yyZKX>>{$4Z_fNY2PZQ>5|9-id^YpD%u&CSf=Kk4yRU`Hw%ocJu#GwQav% z@gMhC-T&*QeZBwRk$;qNKL5Ks?~gz8iZsRhbE!S*$L01GS82Jvg#$NgHj|D3e1h2J1{%Z>M zVX+}%dv>X`{1^6LlRqx~=Q!1pf@(z{E|2t&+)$s#}<+=S(uiJ*IUGh*@D=$HK5AL@9 jV^7w{9^@a8m%lCQC5mvZIpXZ-CLcnF5jAVh>GJ;sMA+8y diff --git a/projectconfig.o b/projectconfig.o deleted file mode 100644 index a8eda6b620a46f46febf367a29eab185f8e2c2cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60384 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 +#include #include #include #include @@ -93,7 +94,36 @@ QString CMakeGenerator::generateProjectConfig(const ProjectConfig *config) projectName = "UntitledProject"; } - content += "# 项目名称\n"; + // ===== 编译器必须在 project() 之前设置,否则 CMake 会默认用 NMake ===== + content += "# ========================================\n"; + content += "# 编译器配置(必须在 project() 之前)\n"; + content += "# ========================================\n\n"; + + QString compilerPath = config->getCompilerPath(); + QString assemblerPath = config->getAssemblerPath(); + QString linkerPath = config->getLinkerPath(); + + if (!compilerPath.isEmpty() && compilerPath != "gcc") { + content += "set(CMAKE_C_COMPILER \"" + compilerPath + "\")\n"; + + // 如果编译器是 MinGW 路径,自动推导 make 程序目录 + // 例如:C:/msys2/mingw64/bin/gcc.exe → C:/msys2/mingw64/bin/mingw32-make.exe + if (compilerPath.contains("mingw", Qt::CaseInsensitive)) { + QString makeDir = QFileInfo(compilerPath).path(); // path() 正确保留绝对路径的盘符 + content += "set(CMAKE_MAKE_PROGRAM \"" + makeDir + "/mingw32-make.exe\")\n"; + } + } + + if (!assemblerPath.isEmpty() && assemblerPath != "gcc") { + content += "set(CMAKE_ASM_COMPILER \"" + assemblerPath + "\")\n"; + } + + if (!linkerPath.isEmpty() && linkerPath != "gcc" && linkerPath != compilerPath) { + content += "set(CMAKE_C_LINK_EXECUTABLE \"" + linkerPath + " -o \")\n"; + } + content += "\n"; + + content += "# 项目名称(编译器已设置,不再尝试检测)\n"; content += "project(" + projectName + " C)\n\n"; content += "# C 标准\n"; @@ -111,13 +141,6 @@ QString CMakeGenerator::generateProjectConfig(const ProjectConfig *config) content += "set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/" + outputDir + ")\n"; content += "set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/" + outputDir + ")\n\n"; - // 编译器配置 - content += "# 编译器配置\n"; - if (!config->getCompilerPath().isEmpty() && config->getCompilerPath() != "gcc") { - content += "set(CMAKE_C_COMPILER \"" + config->getCompilerPath() + "\")\n"; - } - content += "\n"; - return content; } @@ -244,7 +267,7 @@ QString CMakeGenerator::generateCompilerOptions(const ProjectConfig *config) return content; } -QString CMakeGenerator::generateBuildTargets(const ProjectConfig *config) +QString CMakeGenerator::generateBuildTargets(const ProjectConfig * /*config*/) { QString content; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 46a3607..60f0b5c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -49,37 +49,37 @@ void MainWindow::setupUI() QPushButton *openBtn = new QPushButton("📂 打开工程"); openBtn->setMinimumHeight(35); - openBtn->setStyleSheet("QPushButton { background: #2196F3; color: white; font-weight: bold; }"); + openBtn->setStyleSheet("QPushButton { background: #1565C0; color: white; font-weight: bold; border: none; border-radius: 4px; padding: 6px 16px; }"); connect(openBtn, &QPushButton::clicked, this, &MainWindow::openProject); actionLayout->addWidget(openBtn); QPushButton *newBtn = new QPushButton("📄 新建工程"); newBtn->setMinimumHeight(35); - newBtn->setStyleSheet("QPushButton { background: #4CAF50; color: white; font-weight: bold; }"); + newBtn->setStyleSheet("QPushButton { background: #2E7D32; color: white; font-weight: bold; border: none; border-radius: 4px; padding: 6px 16px; }"); connect(newBtn, &QPushButton::clicked, this, &MainWindow::newProject); actionLayout->addWidget(newBtn); saveButton = new QPushButton("💾 保存工程 (Ctrl+S)"); saveButton->setMinimumHeight(35); - saveButton->setStyleSheet("QPushButton { background: #FF9800; color: white; font-weight: bold; }"); + saveButton->setStyleSheet("QPushButton { background: #E65100; color: white; font-weight: bold; border: none; border-radius: 4px; padding: 6px 16px; }"); connect(saveButton, &QPushButton::clicked, this, &MainWindow::saveProject); actionLayout->addWidget(saveButton); generateButton = new QPushButton("🔨 生成 CMake (Ctrl+G)"); generateButton->setMinimumHeight(35); - generateButton->setStyleSheet("QPushButton { background: #9C27B0; color: white; font-weight: bold; }"); + generateButton->setStyleSheet("QPushButton { background: #6A1B9A; color: white; font-weight: bold; border: none; border-radius: 4px; padding: 6px 16px; }"); connect(generateButton, &QPushButton::clicked, this, &MainWindow::generateCMake); actionLayout->addWidget(generateButton); QPushButton *debugBtn = new QPushButton("🐛 编译 Debug"); debugBtn->setMinimumHeight(35); - debugBtn->setStyleSheet("QPushButton { background: #00BCD4; color: white; font-weight: bold; }"); + debugBtn->setStyleSheet("QPushButton { background: #00838F; color: white; font-weight: bold; border: none; border-radius: 4px; padding: 6px 16px; }"); connect(debugBtn, &QPushButton::clicked, this, &MainWindow::compileDebug); actionLayout->addWidget(debugBtn); QPushButton *releaseBtn = new QPushButton("🚀 编译 Release"); releaseBtn->setMinimumHeight(35); - releaseBtn->setStyleSheet("QPushButton { background: #E91E63; color: white; font-weight: bold; }"); + releaseBtn->setStyleSheet("QPushButton { background: #AD1457; color: white; font-weight: bold; border: none; border-radius: 4px; padding: 6px 16px; }"); connect(releaseBtn, &QPushButton::clicked, this, &MainWindow::compileRelease); actionLayout->addWidget(releaseBtn); @@ -553,7 +553,15 @@ void MainWindow::generateCMake() // 在 build 目录执行 cmake QProcess process; process.setWorkingDirectory(buildDir); - process.start("cmake", QStringList() << ".."); + + // 跨平台:Windows 必须指定 MinGW Makefiles 生成器 + QStringList cmakeArgs; +#ifdef Q_OS_WIN32 + cmakeArgs << "-G" << "MinGW Makefiles" << ".."; +#else + cmakeArgs << ".."; +#endif + process.start("cmake", cmakeArgs); process.waitForFinished(10000); QString output = process.readAllStandardOutput(); @@ -820,7 +828,7 @@ void MainWindow::compileProject(const QString &buildType) QPushButton *closeBtn = new QPushButton("❌ 关闭"); closeBtn->setMinimumHeight(35); - closeBtn->setStyleSheet("QPushButton { background: #f44336; color: white; font-weight: bold; font-size: 14px; }"); + closeBtn->setStyleSheet("QPushButton { background: #C62828; color: white; font-weight: bold; font-size: 14px; border: none; border-radius: 4px; padding: 6px 16px; }"); dialogLayout->addWidget(closeBtn); compileDialog->show(); @@ -829,7 +837,15 @@ void MainWindow::compileProject(const QString &buildType) outputEdit->append("📋 正在配置 CMake...\n"); QProcess cmakeProcess; cmakeProcess.setWorkingDirectory(buildDir); - cmakeProcess.start("cmake", QStringList() << "-DCMAKE_BUILD_TYPE=" + buildType << ".."); + + // 跨平台:Windows 必须指定 MinGW Makefiles 生成器 + QStringList cmakeArgs; +#ifdef Q_OS_WIN32 + cmakeArgs << "-G" << "MinGW Makefiles" << "-DCMAKE_BUILD_TYPE=" + buildType << ".."; +#else + cmakeArgs << "-DCMAKE_BUILD_TYPE=" + buildType << ".."; +#endif + cmakeProcess.start("cmake", cmakeArgs); cmakeProcess.waitForFinished(30000); outputEdit->append(cmakeProcess.readAllStandardOutput()); @@ -838,11 +854,17 @@ void MainWindow::compileProject(const QString &buildType) outputEdit->append("⚠️ CMake 警告/错误:\n" + cmakeError); } - // 执行 make + // 执行构建(跨平台:Windows 用 mingw32-make,Linux/macOS 用 make) outputEdit->append("\n🔨 正在编译 " + buildType + "...\n"); QProcess makeProcess; makeProcess.setWorkingDirectory(buildDir); - makeProcess.start("make", QStringList() << buildType.toLower()); + +#ifdef Q_OS_WIN32 + QString makeCmd = "mingw32-make"; +#else + QString makeCmd = "make"; +#endif + makeProcess.start(makeCmd, QStringList() << buildType.toLower()); // 实时输出 connect(&makeProcess, &QProcess::readyReadStandardOutput, [&outputEdit, &makeProcess]() { diff --git a/需求规格说明书.md b/需求规格说明书.md index 13fe80e..20d2bfb 100644 --- a/需求规格说明书.md +++ b/需求规格说明书.md @@ -1,8 +1,9 @@ # VoiletCStudio 需求规格说明书 -**版本号:** v1.0 +**版本号:** v1.1 **项目名称:** 紫罗兰 C 工程配置器(VoiletCStudio) **开发日期:** 2026-04-09 +**最后更新:** 2026-04-28 **作者:** 虾哥 --- @@ -525,6 +526,7 @@ add_custom_target(release | 版本 | 日期 | 更新内容 | |------|------|---------| | v1.0 | 2026-04-09 | 初始版本,完整功能发布 | +| v1.1 | 2026-04-28 | 修复 Windows 跨平台兼容性:CMAKE_C_COMPILER 设置提前到 project() 之前;自动添加 MinGW Makefiles 生成器;mingw32-make 替代 make;按钮高对比度配色优化 | ---