@@ -78,6 +78,10 @@ execute_process(
7878 COMMAND "${_QTFRED_QMAKE} " -query QT_INSTALL_BINS
7979 OUTPUT_VARIABLE _QTFRED_QT_BINS
8080 OUTPUT_STRIP_TRAILING_WHITESPACE )
81+ execute_process (
82+ COMMAND "${_QTFRED_QMAKE} " -query QT_INSTALL_LIBS
83+ OUTPUT_VARIABLE _QTFRED_QT_LIBS
84+ OUTPUT_STRIP_TRAILING_WHITESPACE )
8185find_program (QHELPGENERATOR_EXECUTABLE
8286 NAMES qhelpgenerator
8387 HINTS "${_QTFRED_QT_BINS} "
@@ -91,9 +95,16 @@ file(GLOB_RECURSE QTFRED_HELP_SOURCES
9195 "${CMAKE_CURRENT_SOURCE_DIR } /help-src/doc/*.css"
9296 "${CMAKE_CURRENT_SOURCE_DIR } /help-src/doc/*.qhp" )
9397
98+ # qhelpgenerator is a Qt application and needs a platform plugin at build time.
99+ # On headless Linux CI the Qt platform plugins fail to dlopen because the Qt
100+ # shared libs are not in LD_LIBRARY_PATH for dlopen-loaded plugins (DT_RUNPATH
101+ # in the main binary does not propagate to dlopen). Pass the Qt lib dir and
102+ # force the offscreen (no-display) platform explicitly.
94103add_custom_command (
95104 OUTPUT "${QTFRED_HELP_QCH} "
96- COMMAND ${CMAKE_COMMAND } -E env "QT_QPA_PLATFORM=offscreen"
105+ COMMAND ${CMAKE_COMMAND } -E env
106+ "QT_QPA_PLATFORM=offscreen"
107+ "LD_LIBRARY_PATH=${_QTFRED_QT_LIBS} "
97108 "${QHELPGENERATOR_EXECUTABLE} " "${QTFRED_HELP_QHP} " -o "${QTFRED_HELP_QCH} "
98109 DEPENDS ${QTFRED_HELP_SOURCES}
99110 COMMENT "Compiling QtFRED help (qtfred_help.qch)"
0 commit comments