Files
Just-DataInspector/Makefile
T
DeepSeek V4.1 Flash 9c6c374cce feat: 支持多视图标签页、按文件分组的多文件信号管理与网格随勾选自动收敛
数据层与视图配置解耦:新增 DataSet(多文件只读数据层)与 TabConfig(每标签页独立配置),
以 SignalRef{fileIndex,signalIndex} 标识全局信号,替换原有单文件 SignalSet。

- 标签页:新增 TabBar 组件,支持新建/切换/关闭标签页;每页独立保存信号勾选、
  颜色/线宽/显示方式、网格划分、视图范围与时间光标,互不影响。
- 网格收敛:可见性变更统一经 TabConfig 的 Set*Visible 接口并同步重算网格,
  取消勾选后对应的空网格立即回收(修复此前留下空轨道的问题)。
- 多文件分组:左侧面板改为「文件分组 + 信号」树形列表,分组可折叠、可整组勾选,
  分组复选框支持全选/部分/未选三态;新加载文件的信号默认未勾选,由用户自行选择。
- 来源标识:信号行、样式编辑区标题、波形图例与光标读数在跨文件时标注来源文件名。
- 交互补充:面板滚动条支持点击跳转与拖拽,切换标签页自动滚动到已选信号。
- 工具栏精简为「打开 CSV/适应视图/放大/缩小/合并网格/每信号一格/全选信号/清空勾选」,
  按钮宽度改为按实际文本像素测量;打开对话框支持多选文件,拖放支持批量载入。
- 新增 TestData/[2].CSV 作为跨文件对比测试数据。
2026-09-29 15:48:04 +08:00

