@@ -84,10 +84,18 @@ if(Vulkan_FOUND)
8484endif ()
8585if (Freetype_FOUND)
8686 set (GPUCA_EVENT_DISPLAY_FREETYPE ON )
87+ if (Fontconfig_FOUND)
88+ set (GPUCA_EVENT_DISPLAY_FONTCONFIG ON )
89+ endif ()
8790endif ()
8891if (Qt6_FOUND)
8992 set (GPUCA_EVENT_DISPLAY_QT ON )
9093endif ()
94+ foreach (feature OPENGL VULKAN WAYLAND FREETYPE FONTCONFIG QT)
95+ if (NOT GPUCA_EVENT_DISPLAY_${feature} )
96+ set (GPUCA_EVENT_DISPLAY_${feature} OFF )
97+ endif ()
98+ endforeach ()
9199
92100set (SRCS ../utils/qsem.cxx
93101 GPUDisplay.cxx
@@ -161,12 +169,11 @@ if(GLFW_FOUND)
161169endif ()
162170
163171if (GPUCA_EVENT_DISPLAY_QT)
164- set (CMAKE_AUTOMOC ON )
165- set (CMAKE_AUTORCC ON )
166- set (CMAKE_AUTOUIC ON )
172+ qt_wrap_cpp (GPUCA_QT_MOC_SRCS frontend/GPUDisplayGUI.h ) # Explicit moc / uic instead of AUTOMOC / AUTOUIC: rerun only if these files change; add new Q_OBJECT headers / .ui files here
173+ qt_wrap_ui (GPUCA_QT_UI_HDRS frontend/GPUDisplayGUI.ui )
167174
168175 set (SRCS ${SRCS} frontend/GPUDisplayGUI.cxx frontend/GPUDisplayGUIWrapper.cxx)
169- set (SRCS_NO_H ${SRCS_NO_H} frontend/GPUDisplayGUI.ui )
176+ set (SRCS_NO_H ${SRCS_NO_H} ${GPUCA_QT_MOC_SRCS} ${GPUCA_QT_UI_HDRS} )
170177endif ()
171178
172179string (REPLACE ".cxx" ".h" HDRS "${SRCS} " )
@@ -203,7 +210,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/setinclude.sh PERMISSIONS OWNER_READ O
203210
204211target_compile_definitions (${targetName} PRIVATE $<TARGET_PROPERTY :O2 ::GPUTracking ,COMPILE_DEFINITIONS >)
205212
206- message (STATUS "Building GPU Event Display (OpenGL ${GPUCA_EVENT_DISPLAY_OPENGL} , Vulkan ${GPUCA_EVENT_DISPLAY_VULKAN} ${Vulkan_VERSION} , Wayland ${GPUCA_EVENT_DISPLAY_WAYLAND} , Freetype ${GPUCA_EVENT_DISPLAY_FREETYPE} , Fontconfig ${Fontconfig_FOUND } , Qt ${GPUCA_EVENT_DISPLAY_QT} )" )
213+ message (STATUS "Building GPU Event Display (OpenGL ${GPUCA_EVENT_DISPLAY_OPENGL} , Vulkan ${GPUCA_EVENT_DISPLAY_VULKAN} ${Vulkan_VERSION} , Wayland ${GPUCA_EVENT_DISPLAY_WAYLAND} , Freetype ${GPUCA_EVENT_DISPLAY_FREETYPE} , Fontconfig ${GPUCA_EVENT_DISPLAY_FONTCONFIG } , Qt ${GPUCA_EVENT_DISPLAY_QT} )" )
207214target_include_directories (${targetName} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR } )
208215
209216if (X11_FOUND)
@@ -275,7 +282,7 @@ endif()
275282if (GPUCA_EVENT_DISPLAY_FREETYPE)
276283 target_compile_definitions (${targetName} PRIVATE GPUCA_BUILD_EVENT_DISPLAY_FREETYPE )
277284 target_link_libraries (${targetName} PRIVATE Freetype::Freetype )
278- if (Fontconfig_FOUND )
285+ if (GPUCA_EVENT_DISPLAY_FONTCONFIG )
279286 target_compile_definitions (${targetName} PRIVATE GPUCA_BUILD_EVENT_DISPLAY_FONTCONFIG )
280287 target_link_libraries (${targetName} PRIVATE Fontconfig::Fontconfig )
281288 endif ()
@@ -284,6 +291,7 @@ endif()
284291if (GPUCA_EVENT_DISPLAY_QT)
285292 target_compile_definitions (${targetName} PRIVATE GPUCA_BUILD_EVENT_DISPLAY_QT )
286293 target_link_libraries (${targetName} PRIVATE Qt6::Widgets )
294+ target_include_directories (${targetName} PRIVATE ${CMAKE_CURRENT_BINARY_DIR } ) # ui_*.h
287295endif ()
288296
289297target_link_libraries (${targetName} PRIVATE TBB::tbb )
0 commit comments