Skip to content

Commit 22134e6

Browse files
committed
chore: 一些小更新;
1 parent 4655888 commit 22134e6

6 files changed

Lines changed: 92 additions & 74 deletions

File tree

CMakeLists.txt

Lines changed: 64 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,12 @@ endif()
1818

1919
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2020
set(PROJECT_VERSION "2.3.8")
21-
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
21+
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE)
22+
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE)
23+
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL TRUE)
2224

2325
find_package(Qt6 REQUIRED COMPONENTS Widgets Network Concurrent PrintSupport
24-
Xml LinguistTools)
26+
Xml LinguistTools)
2527

2628
if(Qt6_VERSION VERSION_GREATER_EQUAL 6.10.0)
2729
set(QT_CREATOR_SKIP_MAINTENANCE_TOOL_PROVIDER ON)
@@ -41,7 +43,7 @@ option(WINGHEX_BUILD_SHARED_MEM_EXT "Build ShareMemoryDrv plugin" OFF)
4143
option(WINGHEX_ANGEL_LSP "Build LS for AngelScript" ON)
4244
option(WINGHEX_BUILD_TEST "Build test data generator for WingCStruct" OFF)
4345
option(WINGHEX_OPTIMIZE_FOR_NATIVE
44-
"Build with native optimization(less portable)" OFF)
46+
"Build with native optimization(less portable)" OFF)
4547

4648
add_definitions(-DAS_NO_THREADS)
4749
add_definitions(-DWING_SYSTEM_NAME="${CMAKE_SYSTEM_NAME}")
@@ -75,7 +77,7 @@ if(WINGHEX_OPTIMIZE_FOR_NATIVE)
7577
endif()
7678

7779
add_definitions(-DWINGHEX_VERSION="${PROJECT_VERSION}"
78-
-DAPP_ORG="WingCloudStudio" -DAPP_NAME="${PROJECT_NAME}")
80+
-DAPP_ORG="WingCloudStudio" -DAPP_NAME="${PROJECT_NAME}")
7981
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/WINGHEX_VERSION" ${PROJECT_VERSION})
8082
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/QT_VERSION" "6")
8183

@@ -174,7 +176,7 @@ set(ANGELSCRIPTEXP_SRC
174176
src/grammar/AngelscriptExprParser/AngelscriptExprParserVisitor.h)
175177

176178
set(ANTLR4_GRAMMAR ${NUMCAL_GRAMMAR} ${CSTRUCT_GRAMMAR} ${ASCONSOLE_GRAMMAR}
177-
${SNIPPET_GRAMMAR} ${ANGELSCRIPTEXP_SRC})
179+
${SNIPPET_GRAMMAR} ${ANGELSCRIPTEXP_SRC})
178180

179181
set(ANGEL_SCRIPT_ADDON_ROOT
180182
"${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/AngelScript/sdk/add_on")
@@ -435,7 +437,7 @@ if(WINGHEX_USE_FRAMELESS)
435437
src/widgetframe/windowbar_p.h src/widgetframe/windowbutton.cpp
436438
src/widgetframe/windowbutton.h src/widgetframe/windowbutton_p.h)
437439
list(APPEND CLASS_SRC src/class/framelesshelper.h
438-
src/class/framelesshelper.cpp)
440+
src/class/framelesshelper.cpp)
439441
else()
440442
set(WIDGET_FRAME_SRC)
441443
endif()
@@ -541,7 +543,7 @@ set(TRANSLATION_PATH
541543
${CMAKE_CURRENT_SOURCE_DIR}/src)
542544

543545
qt_create_translation(QM_FILES ${TRANSLATION_PATH} ${TS_FILES} OPTIONS
544-
-no-obsolete)
546+
-no-obsolete)
545547

