Skip to content

Commit 6b328c6

Browse files
committed
整理导入的头文件以最小化头文件依赖,修改编译参数以加快debug编译速度
1 parent 3cd3330 commit 6b328c6

14 files changed

Lines changed: 39 additions & 23 deletions

CMakeLists.txt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
cmake_minimum_required(VERSION 3.10)
22

3+
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
4+
35
project(Lab2QRCode)
46

57
set(CMAKE_CXX_STANDARD 20)
@@ -19,7 +21,7 @@ add_custom_target(
1921
COMMAND ${CMAKE_COMMAND} -E echo "Running PowerShell script..."
2022
COMMAND pwsh -ExecutionPolicy Bypass -File ${CMAKE_SOURCE_DIR}/scripts/build/version_info.ps1
2123
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/version_info
22-
COMMENT "powershell -ExecutionPolicy Bypass -File ${CMAKE_SOURCE_DIR}/version_info.ps1"
24+
COMMENT "powershell -ExecutionPolicy Bypass -File ${CMAKE_SOURCE_DIR}/scripts/build/version_info.ps1"
2325
BYPRODUCTS ${VERSION_CPP})
2426

2527
if(MSVC)
@@ -39,7 +41,14 @@ if(NOT XLSXWRITER_INCLUDE_DIR OR NOT XLSXWRITER_LIBRARY)
3941
message(FATAL_ERROR "Could not find xlsxwriter library or include directory")
4042
endif()
4143

44+
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
45+
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Og")
46+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Og")
47+
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -O0 -Wl,-O0")
48+
endif()
49+
4250
file(GLOB_RECURSE SOURCES "src/*.cpp")
51+
list(REMOVE_ITEM SOURCES "${VERSION_CPP}")
4352

4453
add_executable(${PROJECT_NAME} WIN32 ${SOURCES} ${VERSION_CPP} "logo.rc")
4554
add_dependencies(${PROJECT_NAME} RunPowerShellScript)
@@ -57,6 +66,10 @@ target_link_libraries(
5766
Boost::random
5867
spdlog::spdlog_header_only)
5968

69+
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
70+
target_precompile_headers(${PROJECT_NAME} PRIVATE <spdlog/spdlog.h>)
71+
endif()
72+
6073
target_include_directories(${PROJECT_NAME} PRIVATE ${XLSXWRITER_INCLUDE_DIR})
6174
target_link_libraries(${PROJECT_NAME} PRIVATE ${XLSXWRITER_LIBRARY})
6275

src/BarcodeWidget.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "components/message_dialog.h"
55
#include "convert.h"
66
#include "version_info/version.h"
7+
78
#include <QCheckBox>
89
#include <QComboBox>
910
#include <QFileDialog>
@@ -25,9 +26,12 @@
2526
#include <ZXing/BarcodeFormat.h>
2627
#include <ZXing/TextUtfEncoding.h>
2728
#include <magic_enum/magic_enum.hpp>
28-
#include <opencv2/opencv.hpp>
29+
#include <opencv2/core.hpp>
30+
#include <opencv2/imgcodecs.hpp>
31+
#include <opencv2/imgproc.hpp>
2932
#include <ranges>
3033
#include <spdlog/spdlog.h>
34+
3135
template <typename Ret, typename... Fs>
3236
requires(std::is_void_v<Ret> || std::is_default_constructible_v<Ret>)
3337
struct overload_def_noop : private Fs... {

src/BarcodeWidget.h

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
#pragma once
22

3-
#include <vector>
4-
5-
#include <QWidget>
6-
#include <ZXing/BarcodeFormat.h>
7-
#include <opencv2/opencv.hpp>
8-
#include <qfuturewatcher.h>
9-
103
#include "CameraWidget.h"
114
#include "convert.h"
125
#include "mqtt/MQTTMessageWidget.h"
136
#include "mqtt/mqtt_client.h"
147

8+
#include <QWidget>
9+
#include <ZXing/BarcodeFormat.h>
10+
#include <qfuturewatcher.h>
11+
#include <vector>
12+
1513
class QLineEdit;
1614
class QPushButton;
1715
class QLabel;

src/CameraWidget.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,24 @@
11
#include "CameraWidget.h"
2+
23
#include <QBuffer>
3-
#include <QCameraInfo>
4-
#include <QComboBox>
54
#include <QDateTime>
65
#include <QDir>
76
#include <QFile>
87
#include <QFileDialog>
9-
#include <QGroupBox>
108
#include <QHeaderView>
119
#include <QLabel>
1210
#include <QMenuBar>
1311
#include <QMessageBox>
1412
#include <QMetaObject>
15-
#include <QPushButton>
1613
#include <QStandardItemModel>
1714
#include <QStandardPaths>
1815
#include <QTableView>
1916
#include <QTimer>
2017
#include <QToolButton>
21-
#include <QWidgetAction>
2218
#include <ZXing/ReadBarcode.h>
2319
#include <magic_enum/magic_enum_format.hpp>
20+
#include <opencv2/imgcodecs.hpp>
21+
#include <opencv2/imgproc.hpp>
2422
#include <qaction.h>
2523
#include <qcoreevent.h>
2624
#include <spdlog/spdlog.h>

src/CameraWidget.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
#include "CameraConfig.h"
55
#include "FrameWidget.h"
66
#include "commondef.h"
7+
78
#include <QStatusBar>
8-
#include <QTextEdit>
99
#include <QVBoxLayout>
1010
#include <QWidget>
1111
#include <ZXing/BarcodeFormat.h>
1212
#include <atomic>
1313
#include <future>
14-
#include <opencv2/opencv.hpp>
14+
#include <opencv2/videoio.hpp>
1515
#include <qactiongroup.h>
1616
#include <qcombobox.h>
1717
#include <thread>

src/FrameWidget.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
#include "FrameWidget.h"
2+
23
#include <QImage>
34
#include <QPainter>
45
#include <QStyleOption>
56
#include <spdlog/spdlog.h>
7+
68
namespace {
79

810
// 输入 outer rect 和图像宽高,返回居中等比缩放后的 rect

src/about_dialog.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include "about_dialog.h"
22
#include "components/UiConfig.h"
3-
#include <QApplication>
3+
44
#include <QDateTime>
55
#include <QDesktopServices>
66
#include <QFile>

src/components/UiConfig.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#include "UiConfig.h"
22
#include "../logging.h"
3+
34
#include <QApplication>
45
#include <QFile>
5-
#include <QFileInfo>
66
#include <QFont>
77
#include <QFontDatabase>
88
#include <QFontInfo>

src/components/message_dialog.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "message_dialog.h"
2+
23
#include <QApplication>
34
#include <QGraphicsDropShadowEffect>
45
#include <QHBoxLayout>
@@ -7,6 +8,7 @@
78
#include <QScreen>
89
#include <QScrollArea>
910
#include <QVBoxLayout>
11+
1012
MessageDialog::MessageDialog(QWidget *parent)
1113
: QDialog(parent) {
1214
setMinimumSize(400, 300);

src/convert.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
#define LAB2QRCODE_CONVERT_H
77

88
#include <variant>
9-
#include <vector>
109

1110
#include <QByteArray>
1211
#include <QFileInfo>
@@ -16,7 +15,8 @@
1615
#include <ZXing/ImageView.h>
1716
#include <ZXing/MultiFormatWriter.h>
1817
#include <ZXing/ReadBarcode.h>
19-
#include <opencv2/opencv.hpp>
18+
#include <opencv2/imgcodecs.hpp>
19+
#include <opencv2/imgproc.hpp>
2020

2121
/**
2222
* @namespace convert

0 commit comments

Comments
 (0)