From 19296b7337e2d53afa2098da73518ed19f6587d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=99=BE=E5=93=A5?= Date: Thu, 9 Apr 2026 10:18:39 -0400 Subject: [PATCH] =?UTF-8?q?VoiletCStudio=20v1.0=20-=20=E7=B4=AB=E7=BD=97?= =?UTF-8?q?=E5=85=B0=20C=20=E5=B7=A5=E7=A8=8B=E9=85=8D=E7=BD=AE=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 功能特性: - JSON 格式工程配置文件 - 虚拟目录管理(类似 MDK) - 跨平台 CMake 自动生成 - 一键编译 Debug/Release - 拖拽文件打开工程 - 实时编译输出显示 作者:虾哥 日期:2026-04-09 --- .qmake.stash | 23 ++ Makefile | 444 +++++++++++++++++++++ README.md | 146 +++++++ VoiletCStudio | Bin 0 -> 192768 bytes VoiletCStudio.pro | 26 ++ cmakegenerator.o | Bin 0 -> 74808 bytes main.o | Bin 0 -> 5712 bytes mainwindow.o | Bin 0 -> 147400 bytes moc_cmakegenerator.cpp | 155 ++++++++ moc_cmakegenerator.o | Bin 0 -> 7416 bytes moc_mainwindow.cpp | 233 +++++++++++ moc_mainwindow.o | Bin 0 -> 15472 bytes moc_predefs.h | 434 +++++++++++++++++++++ moc_projectconfig.cpp | 134 +++++++ moc_projectconfig.o | Bin 0 -> 13608 bytes projectconfig.o | Bin 0 -> 60384 bytes run.sh | 3 + src/cmakegenerator.cpp | 293 ++++++++++++++ src/cmakegenerator.h | 39 ++ src/main.cpp | 21 + src/mainwindow.cpp | 855 +++++++++++++++++++++++++++++++++++++++++ src/mainwindow.h | 104 +++++ src/projectconfig.cpp | 351 +++++++++++++++++ src/projectconfig.h | 101 +++++ 24 files changed, 3362 insertions(+) create mode 100644 .qmake.stash create mode 100644 Makefile create mode 100644 README.md create mode 100755 VoiletCStudio create mode 100644 VoiletCStudio.pro create mode 100644 cmakegenerator.o create mode 100644 main.o create mode 100644 mainwindow.o create mode 100644 moc_cmakegenerator.cpp create mode 100644 moc_cmakegenerator.o create mode 100644 moc_mainwindow.cpp create mode 100644 moc_mainwindow.o create mode 100644 moc_predefs.h create mode 100644 moc_projectconfig.cpp create mode 100644 moc_projectconfig.o create mode 100644 projectconfig.o create mode 100755 run.sh create mode 100644 src/cmakegenerator.cpp create mode 100644 src/cmakegenerator.h create mode 100644 src/main.cpp create mode 100644 src/mainwindow.cpp create mode 100644 src/mainwindow.h create mode 100644 src/projectconfig.cpp create mode 100644 src/projectconfig.h diff --git a/.qmake.stash b/.qmake.stash new file mode 100644 index 0000000..76dc16c --- /dev/null +++ b/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 14 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 2 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/14 \ + /usr/include/x86_64-linux-gnu/c++/14 \ + /usr/include/c++/14/backward \ + /usr/lib/gcc/x86_64-linux-gnu/14/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/14 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..efc0a95 --- /dev/null +++ b/Makefile @@ -0,0 +1,444 @@ +############################################################################# +# 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 new file mode 100644 index 0000000..775add4 --- /dev/null +++ b/README.md @@ -0,0 +1,146 @@ +# VoiletCStudio - 紫罗兰 C 工具箱 + +Qt5 跨平台 C 工程配置器,自动生成 CMakeLists.txt + +--- + +## 🚀 功能特性 + +### 1. 工程配置管理 +- ✅ JSON 格式配置文件 +- ✅ 新建/打开/保存工程 +- ✅ Ctrl+S 快速保存 + +### 2. 编译工具链配置 +- ✅ 编译器路径选择 +- ✅ 汇编器路径选择 +- ✅ 链接器路径选择 +- ✅ 支持 MinGW/GCC/Clang + +### 3. 文件管理 +- ✅ 虚拟目录(类似 MDK) +- ✅ .c 源文件分类管理 +- ✅ .h 包含目录管理 +- ✅ 库文件管理(.a/.so/.lib) + +### 4. 编译配置 +- ✅ 编译宏定义 +- ✅ 自定义编译选项 +- ✅ Debug/Release 模式 + +### 5. CMake 生成 +- ✅ 自动生成 CMakeLists.txt +- ✅ 支持 make debug/release +- ✅ 跨平台兼容 + +--- + +## 📋 使用方法 + +### 编译 +```bash +cd VoiletCStudio +qmake +make +``` + +### 运行 +```bash +./VoiletCStudio +``` + +### 使用流程 +1. 新建工程 +2. 配置编译器路径 +3. 添加虚拟目录和源文件 +4. 添加包含目录和库文件 +5. 添加编译宏和选项 +6. 保存工程(JSON) +7. 生成 CMakeLists.txt +8. 使用 CMake 编译 + +--- + +## 🛠️ CMake 使用 + +```bash +# 配置 +cmake -B build + +# 编译 Debug +make debug + +# 编译 Release +make release + +# 或直接使用 +cmake --build build --config Debug +``` + +--- + +## 📁 项目结构 + +``` +VoiletCStudio/ +├── src/ +│ ├── main.cpp # 主程序入口 +│ ├── mainwindow.cpp/h # 主窗口 +│ ├── projectconfig.cpp/h # 配置管理 +│ └── cmakegenerator.cpp/h # CMake 生成 +├── resources/ # 资源文件 +├── VoiletCStudio.pro # Qt 项目文件 +└── README.md # 说明文档 +``` + +--- + +## 💻 跨平台支持 + +| 平台 | 编译器 | 状态 | +|------|--------|------| +| Windows | MinGW | ✅ | +| Linux | GCC | ✅ | +| macOS | Clang | ✅ | + +--- + +## 📝 配置文件格式 + +```json +{ + "projectName": "MyProject", + "projectPath": "/path/to/project", + "compilerPath": "/usr/bin/gcc", + "virtualDirs": { + "App": { + "name": "App", + "files": ["src/main.c"] + } + }, + "includeDirs": ["./include"], + "libraries": ["libmylib.a"], + "defines": ["DEBUG"], + "compilerOptions": ["-Wall"] +} +``` + +--- + +## 🎯 特色 + +- **类 MDK 虚拟目录**:像 Keil MDK 一样管理源文件 +- **一键生成 CMake**:自动生成完整的 CMakeLists.txt +- **跨平台**:Windows/Linux/macOS 全支持 +- **轻量级**:纯 Qt5 实现,无额外依赖 + +--- + +## 📄 许可证 + +MIT License + +--- + +**作者:虾哥** +**日期:2026-04-09** diff --git a/VoiletCStudio b/VoiletCStudio new file mode 100755 index 0000000000000000000000000000000000000000..db00e7fd0873dfe8993365dd7f80f57681193752 GIT binary patch literal 192768 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