546548
set(LANG_SRC "${CMAKE_CURRENT_SOURCE_DIR}/lang")
547549
set(LANG_DEST "${CMAKE_CURRENT_BINARY_DIR}/.tmp/lang")
@@ -557,7 +559,7 @@ foreach(TS_FILE IN LISTS TS_FILES)
557559
set(QM_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/${TS_DIR}")
558560
set(LANG_NEED_COPY_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/${TS_DIR}")
559561
set(LANG_NEED_COPY "${LANG_NEED_COPY_PREFIX}/about.md"
560-
"${LANG_NEED_COPY_PREFIX}/devs.md")
562+
"${LANG_NEED_COPY_PREFIX}/devs.md")
561563

562564
add_custom_target(
563565
copy_lang_files_${LANG_NAME}
@@ -571,7 +573,7 @@ foreach(TS_FILE IN LISTS TS_FILES)
571573
add_custom_target(
572574
pak_lang_files_${LANG_NAME}
573575
COMMAND ${CMAKE_COMMAND} -E tar cf ${LANG_PAK_NAME} --format=zip
574-
${LANG_COMPRESS_CONTENT}
576+
${LANG_COMPRESS_CONTENT}
575577
WORKING_DIRECTORY "${QM_DIR}"
576578
COMMENT "Compressing ${TS_FILE} into ${LANG_PAK_NAME}"
577579
DEPENDS ${QM_FILES} copy_lang_files_${LANG_NAME})
@@ -616,16 +618,16 @@ set(PROJECT_SOURCES
616618
add_custom_target(
617619
build-time-make-directory ALL
618620
COMMAND
619-
${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/lang"
620-
"${CMAKE_CURRENT_BINARY_DIR}/scripts"
621-
"${CMAKE_CURRENT_BINARY_DIR}/.tmp")
621+
${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/lang"
622+
"${CMAKE_CURRENT_BINARY_DIR}/scripts"
623+
"${CMAKE_CURRENT_BINARY_DIR}/.tmp")
622624

623625
if(WIN32)
624626
set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/favicon.rc")
625627
find_package(Qt6 REQUIRED COMPONENTS Core)
626628

627629
qt_add_executable(WingHexExplorer2 MANUAL_FINALIZATION ${PROJECT_SOURCES}
628-
${app_icon_resource_windows})
630+
${app_icon_resource_windows})
629631

630632
target_link_libraries(WingHexExplorer2 PRIVATE Qt6::Core)
631633
else()
@@ -636,30 +638,30 @@ if(Qt6_VERSION VERSION_GREATER_EQUAL 6.7.0)
636638
target_compile_definitions(
637639
WingHexExplorer2
638640
PRIVATE QT_NO_CONTEXTLESS_CONNECT
639-
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
640-
QT_RESTRICTED_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII)
641+
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
642+
QT_RESTRICTED_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII)
641643
endif()
642644

643645
target_link_libraries(
644646
${CMAKE_PROJECT_NAME}
645647
PRIVATE Qt6::Widgets
646-
Qt6::Network
647-
Qt6::Concurrent
648-
Qt6::PrintSupport
649-
Qt6::Xml
650-
Qt6::GuiPrivate
651-
Qt6::CorePrivate
652-
OpenSSL::SSL
653-
OpenSSL::Crypto
654-
QtSingleApplication::QtSingleApplication
655-
cpptrace::cpptrace
656-
fmt::fmt
657-
antlr4_static
658-
angelscript
659-
qtadvanceddocking-qt6
660-
QHexView
661-
WingCodeEdit
662-
WingPlugin)
648+
Qt6::Network
649+
Qt6::Concurrent
650+
Qt6::PrintSupport
651+
Qt6::Xml
652+
Qt6::GuiPrivate
653+
Qt6::CorePrivate
654+
OpenSSL::SSL
655+
OpenSSL::Crypto
656+
QtSingleApplication::QtSingleApplication
657+
cpptrace::cpptrace
658+
fmt::fmt
659+
antlr4_static
660+
angelscript
661+
qtadvanceddocking-qt6
662+
QHexView
663+
WingCodeEdit
664+
WingPlugin)
663665

664666
if(WINGHEX_USE_FRAMELESS)
665667
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE QWKCore QWKWidgets)
@@ -673,7 +675,7 @@ if(LINUX)
673675
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt6::DBus)
674676
set_target_properties(
675677
${CMAKE_PROJECT_NAME} PROPERTIES BUILD_RPATH "\$ORIGIN" INSTALL_RPATH
676-
"\$ORIGIN")
678+
"\$ORIGIN")
677679
endif()
678680