246 lines
7.6 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 目标文件名称
TARGET_FILE_NAME = Target
# 编译目录
BUILD_DIR = Build
# Release 编译子目录
SUB_DIR_RELEASE = Release
# Debug 编译子目录
SUB_DIR_DEBUG = Debug
# Release 优化等级
RELEASE_OPT = -Os
# Debug 优化等级
DEBUG_OPT = -O0
# GUI或CUI编译选项 [0]CUI/Console [1]GUI
GUI = 1
# C编译标准
C_STD = c17
# C++编译标准
CXX_STD = c++17
# 源文件编码定义
INPUT_CHAR_ENCODING = UTF-8
# 编译产物单字节字符(char)编码定义
OUTPUT_CHAR_ENCODING = GBK
# 编译产物宽字符(wchar_t)编码定义
OUTPUT_WCHAR_ENCODING = UTF-16LE
# 编译工具前缀
COMPLIER_PREFIX = \
# C编译工具
C_COMPLIER = $(strip $(COMPLIER_PREFIX))gcc
# C++编译工具
CXX_COMPLIER = $(strip $(COMPLIER_PREFIX))g++
# Windows 资源文件编译工具
WIN_RES_COMPLIER = windres
##################################################################################
# 链接库
LIB_LINK = \
-lgdi32 \
-lgdiplus \
-lcomdlg32 \
-ld3d11 \
-ldwmapi \
-ld3dcompiler \
# C定义
C_DEFS = \
_UNICODE \
UNICODE \
# C头文件目录
C_INCLUDES_PATHS = \
# C源文件目录
C_SOURCES_PATHS = \
# C额外单个源文件
C_EXTERA_SOURCES = \
# C++定义
CXX_DEFS = \
_UNICODE \
UNICODE \
# C++ 头文件目录
CXX_INCLUDES_PATHS = \
Utilities/Inc \
Resources/Inc \
Components/Main/Inc \
Components/Application/Inc \
Components/TabBar/Inc \
Components/Toolbar/Inc \
Components/SignalPanel/Inc \
Components/PlotView/Inc \
# C++源文件目录
CXX_SOURCES_PATHS = \
Utilities/Src \
Components/Main/Src \
Components/Application/Src \
Components/TabBar/Src \
Components/Toolbar/Src \
Components/SignalPanel/Src \
Components/PlotView/Src \
# C++额外单个源文件
CXX_EXTERA_SOURCES = \
# Windows 资源文件脚本头文件路径
WIN_RESOURCE_INCLUDES_PATHS = \
Resources \
Resources/Inc \
# Windows 资源文件脚本输入代码页(对应 INPUT_CHAR_ENCODING = UTF-8)
WIN_RESOURCE_CODEPAGE = 65001
# Windows 资源文件脚本列表
WIN_RESOURCE_SCRIPTS = \
Resources/JustDataInspector.rc \
##################################################################################
# C编译选项
CFLAGS = $(foreach text,$(C_DEFS),$(addprefix -D,$(text))) \
$(foreach path,$(C_INCLUDES_PATHS),$(addprefix -I,$(path))) \
-std=$(strip $(C_STD)) \
-finput-charset=$(strip $(INPUT_CHAR_ENCODING)) \
-fexec-charset=$(strip $(OUTPUT_CHAR_ENCODING)) \
-fwide-exec-charset=$(strip $(OUTPUT_WCHAR_ENCODING)) \
-static \
-Wall \
-MMD -MP -MF"$(@:%.o=%.d)" \
# C++编译选项
CXXFLAGS = $(foreach text,$(CXX_DEFS),$(addprefix -D,$(text))) \
$(foreach path,$(CXX_INCLUDES_PATHS),$(addprefix -I,$(path))) \
-std=$(strip $(CXX_STD)) \
-finput-charset=$(strip $(INPUT_CHAR_ENCODING)) \
-fexec-charset=$(strip $(OUTPUT_CHAR_ENCODING)) \
-fwide-exec-charset=$(strip $(OUTPUT_WCHAR_ENCODING)) \
-static \
-Wall \
-MMD -MP -MF"$(@:%.o=%.d)" \
-lstdc++ \
# 链接选项
LDFLAGS = -Wl,-Map,$(basename $@).map \
##################################################################################
# GUI与CUI选项附加
ifeq ($(GUI), 1)
LDFLAGS += -mwindows
else
LDFLAGS += -mconsole
endif
# C目标文件及索引目录关联
OBJECTS = $(notdir $(C_EXTERA_SOURCES:.c=.o))
OBJECTS += $(subst .c,.o,$(notdir $(foreach path,$(C_SOURCES_PATHS),$(wildcard $(path)/*.c))))
vpath %.c $(sort $(dir $(C_EXTERA_SOURCES))) $(sort $(C_SOURCES_PATHS))
# C++目标文件及索引目录关联
OBJECTS += $(notdir $(CXX_EXTERA_SOURCES:.cpp=.o))
OBJECTS += $(subst .cpp,.o,$(notdir $(foreach path,$(CXX_SOURCES_PATHS),$(wildcard $(path)/*.cpp))))
vpath %.cpp $(sort $(dir $(CXX_EXTERA_SOURCES))) $(sort $(CXX_SOURCES_PATHS))
# Windows资源文件及索引目录关联
OBJECTS += $(notdir $(WIN_RESOURCE_SCRIPTS:.rc=.o))
vpath %.rc $(sort $(dir $(WIN_RESOURCE_SCRIPTS)))
# Release 目标文件
RELEASE_OBJECTS = $(addprefix $(BUILD_DIR)/$(SUB_DIR_RELEASE)/,$(OBJECTS))
# Debug 目标文件
DEBUG_OBJECTS = $(addprefix $(BUILD_DIR)/$(SUB_DIR_DEBUG)/,$(OBJECTS))
##################################################################################
# all任务 目标为 release 和 debug 产物
all: $(BUILD_DIR)/$(SUB_DIR_RELEASE)/$(TARGET_FILE_NAME).exe $(BUILD_DIR)/$(SUB_DIR_DEBUG)/$(TARGET_FILE_NAME).exe
@echo ====== [All] Build Procedure Accomplished ======
# release任务 目标为 release 产物
release: $(BUILD_DIR)/$(SUB_DIR_RELEASE)/$(TARGET_FILE_NAME).exe
@echo ====== [Release] Build Procedure Accomplished ======
# debug任务 目标为 debug 产物
debug: $(BUILD_DIR)/$(SUB_DIR_DEBUG)/$(TARGET_FILE_NAME).exe
@echo ====== [Debug] Build Procedure Accomplished ======
# 清理任务
clean: $(BUILD_DIR)
powershell rm -r $(BUILD_DIR)
# 构建目录生成
$(BUILD_DIR):
powershell mkdir $@
# Release 工作目录生成
$(BUILD_DIR)/$(SUB_DIR_RELEASE): | $(BUILD_DIR)
powershell mkdir $@
# Debug 工作目录生成
$(BUILD_DIR)/$(SUB_DIR_DEBUG): | $(BUILD_DIR)
powershell mkdir $@
# Release 最终可执行文件编译任务
$(BUILD_DIR)/$(SUB_DIR_RELEASE)/$(TARGET_FILE_NAME).exe: $(RELEASE_OBJECTS)
@echo ====== [Release] All File Compiled. Now Linking... ======
$(CXX_COMPLIER) $(RELEASE_OBJECTS) -static -s -o $@ $(LIB_LINK) $(LDFLAGS)
@echo ====== [Release] Program Link Finished ======
# Debug 最终可执行文件编译任务
$(BUILD_DIR)/$(SUB_DIR_DEBUG)/$(TARGET_FILE_NAME).exe: $(DEBUG_OBJECTS)
@echo ====== [Debug] All File Compiled. Now Linking... ======
$(CXX_COMPLIER) $(DEBUG_OBJECTS) -static -o $@ $(LIB_LINK) $(LDFLAGS)
@echo ====== [Debug] Program Link Finished ======
# C Release 目标文件编译
$(BUILD_DIR)/$(SUB_DIR_RELEASE)/%.o: %.c Makefile | $(BUILD_DIR)/$(SUB_DIR_RELEASE)
@echo ====== [Release] C Source File "$<" Compiling... ======
$(C_COMPLIER) -c $(CFLAGS) $(RELEASE_OPT) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(SUB_DIR_RELEASE)/$(notdir $(<:.c=.lst)) $< -o $@
# C++ Release 目标文件编译
$(BUILD_DIR)/$(SUB_DIR_RELEASE)/%.o: %.cpp Makefile | $(BUILD_DIR)/$(SUB_DIR_RELEASE)
@echo ====== [Release] C++ Source File "$<" Compiling... ======
$(CXX_COMPLIER) -c $(CXXFLAGS) $(RELEASE_OPT) -Wa,-a,-ad,-ahlms=$(BUILD_DIR)/$(SUB_DIR_RELEASE)/$(notdir $(<:.cpp=.lst)) $< -o $@
# Release 资源脚本文件编译
$(BUILD_DIR)/$(SUB_DIR_RELEASE)/%.o: %.rc Makefile | $(BUILD_DIR)/$(SUB_DIR_RELEASE)
@echo ====== [Release] Windows Resource Script File "$<" Compiling... ======
$(WIN_RES_COMPLIER) -c $(WIN_RESOURCE_CODEPAGE) $(foreach path,$(WIN_RESOURCE_INCLUDES_PATHS),$(addprefix -I,$(path))) $< -o $@
# C Debug 目标文件编译
$(BUILD_DIR)/$(SUB_DIR_DEBUG)/%.o: %.c Makefile | $(BUILD_DIR)/$(SUB_DIR_DEBUG)
@echo ====== [Debug] C Source File "$<" Compiling... ======
$(C_COMPLIER) -c $(CFLAGS) $(DEBUG_OPT) -g -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(SUB_DIR_DEBUG)/$(notdir $(<:.c=.lst)) $< -o $@
# C++ Debug 目标文件编译
$(BUILD_DIR)/$(SUB_DIR_DEBUG)/%.o: %.cpp Makefile | $(BUILD_DIR)/$(SUB_DIR_DEBUG)
@echo ====== [Debug] C++ Source File "$<" Compiling... ======
$(CXX_COMPLIER) -c $(CXXFLAGS) $(DEBUG_OPT) -g -Wa,-a,-ad,-ahlms=$(BUILD_DIR)/$(SUB_DIR_DEBUG)/$(notdir $(<:.cpp=.lst)) $< -o $@
# Debug 资源脚本文件编译
$(BUILD_DIR)/$(SUB_DIR_DEBUG)/%.o: %.rc Makefile | $(BUILD_DIR)/$(SUB_DIR_DEBUG)
@echo ====== [Debug] Windows Resource Script File "$<" Compiling... ======
$(WIN_RES_COMPLIER) -c $(WIN_RESOURCE_CODEPAGE) $(foreach path,$(WIN_RESOURCE_INCLUDES_PATHS),$(addprefix -I,$(path))) $< -o $@
# 依赖关系
-include $(RELEASE_OBJECTS:.o=.d)
-include $(DEBUG_OBJECTS:.o=.d)