@@ -18,10 +18,12 @@ endif()
1818
1919set (CMAKE_CXX_STANDARD_REQUIRED ON )
2020set (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
2325find_package (Qt6 REQUIRED COMPONENTS Widgets Network Concurrent PrintSupport
24- Xml LinguistTools )
26+ Xml LinguistTools )
2527
2628if (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)
4143option (WINGHEX_ANGEL_LSP "Build LS for AngelScript" ON )
4244option (WINGHEX_BUILD_TEST "Build test data generator for WingCStruct" OFF )
4345option (WINGHEX_OPTIMIZE_FOR_NATIVE
44- "Build with native optimization(less portable)" OFF )
46+ "Build with native optimization(less portable)" OFF )
4547
4648add_definitions (-DAS_NO_THREADS )
4749add_definitions (-DWING_SYSTEM_NAME= "${CMAKE_SYSTEM_NAME } " )
@@ -75,7 +77,7 @@ if(WINGHEX_OPTIMIZE_FOR_NATIVE)
7577endif ()
7678
7779add_definitions (-DWINGHEX_VERSION= "${PROJECT_VERSION } "
78- -DAPP_ORG= "WingCloudStudio" -DAPP_NAME= "${PROJECT_NAME } " )
80+ -DAPP_ORG= "WingCloudStudio" -DAPP_NAME= "${PROJECT_NAME } " )
7981file (WRITE "${CMAKE_CURRENT_BINARY_DIR } /WINGHEX_VERSION" ${PROJECT_VERSION } )
8082file (WRITE "${CMAKE_CURRENT_BINARY_DIR } /QT_VERSION" "6" )
8183
@@ -174,7 +176,7 @@ set(ANGELSCRIPTEXP_SRC
174176 src/grammar/AngelscriptExprParser/AngelscriptExprParserVisitor.h)
175177
176178set (ANTLR4_GRAMMAR ${NUMCAL_GRAMMAR} ${CSTRUCT_GRAMMAR} ${ASCONSOLE_GRAMMAR}
177- ${SNIPPET_GRAMMAR} ${ANGELSCRIPTEXP_SRC} )
179+ ${SNIPPET_GRAMMAR} ${ANGELSCRIPTEXP_SRC} )
178180
179181set (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)
439441else ()
440442 set (WIDGET_FRAME_SRC)
441443endif ()
@@ -541,7 +543,7 @@ set(TRANSLATION_PATH
541543 ${CMAKE_CURRENT_SOURCE_DIR } /src)
542544
543545qt_create_translation (QM_FILES ${TRANSLATION_PATH} ${TS_FILES} OPTIONS
544- -no-obsolete )
546+ -no-obsolete )
545547
546548set (LANG_SRC "${CMAKE_CURRENT_SOURCE_DIR } /lang" )
547549set (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
616618add_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
623625if (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 )
631633else ()
@@ -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 )
641643endif ()
642644
643645target_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
664666if (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" )
677679endif ()
678680
679681# emit marco in Qt conflicts with antlr4-cpp
@@ -683,15 +685,15 @@ target_compile_definitions(WingHexExplorer2 PRIVATE QT_USE_QSTRINGBUILDER)
683685
684686target_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
688690set_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
696698qt_finalize_executable (WingHexExplorer2 )
697699
@@ -704,7 +706,7 @@ install(
704706
705707# Generate the deployment script.
706708qt6_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".
710712install (SCRIPT ${deploy_script} )
@@ -714,23 +716,23 @@ add_subdirectory(WingPlugin)
714716target_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
735737target_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+
744748if (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 )
0 commit comments