679681
# emit marco in Qt conflicts with antlr4-cpp
@@ -683,15 +685,15 @@ target_compile_definitions(WingHexExplorer2 PRIVATE QT_USE_QSTRINGBUILDER)
683685

684686
target_include_directories(
685687
${CMAKE_PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty"
686-
"${CMAKE_CURRENT_SOURCE_DIR}/src")
688+
"${CMAKE_CURRENT_SOURCE_DIR}/src")
687689

688690
set_target_properties(
689691
WingHexExplorer2
690692
PROPERTIES ${BUNDLE_ID_OPTION} MACOSX_BUNDLE_BUNDLE_VERSION
691-
${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING
692-
${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE
693-
TRUE WIN32_EXECUTABLE
694-
TRUE)
693+
${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING
694+
${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE
695+
TRUE WIN32_EXECUTABLE
696+
TRUE)
695697

696698
qt_finalize_executable(WingHexExplorer2)
697699

@@ -704,7 +706,7 @@ install(
704706

705707
# Generate the deployment script.
706708
qt6_generate_deploy_app_script(TARGET WingHexExplorer2 OUTPUT_SCRIPT
707-
deploy_script NO_UNSUPPORTED_PLATFORM_ERROR)
709+
deploy_script NO_UNSUPPORTED_PLATFORM_ERROR)
708710

709711
# Call the deployment script on "cmake --install".
710712
install(SCRIPT ${deploy_script})
@@ -714,23 +716,23 @@ add_subdirectory(WingPlugin)
714716
target_compile_options(
715717
WingHexExplorer2
716718
PRIVATE
717-
$<$<AND:$<CONFIG:Release>,$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>>:-g1>
718-
$<$<AND:$<CONFIG:Release>,$<CXX_COMPILER_ID:MSVC>>:/Z7>
719-
$<$<AND:$<CONFIG:Release>,$<CXX_COMPILER_ID:GNU>>:
720-
-ffunction-sections
721-
-fdata-sections
722-
-fvisibility=hidden
723-
-fvisibility-inlines-hidden
724-
-fno-var-tracking
725-
-fno-var-tracking-assignments
726-
>
727-
$<$<AND:$<CONFIG:Release>,$<CXX_COMPILER_ID:Clang>>:
728-
-ffunction-sections
729-
-fdata-sections
730-
-fvisibility=hidden
731-
-fvisibility-inlines-hidden
732-
-fno-var-tracking
733-
>)
719+
$<$<AND:$<CONFIG:Release>,$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>>:-g1>
720+
$<$<AND:$<CONFIG:Release>,$<CXX_COMPILER_ID:MSVC>>:/Z7>
721+
$<$<AND:$<CONFIG:Release>,$<CXX_COMPILER_ID:GNU>>:
722+
-ffunction-sections
723+
-fdata-sections
724+
-fvisibility=hidden
725+
-fvisibility-inlines-hidden
726+
-fno-var-tracking
727+
-fno-var-tracking-assignments
728+
>
729+
$<$<AND:$<CONFIG:Release>,$<CXX_COMPILER_ID:Clang>>:
730+
-ffunction-sections
731+
-fdata-sections
732+
-fvisibility=hidden
733+
-fvisibility-inlines-hidden
734+
-fno-var-tracking
735+
>)
734736

735737
target_link_options(
736738
WingHexExplorer2
@@ -741,6 +743,8 @@ target_link_options(
741743
$<$<AND:$<CONFIG:Release>,$<CXX_COMPILER_ID:GNU>>:-Wl,--gc-sections>
742744
$<$<AND:$<CONFIG:Release>,$<CXX_COMPILER_ID:Clang>>:-Wl,--gc-sections>)
743745

746+
enable_reproducible_paths(WingHexExplorer2)
747+
744748
if(WINGHEX_ANGEL_LSP)
745749
set(NODE_ROOT_SUBDIR "${CMAKE_SOURCE_DIR}/3rdparty/angel-lsp")
746750
set(NODE_SUBDIR "${NODE_ROOT_SUBDIR}/server")
@@ -814,7 +818,7 @@ if(WINGHEX_ANGEL_LSP)
814818
COMMAND ${NPX_EXE} tsc
815819
COMMAND ${ESBUILD_CMD}
816820
COMMAND ${CMAKE_COMMAND} -E echo
817-
"Building JS bundle with esbuild -> ${DIST_JS}"
821+
"Building JS bundle with esbuild -> ${DIST_JS}"
818822
VERBATIM)
819823

820824
if(WIN32)
@@ -823,11 +827,11 @@ if(WINGHEX_ANGEL_LSP)
823827
DEPENDS ${DIST_JS}
824828
WORKING_DIRECTORY ${NODE_SUBDIR}
825829
COMMAND ${CMAKE_COMMAND} -E echo
826-
"[3] packaging with pkg/npm exec/npx"
830+
"[3] packaging with pkg/npm exec/npx"
827831
COMMAND ${PKG_CMD}
828832
COMMAND ${CMAKE_COMMAND} -E echo "[4] Packaging with pkg"
829833
COMMAND ${NODE_EXE} "${NODE_SUBDIR}/modIcon_win.js"
830-
"--basedir=${BUILD_BIN_DIR}"
834+
"--basedir=${BUILD_BIN_DIR}"
831835
COMMAND ${CMAKE_COMMAND} -E echo "[5] Modifying exe icon"
832836
VERBATIM)
833837
else()
@@ -836,7 +840,7 @@ if(WINGHEX_ANGEL_LSP)
836840
DEPENDS ${DIST_JS}
837841
WORKING_DIRECTORY ${NODE_SUBDIR}
838842
COMMAND ${CMAKE_COMMAND} -E echo
839-
"[3] packaging with pkg/npm exec/npx"
843+
"[3] packaging with pkg/npm exec/npx"
840844
COMMAND ${PKG_CMD}
841845
COMMAND ${CMAKE_COMMAND} -E echo "[4] Packaging with pkg"
842846
VERBATIM)

