From 13f7640a856b57011e02d4eafd64a6d180e81000 Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Wed, 17 Jan 2024 13:19:36 -0800 Subject: [PATCH] CMake: Split Library and Plugin types into PROBE and UI; support BUILD_SHARED_LIBS User's choice of what's to be built is disambiguated from how it's built. Both static and shared builds of both library and plugins is now supported. --- 3rdparty/kde/CMakeLists.txt | 2 +- 3rdparty/kuserfeedback/CMakeLists.txt | 2 +- CMakeLists.txt | 49 +++++++++++--------- GammaRayConfig.cmake.in | 6 ++- client/CMakeLists.txt | 4 +- cmake/GammaRayMacros.cmake | 11 ++++- common/CMakeLists.txt | 6 +-- core/CMakeLists.txt | 2 +- launcher/core/CMakeLists.txt | 4 +- launcher/ui/CMakeLists.txt | 4 +- plugins/actioninspector/CMakeLists.txt | 4 ++ plugins/bluetooth/CMakeLists.txt | 2 + plugins/codecbrowser/CMakeLists.txt | 4 ++ plugins/eventmonitor/CMakeLists.txt | 4 ++ plugins/fontbrowser/CMakeLists.txt | 4 ++ plugins/guisupport/CMakeLists.txt | 4 ++ plugins/kjobtracker/CMakeLists.txt | 4 ++ plugins/localeinspector/CMakeLists.txt | 4 ++ plugins/mimetypes/CMakeLists.txt | 4 ++ plugins/modelinspector/CMakeLists.txt | 4 ++ plugins/network/CMakeLists.txt | 4 ++ plugins/openglsupport/CMakeLists.txt | 2 + plugins/positioning/CMakeLists.txt | 4 ++ plugins/qmlsupport/CMakeLists.txt | 4 ++ plugins/qt3dinspector/CMakeLists.txt | 4 ++ plugins/qtivi/CMakeLists.txt | 4 ++ plugins/quickinspector/CMakeLists.txt | 6 ++- plugins/quickwidgetsupport/CMakeLists.txt | 2 + plugins/sceneinspector/CMakeLists.txt | 4 ++ plugins/scriptenginedebugger/CMakeLists.txt | 4 ++ plugins/signalmonitor/CMakeLists.txt | 6 ++- plugins/statemachineviewer/CMakeLists.txt | 4 ++ plugins/styleinspector/CMakeLists.txt | 4 ++ plugins/sysinfo/CMakeLists.txt | 4 ++ plugins/textdocumentinspector/CMakeLists.txt | 4 ++ plugins/timertop/CMakeLists.txt | 4 ++ plugins/translatorinspector/CMakeLists.txt | 4 ++ plugins/webinspector/CMakeLists.txt | 4 ++ plugins/widgetinspector/CMakeLists.txt | 4 ++ plugins/wlcompositorinspector/CMakeLists.txt | 4 ++ probe/CMakeLists.txt | 2 +- ui/CMakeLists.txt | 22 ++++----- 42 files changed, 181 insertions(+), 51 deletions(-) diff --git a/3rdparty/kde/CMakeLists.txt b/3rdparty/kde/CMakeLists.txt index bddd37b934..938a7d25e6 100644 --- a/3rdparty/kde/CMakeLists.txt +++ b/3rdparty/kde/CMakeLists.txt @@ -5,7 +5,7 @@ set(gammaray_kitemmodels_srcs kitemmodels_debug.cpp ) -add_library(gammaray_kitemmodels SHARED ${gammaray_kitemmodels_srcs}) +add_library(gammaray_kitemmodels ${GAMMARAY_PROBE_LIBRARY_TYPE} ${gammaray_kitemmodels_srcs}) target_link_libraries(gammaray_kitemmodels PUBLIC Qt::Core) diff --git a/3rdparty/kuserfeedback/CMakeLists.txt b/3rdparty/kuserfeedback/CMakeLists.txt index c11f26e36a..0dd41e7534 100644 --- a/3rdparty/kuserfeedback/CMakeLists.txt +++ b/3rdparty/kuserfeedback/CMakeLists.txt @@ -25,7 +25,7 @@ list(APPEND gammaray_userfeedback_srcs widgets/auditlogbrowserdialog.cpp ) -add_library(gammaray_kuserfeedback SHARED ${gammaray_userfeedback_srcs}) +add_library(gammaray_kuserfeedback ${GAMMARAY_UI_LIBRARY_TYPE} ${gammaray_userfeedback_srcs}) # Disable warnings for generated stuff if(MSVC) set_source_files_properties(common/surveytargetexpressionlexer.cpp PROPERTIES COMPILE_FLAGS "/wd4018 /wd4996") diff --git a/CMakeLists.txt b/CMakeLists.txt index eb83e4391e..3555a5780f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -222,31 +222,36 @@ message(STATUS "Building GammaRay ${GAMMARAY_VERSION_STRING} in ${CMAKE_BUILD_TY # # Build options # -set(GAMMARAY_BUILD_UI_DEFAULT ON) -if(QNXNTO OR ANDROID) - set(GAMMARAY_BUILD_UI_DEFAULT OFF) +option(BUILD_SHARED_LIBS "Build GammaRay statically or dynamically" ON) + +set(GAMMARAY_STATIC_PROBE_DEFAULT OFF) +if(NOT BUILD_SHARED_LIBS) + set(GAMMARAY_STATIC_PROBE_DEFAULT ON) endif() +gammaray_option( + GAMMARAY_STATIC_PROBE "Build the probe as static library for compile-time injection." + ${GAMMARAY_STATIC_PROBE_DEFAULT} +) gammaray_option( GAMMARAY_PROBE_ONLY_BUILD "Build only an additional probe configuration for an already existing launcher." OFF ) - gammaray_option(GAMMARAY_CLIENT_ONLY_BUILD "Build the client part only." OFF) -if(GAMMARAY_CLIENT_ONLY_BUILD) - set(GAMMARAY_BUILD_UI_DEFAULT ON) +if(GAMMARAY_PROBE_ONLY_BUILD AND GAMMARAY_CLIENT_ONLY_BUILD) + message(FATAL_ERROR "You can only use one of the *ONLY* option.") endif() -if(GAMMARAY_PROBE_ONLY_BUILD) +set(GAMMARAY_BUILD_UI_DEFAULT ON) +if(GAMMARAY_CLIENT_ONLY_BUILD) + set(GAMMARAY_BUILD_UI_DEFAULT ON) +elseif(GAMMARAY_PROBE_ONLY_BUILD) + set(GAMMARAY_BUILD_UI_DEFAULT OFF) +elseif(QNXNTO OR ANDROID) set(GAMMARAY_BUILD_UI_DEFAULT OFF) endif() - gammaray_option(GAMMARAY_BUILD_UI "Build the GammaRay client and in-process UI." ${GAMMARAY_BUILD_UI_DEFAULT}) -if(GAMMARAY_PROBE_ONLY_BUILD AND GAMMARAY_CLIENT_ONLY_BUILD) - message(FATAL_ERROR "You can only use one of the *ONLY* option.") -endif() - gammaray_option(GAMMARAY_INSTALL_QT_LAYOUT "Install into Qt directory layout." OFF) gammaray_option(GAMMARAY_MULTI_BUILD "Build multiple applicable probe configurations." ON) gammaray_option(GAMMARAY_BUILD_CLI_INJECTOR "Build command line injector on Windows." ON) @@ -258,7 +263,6 @@ if(GAMMARAY_PROBE_ONLY_BUILD OR CMAKE_CROSSCOMPILING) set(GAMMARAY_DISABLE_FEEDBACK_DEFAULT ON) endif() gammaray_option(GAMMARAY_BUILD_DOCS "Build GammaRay documentation." ${GAMMARAY_BUILD_DOCS_DEFAULT}) -gammaray_option(GAMMARAY_STATIC_PROBE "Build the probe as static library for compile-time injection." OFF) gammaray_option(GAMMARAY_ENFORCE_QT_ASSERTS "Force QT_ASSERT in all builds." OFF) @@ -267,15 +271,18 @@ gammaray_option(GAMMARAY_DISABLE_FEEDBACK "Disable user feedback support." ${GAM # # Static probe setup # -if(GAMMARAY_STATIC_PROBE) - set(GAMMARAY_BUILD_UI OFF) - set(GAMMARAY_PROBE_ONLY_BUILD ON) +set(GAMMARAY_UI_LIBRARY_TYPE SHARED) +set(GAMMARAY_UI_PLUGIN_TYPE MODULE) +if(NOT BUILD_SHARED_LIBS) + set(GAMMARAY_UI_LIBRARY_TYPE STATIC) + set(GAMMARAY_UI_PLUGIN_TYPE STATIC) +endif() - set(GAMMARAY_LIBRARY_TYPE STATIC) - set(GAMMARAY_PLUGIN_TYPE STATIC) -else() - set(GAMMARAY_LIBRARY_TYPE SHARED) - set(GAMMARAY_PLUGIN_TYPE MODULE) +set(GAMMARAY_PROBE_LIBRARY_TYPE ${GAMMARAY_UI_LIBRARY_TYPE}) +set(GAMMARAY_PROBE_PLUGIN_TYPE ${GAMMARAY_UI_PLUGIN_TYPE}) +if(GAMMARAY_STATIC_PROBE) + set(GAMMARAY_PROBE_LIBRARY_TYPE STATIC) + set(GAMMARAY_PROBE_PLUGIN_TYPE STATIC) endif() gammaray_option(GAMMARAY_USE_PCH "Enable Precompiled Headers support" OFF) diff --git a/GammaRayConfig.cmake.in b/GammaRayConfig.cmake.in index 00b8e2888c..f16f027a32 100644 --- a/GammaRayConfig.cmake.in +++ b/GammaRayConfig.cmake.in @@ -24,8 +24,10 @@ set(GAMMARAY_BUILD_UI @GAMMARAY_BUILD_UI@) set(GAMMARAY_PROBE_ONLY_BUILD @GAMMARAY_PROBE_ONLY_BUILD@) set(GAMMARAY_STATIC_PROBE @GAMMARAY_STATIC_PROBE@) -set(GAMMARAY_LIBRARY_TYPE @GAMMARAY_LIBRARY_TYPE@) -set(GAMMARAY_PLUGIN_TYPE @GAMMARAY_PLUGIN_TYPE@) +set(GAMMARAY_UI_LIBRARY_TYPE @GAMMARAY_UI_LIBRARY_TYPE@) +set(GAMMARAY_UI_PLUGIN_TYPE @GAMMARAY_UI_PLUGIN_TYPE@) +set(GAMMARAY_PROBE_LIBRARY_TYPE @GAMMARAY_PROBE_LIBRARY_TYPE@) +set(GAMMARAY_PROBE_PLUGIN_TYPE @GAMMARAY_PROBE_PLUGIN_TYPE@) set(GAMMARAY_INSTALL_QT_LAYOUT @GAMMARAY_INSTALL_QT_LAYOUT@) if(NOT GAMMARAY_OUTPUT_PREFIX) diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 8c516f08b3..ccd6a98206 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -54,8 +54,8 @@ elseif(WIN32) endif() add_library( - gammaray_client SHARED - ${gammaray_clientlib_srcs} + gammaray_client + ${GAMMARAY_UI_LIBRARY_TYPE} ${gammaray_clientlib_srcs} ) generate_export_header(gammaray_client) # cmake-lint: disable=E1120 diff --git a/cmake/GammaRayMacros.cmake b/cmake/GammaRayMacros.cmake index 55f3979529..319f5f6eff 100644 --- a/cmake/GammaRayMacros.cmake +++ b/cmake/GammaRayMacros.cmake @@ -17,7 +17,7 @@ include(CMakeParseArguments) # - SOURCES - the plugin sources # macro(gammaray_add_plugin _target_name) - set(oneValueArgs JSON) + set(oneValueArgs JSON TYPE) set(multiValueArgs SOURCES) cmake_parse_arguments( _gammaray_add_plugin @@ -27,12 +27,19 @@ macro(gammaray_add_plugin _target_name) ${ARGN} ) + set(_type_options UI PROBE) + if(NOT DEFINED _gammaray_add_plugin_TYPE) + set(_gammaray_add_plugin_TYPE PROBE) + elseif(NOT _gammaray_add_plugin_TYPE IN_LIST _type_options) + message(FATAL_ERROR "Plugin type must be either PROBE or UI") + endif() + if(NOT PROBE_PLUGIN_INSTALL_DIR) # HACK for external plugins that don't set PLUGIN_INSTALL_DIR set(PROBE_PLUGIN_INSTALL_DIR ${GAMMARAY_PROBE_PLUGIN_INSTALL_DIR}) endif() set(_build_target_dir "${GAMMARAY_OUTPUT_PREFIX}/${PROBE_PLUGIN_INSTALL_DIR}") - add_library(${_target_name} ${GAMMARAY_PLUGIN_TYPE} ${_gammaray_add_plugin_SOURCES}) + add_library(${_target_name} ${GAMMARAY_${_gammaray_add_plugin_TYPE}_PLUGIN_TYPE} ${_gammaray_add_plugin_SOURCES}) set_target_properties(${_target_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${_build_target_dir}) set_target_properties(${_target_name} PROPERTIES PREFIX "") if(GAMMARAY_STATIC_PROBE) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 8630a103a1..38d4a6ca90 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -23,7 +23,7 @@ configure_file( ) add_library( - gammaray_lz4 STATIC + gammaray_lz4 OBJECT ${CMAKE_SOURCE_DIR}/3rdparty/lz4/lz4.c ) set_target_properties(gammaray_lz4 PROPERTIES POSITION_INDEPENDENT_CODE ON) @@ -80,7 +80,7 @@ set(gammaray_common_srcs add_library( gammaray_common - ${GAMMARAY_LIBRARY_TYPE} ${gammaray_common_srcs} + ${GAMMARAY_PROBE_LIBRARY_TYPE} ${gammaray_common_srcs} ) generate_export_header(gammaray_common) # cmake-lint: disable=E1120 @@ -144,7 +144,7 @@ set(gammaray_common_internal_srcs ) add_library( - gammaray_common_internal STATIC + gammaray_common_internal OBJECT ${gammaray_common_internal_srcs} ) set_target_properties(gammaray_common_internal PROPERTIES POSITION_INDEPENDENT_CODE ON) diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 41840692e4..4254f9809d 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -202,7 +202,7 @@ endif() # core lib add_library( gammaray_core - ${GAMMARAY_LIBRARY_TYPE} ${gammaray_srcs} + ${GAMMARAY_PROBE_LIBRARY_TYPE} ${gammaray_srcs} ) generate_export_header(gammaray_core) target_compile_features(gammaray_core PUBLIC ${GAMMARAY_REQUIRED_CXX_FEATURES}) diff --git a/launcher/core/CMakeLists.txt b/launcher/core/CMakeLists.txt index 5c1178bce2..baed243663 100644 --- a/launcher/core/CMakeLists.txt +++ b/launcher/core/CMakeLists.txt @@ -75,8 +75,8 @@ else() endif() add_library( - gammaray_launcher SHARED - ${gammaray_launcher_shared_srcs} + gammaray_launcher + ${GAMMARAY_UI_LIBRARY_TYPE} ${gammaray_launcher_shared_srcs} ) generate_export_header(gammaray_launcher) # cmake-lint: disable=E1120 diff --git a/launcher/ui/CMakeLists.txt b/launcher/ui/CMakeLists.txt index dcfbed7490..739019a8e4 100644 --- a/launcher/ui/CMakeLists.txt +++ b/launcher/ui/CMakeLists.txt @@ -35,8 +35,8 @@ else() endif() add_library( - gammaray_launcher_ui SHARED - ${gammaray_launcher_ui_srcs} + gammaray_launcher_ui + ${GAMMARAY_UI_LIBRARY_TYPE} ${gammaray_launcher_ui_srcs} ) generate_export_header(gammaray_launcher_ui) # cmake-lint: disable=E1120 diff --git a/plugins/actioninspector/CMakeLists.txt b/plugins/actioninspector/CMakeLists.txt index 456c3f8f42..d7a475719e 100644 --- a/plugins/actioninspector/CMakeLists.txt +++ b/plugins/actioninspector/CMakeLists.txt @@ -24,6 +24,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_actioninspector.json SOURCES ${gammaray_actioninspector_plugin_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_actioninspector_plugin Qt::Gui Qt::Widgets gammaray_core) @@ -41,6 +43,8 @@ if(GAMMARAY_BUILD_UI) gammaray_actioninspector.json SOURCES ${gammaray_actioninspector_ui_plugin_srcs} + TYPE + UI ) target_link_libraries(gammaray_actioninspector_ui_plugin gammaray_ui) diff --git a/plugins/bluetooth/CMakeLists.txt b/plugins/bluetooth/CMakeLists.txt index cde4e994d5..b05207fbc6 100644 --- a/plugins/bluetooth/CMakeLists.txt +++ b/plugins/bluetooth/CMakeLists.txt @@ -16,6 +16,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) SOURCES bluetooth.cpp bluetooth.h + TYPE + PROBE ) target_link_libraries(gammaray_bluetooth gammaray_core Qt::Bluetooth) set_target_properties(gammaray_bluetooth PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) diff --git a/plugins/codecbrowser/CMakeLists.txt b/plugins/codecbrowser/CMakeLists.txt index a7bacb83e6..b5203bb4d6 100644 --- a/plugins/codecbrowser/CMakeLists.txt +++ b/plugins/codecbrowser/CMakeLists.txt @@ -17,6 +17,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_codecbrowser.json SOURCES ${gammaray_codecbrowser_plugin_srcs} + TYPE + PROBE ) set_target_properties(gammaray_codecbrowser_plugin PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) @@ -34,6 +36,8 @@ if(GAMMARAY_BUILD_UI) gammaray_codecbrowser.json SOURCES ${gammaray_codecbrowser_plugin_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_codecbrowser_ui_plugin gammaray_common gammaray_ui) diff --git a/plugins/eventmonitor/CMakeLists.txt b/plugins/eventmonitor/CMakeLists.txt index 747d6b04a0..5a4579d222 100644 --- a/plugins/eventmonitor/CMakeLists.txt +++ b/plugins/eventmonitor/CMakeLists.txt @@ -29,6 +29,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_eventmonitor.json SOURCES ${gammaray_eventmonitor_plugin_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_eventmonitor_plugin Qt::Gui Qt::CorePrivate gammaray_core) @@ -53,6 +55,8 @@ if(GAMMARAY_BUILD_UI) gammaray_eventmonitor.json SOURCES ${gammaray_eventmonitor_ui_plugin_srcs} + TYPE + UI ) target_link_libraries(gammaray_eventmonitor_ui_plugin gammaray_ui) diff --git a/plugins/fontbrowser/CMakeLists.txt b/plugins/fontbrowser/CMakeLists.txt index 845ee8fa94..79572a84bb 100644 --- a/plugins/fontbrowser/CMakeLists.txt +++ b/plugins/fontbrowser/CMakeLists.txt @@ -28,6 +28,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_fontbrowser.json SOURCES ${gammaray_fontbrowser_plugin_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_fontbrowser_plugin gammaray_core) @@ -52,6 +54,8 @@ if(GAMMARAY_BUILD_UI) gammaray_fontbrowser.json SOURCES ${gammaray_fontbrowser_plugin_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_fontbrowser_ui_plugin gammaray_common gammaray_ui) diff --git a/plugins/guisupport/CMakeLists.txt b/plugins/guisupport/CMakeLists.txt index f7b31b34ae..d120800b04 100644 --- a/plugins/guisupport/CMakeLists.txt +++ b/plugins/guisupport/CMakeLists.txt @@ -16,6 +16,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_guisupport.json SOURCES ${gammaray_guisupport_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_guisupport gammaray_core Qt::Gui Qt::GuiPrivate) endif() @@ -31,6 +33,8 @@ if(GAMMARAY_BUILD_UI) gammaray_guisupport.json SOURCES ${gammaray_guisupport_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_guisupport_ui gammaray_ui) endif() diff --git a/plugins/kjobtracker/CMakeLists.txt b/plugins/kjobtracker/CMakeLists.txt index b9bfaab84f..292e54c241 100644 --- a/plugins/kjobtracker/CMakeLists.txt +++ b/plugins/kjobtracker/CMakeLists.txt @@ -27,6 +27,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_kjobtracker.json SOURCES ${gammaray_kjob_plugin_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_kjobtracker_plugin gammaray_core KF${QtCore_VERSION_MAJOR}::CoreAddons Qt::Gui) @@ -43,6 +45,8 @@ if(GAMMARAY_BUILD_UI) gammaray_kjobtracker.json SOURCES ${gammaray_kjob_ui_plugin_srcs} + TYPE + UI ) target_link_libraries(gammaray_kjobtracker_ui_plugin gammaray_ui) diff --git a/plugins/localeinspector/CMakeLists.txt b/plugins/localeinspector/CMakeLists.txt index c4b8554fe1..5c038c7577 100644 --- a/plugins/localeinspector/CMakeLists.txt +++ b/plugins/localeinspector/CMakeLists.txt @@ -34,6 +34,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_localeinspector.json SOURCES ${gammaray_localeinspector_plugin_srcs} + TYPE + PROBE ) set_target_properties(gammaray_localeinspector_plugin PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) @@ -61,6 +63,8 @@ if(GAMMARAY_BUILD_UI) gammaray_localeinspector.json SOURCES ${gammaray_localeinspector_plugin_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_localeinspector_ui_plugin gammaray_ui) diff --git a/plugins/mimetypes/CMakeLists.txt b/plugins/mimetypes/CMakeLists.txt index cfc820f008..165e4fff00 100644 --- a/plugins/mimetypes/CMakeLists.txt +++ b/plugins/mimetypes/CMakeLists.txt @@ -16,6 +16,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_mimetypes.json SOURCES ${gammaray_mimetypes_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_mimetypes gammaray_core Qt::Gui gammaray_kitemmodels) endif() @@ -29,6 +31,8 @@ if(GAMMARAY_BUILD_UI) gammaray_mimetypes.json SOURCES ${gammaray_mimetypes_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_mimetypes_ui gammaray_ui) endif() diff --git a/plugins/modelinspector/CMakeLists.txt b/plugins/modelinspector/CMakeLists.txt index 1aaa2c58c4..e4676d6249 100644 --- a/plugins/modelinspector/CMakeLists.txt +++ b/plugins/modelinspector/CMakeLists.txt @@ -30,6 +30,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_modelinspector.json SOURCES ${gammaray_models_srcs} + TYPE + PROBE ) set_target_properties(gammaray_modelinspector PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) @@ -56,6 +58,8 @@ if(GAMMARAY_BUILD_UI) gammaray_modelinspector.json SOURCES ${gammaray_models_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_modelinspector_ui gammaray_ui) diff --git a/plugins/network/CMakeLists.txt b/plugins/network/CMakeLists.txt index 2e0e7690c4..77bef83a6d 100644 --- a/plugins/network/CMakeLists.txt +++ b/plugins/network/CMakeLists.txt @@ -32,6 +32,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_network.json SOURCES ${gammaray_network_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_network gammaray_core Qt::Network Qt::CorePrivate) set_target_properties(gammaray_network PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) @@ -65,6 +67,8 @@ if(GAMMARAY_BUILD_UI) gammaray_network.json SOURCES ${gammaray_network_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_network_ui gammaray_ui Qt::Network) endif() diff --git a/plugins/openglsupport/CMakeLists.txt b/plugins/openglsupport/CMakeLists.txt index 257e5cf63b..94f8ed30cf 100644 --- a/plugins/openglsupport/CMakeLists.txt +++ b/plugins/openglsupport/CMakeLists.txt @@ -16,6 +16,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) SOURCES openglsupport.cpp openglsupport.h + TYPE + PROBE ) target_link_libraries(gammaray_openglsupport gammaray_core Qt::Gui) if(TARGET Qt6::OpenGL) diff --git a/plugins/positioning/CMakeLists.txt b/plugins/positioning/CMakeLists.txt index 83ff2a04ef..50b37102de 100644 --- a/plugins/positioning/CMakeLists.txt +++ b/plugins/positioning/CMakeLists.txt @@ -29,6 +29,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_positioning.json SOURCES ${gammaray_positioning_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_positioning gammaray_core Qt::Positioning) set_target_properties(gammaray_positioning PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) @@ -77,6 +79,8 @@ if(GAMMARAY_BUILD_UI gammaray_positioning.json SOURCES ${gammaray_positioning_ui_srcs} + TYPE + UI ) target_link_libraries( diff --git a/plugins/qmlsupport/CMakeLists.txt b/plugins/qmlsupport/CMakeLists.txt index c8a763a718..c9a3b7f15d 100644 --- a/plugins/qmlsupport/CMakeLists.txt +++ b/plugins/qmlsupport/CMakeLists.txt @@ -26,6 +26,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_qmlsupport.json SOURCES ${gammaray_qmlsupport_srcs} + TYPE + PROBE ) target_link_libraries( gammaray_qmlsupport @@ -51,6 +53,8 @@ if(GAMMARAY_BUILD_UI) gammaray_qmlsupport.json SOURCES ${gammaray_qmlsupport_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_qmlsupport_ui gammaray_ui) endif() diff --git a/plugins/qt3dinspector/CMakeLists.txt b/plugins/qt3dinspector/CMakeLists.txt index 0bb96fabc2..f5a8ef117b 100644 --- a/plugins/qt3dinspector/CMakeLists.txt +++ b/plugins/qt3dinspector/CMakeLists.txt @@ -26,6 +26,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_3dinspector.json SOURCES ${gammaray_3dinspector_srcs} + TYPE + PROBE ) target_link_libraries( gammaray_3dinspector @@ -62,6 +64,8 @@ if(GAMMARAY_BUILD_UI) gammaray_3dinspector.json SOURCES ${gammaray_3dinspector_ui_srcs} + TYPE + UI ) target_link_libraries( gammaray_3dinspector_ui diff --git a/plugins/qtivi/CMakeLists.txt b/plugins/qtivi/CMakeLists.txt index 7266e3ab68..33d2a0eace 100644 --- a/plugins/qtivi/CMakeLists.txt +++ b/plugins/qtivi/CMakeLists.txt @@ -29,6 +29,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_qtivi.json SOURCES ${plugin_files} + TYPE + PROBE ) target_link_libraries(gammaray_qtivi gammaray_core Qt::IviCore Qt::IviCorePrivate) if(TARGET Qt::IviVehicleFunctions) @@ -53,6 +55,8 @@ if(GAMMARAY_BUILD_UI) qtivipropertyclientmodel.h qtivisupportwidget.cpp qtivisupportwidget.h + TYPE + UI ) target_link_libraries(gammaray_qtivi_ui gammaray_ui) endif() diff --git a/plugins/quickinspector/CMakeLists.txt b/plugins/quickinspector/CMakeLists.txt index 19103e467d..b4fdb78517 100644 --- a/plugins/quickinspector/CMakeLists.txt +++ b/plugins/quickinspector/CMakeLists.txt @@ -18,7 +18,7 @@ set(gammaray_quickinspector_shared_srcs quickinspectorinterface.cpp quickitemgeo ) add_library( - gammaray_quickinspector_shared STATIC + gammaray_quickinspector_shared OBJECT ${gammaray_quickinspector_shared_srcs} ) target_link_libraries( @@ -71,6 +71,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_quickinspector.json SOURCES ${gammaray_quickinspector_srcs} + TYPE + PROBE ) if(TARGET Qt${QT_MAJOR_VERSION}::Quick) @@ -153,6 +155,8 @@ if(GAMMARAY_BUILD_UI) gammaray_quickinspector.json SOURCES ${gammaray_quickinspector_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_quickinspector_ui gammaray_quickinspector_shared gammaray_ui Qt::Quick) diff --git a/plugins/quickwidgetsupport/CMakeLists.txt b/plugins/quickwidgetsupport/CMakeLists.txt index ad270108fe..bb56b8e454 100644 --- a/plugins/quickwidgetsupport/CMakeLists.txt +++ b/plugins/quickwidgetsupport/CMakeLists.txt @@ -16,6 +16,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_quickwidgetsupport.json SOURCES ${gammaray_quickwidgetsupport_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_quickwidgetsupport gammaray_core Qt::QuickWidgets) endif() diff --git a/plugins/sceneinspector/CMakeLists.txt b/plugins/sceneinspector/CMakeLists.txt index 4e36daf63d..c4d6e7f184 100644 --- a/plugins/sceneinspector/CMakeLists.txt +++ b/plugins/sceneinspector/CMakeLists.txt @@ -26,6 +26,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_sceneinspector.json SOURCES ${gammaray_sceneinspector_plugin_srcs} + TYPE + PROBE ) target_link_libraries( @@ -58,6 +60,8 @@ if(GAMMARAY_BUILD_UI) gammaray_sceneinspector.json SOURCES ${gammaray_sceneinspector_ui_plugin_srcs} + TYPE + UI ) target_link_libraries(gammaray_sceneinspector_ui_plugin gammaray_ui) diff --git a/plugins/scriptenginedebugger/CMakeLists.txt b/plugins/scriptenginedebugger/CMakeLists.txt index a9676b819c..71921dbcd7 100644 --- a/plugins/scriptenginedebugger/CMakeLists.txt +++ b/plugins/scriptenginedebugger/CMakeLists.txt @@ -17,6 +17,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_scriptenginedebugger.json SOURCES ${gammaray_scriptenginedebugger_plugin_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_scriptenginedebugger_plugin Qt5::Script Qt5::ScriptTools gammaray_core) @@ -33,6 +35,8 @@ if(GAMMARAY_BUILD_UI) gammaray_scriptenginedebugger.json SOURCES ${gammaray_scriptenginedebugger_ui_plugin_srcs} + TYPE + UI ) target_link_libraries(gammaray_scriptenginedebugger_ui_plugin Qt5::Script Qt5::ScriptTools gammaray_ui) diff --git a/plugins/signalmonitor/CMakeLists.txt b/plugins/signalmonitor/CMakeLists.txt index f89a47d295..c96b9e5082 100644 --- a/plugins/signalmonitor/CMakeLists.txt +++ b/plugins/signalmonitor/CMakeLists.txt @@ -12,7 +12,7 @@ set(gammaray_signalmonitor_shared_srcs signalmonitorcommon.cpp signalmonitorcomm signalmonitorinterface.h ) add_library( - gammaray_signalmonitor_shared STATIC + gammaray_signalmonitor_shared OBJECT ${gammaray_signalmonitor_shared_srcs} ) target_link_libraries( @@ -39,6 +39,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_signalmonitor.json SOURCES ${gammaray_signalmonitor_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_signalmonitor gammaray_core gammaray_signalmonitor_shared) @@ -64,6 +66,8 @@ if(GAMMARAY_BUILD_UI) gammaray_signalmonitor.json SOURCES ${gammaray_signalmonitor_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_signalmonitor_ui gammaray_ui gammaray_signalmonitor_shared) diff --git a/plugins/statemachineviewer/CMakeLists.txt b/plugins/statemachineviewer/CMakeLists.txt index 9a654edd27..b7ccf9dc23 100644 --- a/plugins/statemachineviewer/CMakeLists.txt +++ b/plugins/statemachineviewer/CMakeLists.txt @@ -40,6 +40,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) SOURCES ${gammaray_statemachineviewer_plugin_srcs} ${gammaray_statemachineviewer_shared_srcs} + TYPE + PROBE ) set_target_properties(gammaray_statemachineviewer_plugin PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) @@ -87,6 +89,8 @@ if(GAMMARAY_BUILD_UI AND ${KDSME_PACKAGE_NAME}_FOUND) SOURCES ${gammaray_statemachineviewer_ui_plugin_srcs} ${gammaray_statemachineviewer_shared_srcs} + TYPE + UI ) target_link_libraries( diff --git a/plugins/styleinspector/CMakeLists.txt b/plugins/styleinspector/CMakeLists.txt index 882d85f9fb..40908f28f9 100644 --- a/plugins/styleinspector/CMakeLists.txt +++ b/plugins/styleinspector/CMakeLists.txt @@ -44,6 +44,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_styleinspector.json SOURCES ${gammaray_styleinspector_plugin_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_styleinspector_plugin Qt::Gui Qt::Widgets gammaray_core) @@ -68,6 +70,8 @@ if(GAMMARAY_BUILD_UI) gammaray_styleinspector.json SOURCES ${gammaray_styleinspector_ui_plugin_srcs} + TYPE + UI ) target_link_libraries(gammaray_styleinspector_ui_plugin gammaray_ui) diff --git a/plugins/sysinfo/CMakeLists.txt b/plugins/sysinfo/CMakeLists.txt index f7cce7f0d3..81c376824e 100644 --- a/plugins/sysinfo/CMakeLists.txt +++ b/plugins/sysinfo/CMakeLists.txt @@ -28,6 +28,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_sysinfo.json SOURCES ${sysinfo_probe_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_sysinfo_plugin gammaray_core) set_target_properties(gammaray_sysinfo_plugin PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) @@ -43,6 +45,8 @@ if(GAMMARAY_BUILD_UI) gammaray_sysinfo.json SOURCES ${sysinfo_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_sysinfo_ui_plugin gammaray_ui) endif() diff --git a/plugins/textdocumentinspector/CMakeLists.txt b/plugins/textdocumentinspector/CMakeLists.txt index 01e6c036ba..36d170d90b 100644 --- a/plugins/textdocumentinspector/CMakeLists.txt +++ b/plugins/textdocumentinspector/CMakeLists.txt @@ -23,6 +23,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_textdocumentinspector.json SOURCES ${gammaray_textdocumentinspector_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_textdocumentinspector gammaray_core) target_link_libraries(gammaray_textdocumentinspector Qt::Gui) @@ -40,6 +42,8 @@ if(GAMMARAY_BUILD_UI) gammaray_textdocumentinspector.json SOURCES ${gammaray_textdocumentinspector_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_textdocumentinspector_ui gammaray_ui) endif() diff --git a/plugins/timertop/CMakeLists.txt b/plugins/timertop/CMakeLists.txt index 71e009f653..f518b921db 100644 --- a/plugins/timertop/CMakeLists.txt +++ b/plugins/timertop/CMakeLists.txt @@ -26,6 +26,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_timertop.json SOURCES ${gammaray_timertop_plugin_srcs} + TYPE + PROBE ) set_target_properties(gammaray_timertop_plugin PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) @@ -52,6 +54,8 @@ if(GAMMARAY_BUILD_UI) gammaray_timertop.json SOURCES ${gammaray_timertop_plugin_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_timertop_ui_plugin gammaray_ui) diff --git a/plugins/translatorinspector/CMakeLists.txt b/plugins/translatorinspector/CMakeLists.txt index dd5120a41f..485400baa2 100644 --- a/plugins/translatorinspector/CMakeLists.txt +++ b/plugins/translatorinspector/CMakeLists.txt @@ -22,6 +22,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) translatorsmodel.h translatorwrapper.cpp translatorwrapper.h + TYPE + PROBE ) target_link_libraries(gammaray_translatorinspector gammaray_core Qt::Core Qt::CorePrivate) set_target_properties(gammaray_translatorinspector PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) @@ -40,6 +42,8 @@ if(GAMMARAY_BUILD_UI) translatorinspectorwidget.h translatorwrapperproxy.cpp translatorwrapperproxy.h + TYPE + UI ) target_link_libraries(gammaray_translatorinspector_ui gammaray_ui) endif() diff --git a/plugins/webinspector/CMakeLists.txt b/plugins/webinspector/CMakeLists.txt index 1deb5f212b..de31ae7489 100644 --- a/plugins/webinspector/CMakeLists.txt +++ b/plugins/webinspector/CMakeLists.txt @@ -17,6 +17,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_webinspector.json SOURCES ${gammaray_webinspector_plugin_srcs} + TYPE + PROBE ) target_link_libraries(gammaray_webinspector_plugin gammaray_core) @@ -34,6 +36,8 @@ if(GAMMARAY_BUILD_UI AND TARGET Qt::WebEngineWidgets) gammaray_webinspector.json SOURCES ${gammaray_webinspector_ui_plugin_srcs} + TYPE + UI ) target_link_libraries(gammaray_webinspector_ui_plugin Qt::WebEngineWidgets gammaray_ui) diff --git a/plugins/widgetinspector/CMakeLists.txt b/plugins/widgetinspector/CMakeLists.txt index 2802f86ce7..c485b10509 100644 --- a/plugins/widgetinspector/CMakeLists.txt +++ b/plugins/widgetinspector/CMakeLists.txt @@ -36,6 +36,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_widgetinspector.json SOURCES ${gammaray_widgetinspector_plugin_srcs} + TYPE + PROBE ) target_link_libraries( @@ -109,6 +111,8 @@ if(GAMMARAY_BUILD_UI) gammaray_widgetinspector.json SOURCES ${gammaray_widgetinspector_ui_plugin_srcs} + TYPE + UI ) target_link_libraries(gammaray_widgetinspector_ui_plugin gammaray_ui) diff --git a/plugins/wlcompositorinspector/CMakeLists.txt b/plugins/wlcompositorinspector/CMakeLists.txt index f0b0bc0af9..c369d9f7c3 100644 --- a/plugins/wlcompositorinspector/CMakeLists.txt +++ b/plugins/wlcompositorinspector/CMakeLists.txt @@ -32,6 +32,8 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) gammaray_wlcompositorinspector.json SOURCES ${gammaray_wlcompositorinspector_srcs} + TYPE + PROBE ) target_link_libraries( gammaray_wlcompositorinspector @@ -64,6 +66,8 @@ if(GAMMARAY_BUILD_UI AND (NOT MSVC OR NOT MSVC_VERSION LESS 1800)) # at least MS gammaray_wlcompositorinspector.json SOURCES ${gammaray_wlcompositorinspector_ui_srcs} + TYPE + UI ) target_link_libraries(gammaray_wlcompositorinspector_ui Qt::Widgets gammaray_common gammaray_ui) diff --git a/probe/CMakeLists.txt b/probe/CMakeLists.txt index 88e2015b12..7512be4c33 100644 --- a/probe/CMakeLists.txt +++ b/probe/CMakeLists.txt @@ -26,7 +26,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) # probe lib # DYLD_INSERT_LIBRARIES only works with real shared libraries, not modules # Windows also needs SHARED rather than MODULE here, to end up in bin/ - add_library(gammaray_probe ${GAMMARAY_LIBRARY_TYPE} $) + add_library(gammaray_probe ${GAMMARAY_PROBE_LIBRARY_TYPE} $) target_link_libraries(gammaray_probe gammaray_core ${CMAKE_DL_LIBS}) set_target_properties( diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt index a031f91feb..8884b5b337 100644 --- a/ui/CMakeLists.txt +++ b/ui/CMakeLists.txt @@ -175,8 +175,8 @@ set(gammaray_ui_srcs ) add_library( - gammaray_ui SHARED - ${gammaray_ui_srcs} + gammaray_ui + ${GAMMARAY_UI_LIBRARY_TYPE} ${gammaray_ui_srcs} ) generate_export_header(gammaray_ui) # cmake-lint: disable=E1120 @@ -215,24 +215,24 @@ set(gammaray_ui_internal_srcs ) add_library( - gammaray_ui_internal STATIC + gammaray_ui_internal OBJECT ${gammaray_ui_internal_srcs} ) set_target_properties(gammaray_ui_internal PROPERTIES POSITION_INDEPENDENT_CODE ON) target_compile_features(gammaray_ui_internal PUBLIC ${GAMMARAY_REQUIRED_CXX_FEATURES}) target_link_libraries( gammaray_ui_internal - Qt::Core - Qt::Gui - Qt::Widgets - Qt::GuiPrivate - gammaray_common_internal - gammaray_ui - gammaray_kitemmodels + PUBLIC Qt::Core + Qt::Gui + Qt::Widgets + Qt::GuiPrivate + gammaray_common_internal + gammaray_ui + gammaray_kitemmodels ) if(NOT GAMMARAY_DISABLE_FEEDBACK) - target_link_libraries(gammaray_ui_internal gammaray_kuserfeedback) + target_link_libraries(gammaray_ui_internal PUBLIC gammaray_kuserfeedback) endif() if(NOT GAMMARAY_PROBE_ONLY_BUILD)