From 62aaba7556bd443b6023165bdf3096d35bd2b178 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sat, 20 Dec 2025 11:08:35 +0100 Subject: [PATCH] build: Enable asserts in release mode --- CMakeLists.txt | 1 + cmake/tools.cmake | 6 ++++++ src/config/CMakeLists.txt | 1 + src/core/CMakeLists.txt | 2 +- src/gui/CMakeLists.txt | 1 + src/input/CMakeLists.txt | 1 + src/misc/CMakeLists.txt | 1 + src/plugins/simulator/emulated/CMakeLists.txt | 1 + src/plugins/simulator/emulatedconfig/CMakeLists.txt | 1 + src/plugins/simulator/flightgear/CMakeLists.txt | 1 + src/plugins/simulator/flightgearconfig/CMakeLists.txt | 1 + src/plugins/simulator/fs9/CMakeLists.txt | 1 + src/plugins/simulator/fscommon/CMakeLists.txt | 1 + src/plugins/simulator/fsx/CMakeLists.txt | 1 + src/plugins/simulator/fsxcommon/CMakeLists.txt | 1 + src/plugins/simulator/fsxconfig/CMakeLists.txt | 1 + src/plugins/simulator/msfs/CMakeLists.txt | 1 + src/plugins/simulator/msfs2024/CMakeLists.txt | 1 + src/plugins/simulator/p3d/CMakeLists.txt | 1 + src/plugins/simulator/p3dconfig/CMakeLists.txt | 1 + src/plugins/simulator/plugincommon/CMakeLists.txt | 1 + src/plugins/simulator/xplane/CMakeLists.txt | 2 ++ src/plugins/simulator/xplaneconfig/CMakeLists.txt | 2 +- src/sound/CMakeLists.txt | 1 + src/swiftcore/CMakeLists.txt | 1 + src/swiftdata/CMakeLists.txt | 1 + src/swiftguistandard/CMakeLists.txt | 2 ++ src/swiftlauncher/CMakeLists.txt | 2 +- 28 files changed, 35 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cc8f841ac..9ed2a03a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,6 +60,7 @@ option(SWIFT_ONLY_XSWIFTBUS_WORKAROUND "Only build xswiftbus (useful when compil option(SWIFT_USE_CRASHPAD "Use crashpad" OFF) option(SWIFT_USE_PCH "Use precompiled headers" ON) +option(SWIFT_FORCE_ASSERTS "Force Qt asserts also in release mode" ON) # Shortcut to only build xswiftbus diff --git a/cmake/tools.cmake b/cmake/tools.cmake index c1d64e59f..763cf1c72 100644 --- a/cmake/tools.cmake +++ b/cmake/tools.cmake @@ -48,3 +48,9 @@ function(configure_target_platform) endif() endif() endfunction() + +macro(force_asserts TARGET) + if(SWIFT_FORCE_ASSERTS) + target_compile_definitions(${TARGET} PRIVATE QT_FORCE_ASSERTS) + endif() +endmacro() diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt index 8b0a44d47..8e6d6bd8b 100644 --- a/src/config/CMakeLists.txt +++ b/src/config/CMakeLists.txt @@ -12,6 +12,7 @@ add_library(config STATIC ${CMAKE_CURRENT_BINARY_DIR}/buildconfig_gen.cpp ) +force_asserts(config) target_link_libraries(config PUBLIC Qt::Core) target_include_directories(config diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index af8de4e27..05d28b4c0 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -245,7 +245,7 @@ add_library(core SHARED webreaderflags.h ) - +force_asserts(core) target_include_directories(core PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(core diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 3152aafe9..d1b87b7bb 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -868,6 +868,7 @@ add_custom_command(TARGET gui COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different share ${PROJECT_BINARY_DIR}/out/share WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) +force_asserts(gui) target_include_directories(gui PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(gui diff --git a/src/input/CMakeLists.txt b/src/input/CMakeLists.txt index ebf3c6790..fb4681487 100644 --- a/src/input/CMakeLists.txt +++ b/src/input/CMakeLists.txt @@ -37,6 +37,7 @@ else() ) endif() +force_asserts(input) target_include_directories(input PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(input diff --git a/src/misc/CMakeLists.txt b/src/misc/CMakeLists.txt index 6d0e075a9..ab958d104 100644 --- a/src/misc/CMakeLists.txt +++ b/src/misc/CMakeLists.txt @@ -687,6 +687,7 @@ if(APPLE) ) endif() +force_asserts(misc) target_include_directories(misc PUBLIC ${PROJECT_SOURCE_DIR}/src) target_compile_definitions(misc PRIVATE BUILD_SWIFT_MISC_LIB) diff --git a/src/plugins/simulator/emulated/CMakeLists.txt b/src/plugins/simulator/emulated/CMakeLists.txt index e6b4e2d93..92af50595 100644 --- a/src/plugins/simulator/emulated/CMakeLists.txt +++ b/src/plugins/simulator/emulated/CMakeLists.txt @@ -15,6 +15,7 @@ add_library(simulatoremulated SHARED set_target_properties(simulatoremulated PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) set_target_properties(simulatoremulated PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) +force_asserts(simulatoremulated) target_include_directories(simulatoremulated PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(simulatoremulated diff --git a/src/plugins/simulator/emulatedconfig/CMakeLists.txt b/src/plugins/simulator/emulatedconfig/CMakeLists.txt index aac96cb41..681b73d49 100644 --- a/src/plugins/simulator/emulatedconfig/CMakeLists.txt +++ b/src/plugins/simulator/emulatedconfig/CMakeLists.txt @@ -13,6 +13,7 @@ add_library(simulatoremulatedconfig SHARED set_target_properties(simulatoremulatedconfig PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) set_target_properties(simulatoremulatedconfig PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) +force_asserts(simulatoremulatedconfig) target_include_directories(simulatoremulatedconfig PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(simulatoremulatedconfig diff --git a/src/plugins/simulator/flightgear/CMakeLists.txt b/src/plugins/simulator/flightgear/CMakeLists.txt index 5735b283c..09c2ced5c 100644 --- a/src/plugins/simulator/flightgear/CMakeLists.txt +++ b/src/plugins/simulator/flightgear/CMakeLists.txt @@ -15,6 +15,7 @@ add_library(simulatorflightgear SHARED set_target_properties(simulatorflightgear PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) set_target_properties(simulatorflightgear PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) +force_asserts(simulatorflightgear) target_include_directories(simulatorflightgear PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(simulatorflightgear diff --git a/src/plugins/simulator/flightgearconfig/CMakeLists.txt b/src/plugins/simulator/flightgearconfig/CMakeLists.txt index 6eac9a8dc..8223a6a96 100644 --- a/src/plugins/simulator/flightgearconfig/CMakeLists.txt +++ b/src/plugins/simulator/flightgearconfig/CMakeLists.txt @@ -12,6 +12,7 @@ add_library(simulatorflightgearconfig SHARED set_target_properties(simulatorflightgearconfig PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) set_target_properties(simulatorflightgearconfig PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) +force_asserts(simulatorflightgearconfig) target_include_directories(simulatorflightgearconfig PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(simulatorflightgearconfig diff --git a/src/plugins/simulator/fs9/CMakeLists.txt b/src/plugins/simulator/fs9/CMakeLists.txt index 3f51bb7a0..461115b90 100644 --- a/src/plugins/simulator/fs9/CMakeLists.txt +++ b/src/plugins/simulator/fs9/CMakeLists.txt @@ -30,6 +30,7 @@ add_library(simulatorfs9 SHARED set_target_properties(simulatorfs9 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) set_target_properties(simulatorfs9 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) +force_asserts(simulatorfs9) target_include_directories(simulatorfs9 PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(simulatorfs9 diff --git a/src/plugins/simulator/fscommon/CMakeLists.txt b/src/plugins/simulator/fscommon/CMakeLists.txt index 7dbb3fcdc..d2778d30b 100644 --- a/src/plugins/simulator/fscommon/CMakeLists.txt +++ b/src/plugins/simulator/fscommon/CMakeLists.txt @@ -11,6 +11,7 @@ add_library(fscommon SHARED fscommonexport.h ) +force_asserts(fscommon) target_compile_definitions(fscommon PRIVATE BUILD_FSCOMMON_LIB) target_link_libraries(fscommon diff --git a/src/plugins/simulator/fsx/CMakeLists.txt b/src/plugins/simulator/fsx/CMakeLists.txt index d1bee196b..6126e3c63 100644 --- a/src/plugins/simulator/fsx/CMakeLists.txt +++ b/src/plugins/simulator/fsx/CMakeLists.txt @@ -12,6 +12,7 @@ add_library(simulatorfsx SHARED set_target_properties(simulatorfsx PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) set_target_properties(simulatorfsx PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) +force_asserts(simulatorfsx) target_include_directories(simulatorfsx PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(simulatorfsx diff --git a/src/plugins/simulator/fsxcommon/CMakeLists.txt b/src/plugins/simulator/fsxcommon/CMakeLists.txt index fc51e82cf..28907d4b2 100644 --- a/src/plugins/simulator/fsxcommon/CMakeLists.txt +++ b/src/plugins/simulator/fsxcommon/CMakeLists.txt @@ -43,6 +43,7 @@ target_link_libraries(fsxcommon config ) +force_asserts(fsxcommon) target_compile_definitions(fsxcommon PRIVATE BUILD_FSXCOMMON_LIB) install(TARGETS fsxcommon diff --git a/src/plugins/simulator/fsxconfig/CMakeLists.txt b/src/plugins/simulator/fsxconfig/CMakeLists.txt index 25966aa58..14d8bfd5e 100644 --- a/src/plugins/simulator/fsxconfig/CMakeLists.txt +++ b/src/plugins/simulator/fsxconfig/CMakeLists.txt @@ -10,6 +10,7 @@ add_library(simulatorfsxconfig SHARED set_target_properties(simulatorfsxconfig PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) set_target_properties(simulatorfsxconfig PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) +force_asserts(simulatorfsxconfig) target_include_directories(simulatorfsxconfig PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(simulatorfsxconfig diff --git a/src/plugins/simulator/msfs/CMakeLists.txt b/src/plugins/simulator/msfs/CMakeLists.txt index 7d45c476f..0efecbe39 100644 --- a/src/plugins/simulator/msfs/CMakeLists.txt +++ b/src/plugins/simulator/msfs/CMakeLists.txt @@ -12,6 +12,7 @@ add_library(simulatormsfs SHARED set_target_properties(simulatormsfs PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) set_target_properties(simulatormsfs PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) +force_asserts(simulatormsfs) target_include_directories(simulatormsfs PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(simulatormsfs diff --git a/src/plugins/simulator/msfs2024/CMakeLists.txt b/src/plugins/simulator/msfs2024/CMakeLists.txt index d04f63955..99d49f8f9 100644 --- a/src/plugins/simulator/msfs2024/CMakeLists.txt +++ b/src/plugins/simulator/msfs2024/CMakeLists.txt @@ -12,6 +12,7 @@ add_library(simulatormsfs2024 SHARED set_target_properties(simulatormsfs2024 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) set_target_properties(simulatormsfs2024 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) +force_asserts(simulatormsfs2024) target_include_directories(simulatormsfs2024 PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(simulatormsfs2024 diff --git a/src/plugins/simulator/p3d/CMakeLists.txt b/src/plugins/simulator/p3d/CMakeLists.txt index 4c2995147..027a8a6e2 100644 --- a/src/plugins/simulator/p3d/CMakeLists.txt +++ b/src/plugins/simulator/p3d/CMakeLists.txt @@ -12,6 +12,7 @@ add_library(simulatorp3d SHARED set_target_properties(simulatorp3d PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) set_target_properties(simulatorp3d PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) +force_asserts(simulatorp3d) target_include_directories(simulatorp3d PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(simulatorp3d diff --git a/src/plugins/simulator/p3dconfig/CMakeLists.txt b/src/plugins/simulator/p3dconfig/CMakeLists.txt index 8de0af291..4a3aa5945 100644 --- a/src/plugins/simulator/p3dconfig/CMakeLists.txt +++ b/src/plugins/simulator/p3dconfig/CMakeLists.txt @@ -10,6 +10,7 @@ add_library(simulatorp3dconfig SHARED set_target_properties(simulatorp3dconfig PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) set_target_properties(simulatorp3dconfig PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) +force_asserts(simulatorp3dconfig) target_include_directories(simulatorp3dconfig PUBLIC ${PROJECT_SOURCE_DIR}/src) target_link_libraries(simulatorp3dconfig diff --git a/src/plugins/simulator/plugincommon/CMakeLists.txt b/src/plugins/simulator/plugincommon/CMakeLists.txt index d3332d25a..71cc2d0fb 100644 --- a/src/plugins/simulator/plugincommon/CMakeLists.txt +++ b/src/plugins/simulator/plugincommon/CMakeLists.txt @@ -12,6 +12,7 @@ target_include_directories(plugincommon PUBLIC ${PROJECT_SOURCE_DIR}/src) set_target_properties(plugincommon PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin) set_target_properties(plugincommon PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin) +force_asserts(plugincommon) target_link_libraries(plugincommon PUBLIC Qt::Core diff --git a/src/plugins/simulator/xplane/CMakeLists.txt b/src/plugins/simulator/xplane/CMakeLists.txt index a8e39d7e8..5cd85f5d4 100644 --- a/src/plugins/simulator/xplane/CMakeLists.txt +++ b/src/plugins/simulator/xplane/CMakeLists.txt @@ -16,6 +16,8 @@ add_library(simulatorxplane SHARED include(${PROJECT_SOURCE_DIR}/cmake/xswiftbus_tools.cmake) get_xswiftbus_commit_id() + +force_asserts(simulatorxplane) target_compile_definitions(simulatorxplane PRIVATE XSWIFTBUS_COMMIT="${XSWIFTBUS_COMMIT_ID}") set_target_properties(simulatorxplane PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) diff --git a/src/plugins/simulator/xplaneconfig/CMakeLists.txt b/src/plugins/simulator/xplaneconfig/CMakeLists.txt index 792a5818e..f5e53c8bc 100644 --- a/src/plugins/simulator/xplaneconfig/CMakeLists.txt +++ b/src/plugins/simulator/xplaneconfig/CMakeLists.txt @@ -13,7 +13,7 @@ set_target_properties(simulatorxplaneconfig PROPERTIES LIBRARY_OUTPUT_DIRECTORY set_target_properties(simulatorxplaneconfig PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/bin/plugins/simulator) target_include_directories(simulatorxplaneconfig PUBLIC ${PROJECT_SOURCE_DIR}/src) - +force_asserts(simulatorxplaneconfig) target_link_libraries(simulatorxplaneconfig PUBLIC gui diff --git a/src/sound/CMakeLists.txt b/src/sound/CMakeLists.txt index faef42193..fdd8daa2c 100644 --- a/src/sound/CMakeLists.txt +++ b/src/sound/CMakeLists.txt @@ -53,6 +53,7 @@ add_custom_command(TARGET sound WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_definitions(sound PRIVATE BUILD_SWIFT_SOUND_LIB) +force_asserts(sound) target_include_directories(sound PUBLIC ${PROJECT_SOURCE_DIR}/src) diff --git a/src/swiftcore/CMakeLists.txt b/src/swiftcore/CMakeLists.txt index 8460ab7a6..0dbf60af6 100644 --- a/src/swiftcore/CMakeLists.txt +++ b/src/swiftcore/CMakeLists.txt @@ -13,6 +13,7 @@ if(WIN32) endif() target_include_directories(swiftcore PUBLIC ${PROJECT_SOURCE_DIR}/src) +force_asserts(swiftcore) target_link_libraries(swiftcore PUBLIC diff --git a/src/swiftdata/CMakeLists.txt b/src/swiftdata/CMakeLists.txt index 22ccfd48f..b415f1a8b 100644 --- a/src/swiftdata/CMakeLists.txt +++ b/src/swiftdata/CMakeLists.txt @@ -16,6 +16,7 @@ if(WIN32) endif() target_include_directories(swiftdata PUBLIC ${PROJECT_SOURCE_DIR}/src) +force_asserts(swiftdata) target_link_libraries(swiftdata PUBLIC diff --git a/src/swiftguistandard/CMakeLists.txt b/src/swiftguistandard/CMakeLists.txt index 8c4aeb8eb..f8f0fa745 100644 --- a/src/swiftguistandard/CMakeLists.txt +++ b/src/swiftguistandard/CMakeLists.txt @@ -28,6 +28,8 @@ target_link_libraries(swiftguistd sound ) +force_asserts(swiftguistd) + if(APPLE) target_link_libraries(swiftguistd PUBLIC input) diff --git a/src/swiftlauncher/CMakeLists.txt b/src/swiftlauncher/CMakeLists.txt index e21a7170d..52f12e358 100644 --- a/src/swiftlauncher/CMakeLists.txt +++ b/src/swiftlauncher/CMakeLists.txt @@ -14,7 +14,7 @@ if(WIN32) endif() target_include_directories(swiftlauncher PUBLIC ${PROJECT_SOURCE_DIR}/src) - +force_asserts(swiftlauncher) target_link_libraries(swiftlauncher PUBLIC Qt::Core