README.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,6 @@
3030
<a href="https://deepwiki.com/Wing-summer/WingHexExplorer2"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
3131
</p>
3232

33-
<p align="center">
34-
<img src="https://github.com/Wing-summer/WingHexExplorer2/actions/workflows/clang-format-check.yml/badge.svg" />
35-
<img src="https://github.com/Wing-summer/WingHexExplorer2/actions/workflows/cmake-format-check.yml/badge.svg" />
36-
</p>
37-
3833
- 开源不易,给个 Star 或者 [捐助](#捐助)
3934

4035
## 代码贡献者
@@ -107,7 +102,7 @@
107102

108103
&emsp;&emsp;如果你想将本软件的代码用于闭源的商业代码,想要解除`GPL`系列的必须开源的限制,请必须亲自咨询我,商讨商业授权相关事宜。
109104

110-
&emsp;&emsp;对于插件开发相关的,对应的开源协议就不一样了。只针对本仓库下的`WingPlugin`的代码遵守`BSD 3-Clause`协议,以允许闭源商业开发。对于本仓库下的`TestPlugin`/`TestHexExt`的代码(除`TranslationUtils.cmake`这一个文件遵守`BSD 3-Clause`)遵守`MIT`协议。
105+
&emsp;&emsp;对于插件开发相关的,对应的开源协议就不一样了。只针对本仓库下的`WingPlugin`的代码遵守`BSD 3-Clause`协议,以允许闭源商业开发。对于本仓库下的`TestPlugin`/`TestHexExt`的代码遵守`MIT`协议。
111106

112107
### 使用声明
113108

README_en.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,6 @@
3030
<a href="https://deepwiki.com/Wing-summer/WingHexExplorer2"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
3131
</p>
3232

33-
<p align="center">
34-
<img src="https://github.com/Wing-summer/WingHexExplorer2/actions/workflows/clang-format-check.yml/badge.svg" />
35-
<img src="https://github.com/Wing-summer/WingHexExplorer2/actions/workflows/cmake-format-check.yml/badge.svg" />
36-
</p>
37-
3833
- Not easy to open source, please Star or [Donate](#donate)
3934

4035
## Contributors
@@ -107,7 +102,7 @@ This software complies with the `AGPL-3.0` agreement. Please do not use it for p
107102

108103
If you want to use the code of this software for closed-source commercial code and want to lift the restriction of the `GPL` series that it must be open source, please consult me ​​in person to discuss commercial licensing matters.
109104

110-
For plugin development, the corresponding open source agreements are different. Only the code of `WingPlugin` in this repository comply with the `BSD 3-Clause` agreement to allow closed-source commercial development. The code of `TestPlugin`/`TestHexExt` in this repository (except the file `TranslationUtils.cmake` which complies with `BSD 3-Clause`) complies with the `MIT` agreement.
105+
For plugin development, the corresponding open source agreements are different. Only the code of `WingPlugin` in this repository comply with the `BSD 3-Clause` agreement to allow closed-source commercial development. The code of `TestPlugin`/`TestHexExt` in this repository complies with the `MIT` agreement.
111106

112107
### Usage Statement
113108

src/WingPlugin.cmake

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,28 @@ function(ADD_PLUGIN_TRANSLATIONS_RESOURCE res_file target)
5555
PARENT_SCOPE)
5656
endfunction()
5757

58+
function(enable_reproducible_paths target)
59+
set(_non_debug $<NOT:$<CONFIG:Debug>>)
60+
61+
if(MSVC)
62+
target_compile_options(
63+
${target} PRIVATE $<${_non_debug}: /pathmap:${CMAKE_SOURCE_DIR}=.
64+
/pathmap:${CMAKE_BINARY_DIR}=. >)
65+
66+
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
67+
target_compile_options(
68+
${target}
69+
PRIVATE $<${_non_debug}:
70+
-ffile-prefix-map=${CMAKE_SOURCE_DIR}=.
71+
-fmacro-prefix-map=${CMAKE_SOURCE_DIR}=.
72+
-fdebug-prefix-map=${CMAKE_SOURCE_DIR}=.
73+
-ffile-prefix-map=${CMAKE_BINARY_DIR}=.
74+
-fmacro-prefix-map=${CMAKE_BINARY_DIR}=.
75+
-fdebug-prefix-map=${CMAKE_BINARY_DIR}=.
76+
>)
77+
endif()
78+
endfunction()
79+
5880
function(_winghex_to_bool input_var default_value output_var)
5981
if(DEFINED ${input_var})
6082
set(_value "${${input_var}}")
@@ -262,6 +284,8 @@ function(add_wing_plugin)
262284
"$<$<AND:$<CONFIG:Release>,$<CXX_COMPILER_ID:GNU>>:-Wl,--gc-sections>"
263285
"$<$<AND:$<CONFIG:Release>,$<CXX_COMPILER_ID:Clang>>:-Wl,--gc-sections>"
264286
)
287+
288+
enable_reproducible_paths(${ARG_NAME})
265289
endif()
266290

267291
# --- Link libraries ---

0 commit comments

Comments
 (0)