@@ -165,7 +165,7 @@ endif()
165165set (QT_VERSION_TO_BUILD "6.8.2" CACHE STRING "Qt version to build" )
166166
167167# Qt6 CMake configure options for static build
168- # We build only qtbase with minimal features to get Qt:: Core and Qt:: Network
168+ # Building qtbase with required modules for Hyperion.NG: Core, Gui, Network, Sql, Widgets
169169set (QT_CMAKE_ARGS
170170 -DCMAKE_BUILD_TYPE:STRING =${CMAKE_BUILD_TYPE}
171171 -DCMAKE_INSTALL_PREFIX:PATH =${CMAKE_INSTALL_PREFIX} /qt6
@@ -174,10 +174,9 @@ set(QT_CMAKE_ARGS
174174 -DBUILD_SHARED_LIBS:BOOL =OFF
175175 -DQT_BUILD_EXAMPLES:BOOL =OFF
176176 -DQT_BUILD_TESTS:BOOL =OFF
177- -DFEATURE_sql:BOOL =OFF
178- -DFEATURE_dbus:BOOL =OFF
179- -DFEATURE_gui:BOOL =OFF
180- -DFEATURE_widgets:BOOL =OFF
177+ -DFEATURE_sql:BOOL =ON
178+ -DFEATURE_gui:BOOL =ON
179+ -DFEATURE_widgets:BOOL =ON
181180 -DFEATURE_testlib:BOOL =OFF
182181 -DFEATURE_openssl:BOOL =OFF
183182 -DFEATURE_icu:BOOL =OFF
@@ -188,9 +187,9 @@ set(QT_CMAKE_ARGS
188187 ${APPLE_CONFIGURATION}
189188)
190189
191- # Build Qt6 qtbase from source (minimal static build with Network support )
192- ExternalProject_Add(qt6
193- PREFIX ${CMAKE_CURRENT_BINARY_DIR} /qt6
190+ # Build Qt6 qtbase from source (static build with Core, Gui, Network, Sql, Widgets )
191+ ExternalProject_Add(qt6-base
192+ PREFIX ${CMAKE_CURRENT_BINARY_DIR} /qt6-base
194193 GIT_REPOSITORY https://code.qt.io/qt/qtbase.git
195194 GIT_TAG v${QT_VERSION_TO_BUILD}
196195 GIT_SHALLOW TRUE
@@ -202,6 +201,49 @@ ExternalProject_Add(qt6
202201 INSTALL_COMMAND cmake --install <BINARY_DIR> --config ${CMAKE_BUILD_TYPE}
203202)
204203
204+ # Build Qt6 SerialPort module (required by Hyperion.NG)
205+ ExternalProject_Add(qt6-serialport
206+ DEPENDS qt6-base
207+ PREFIX ${CMAKE_CURRENT_BINARY_DIR} /qt6-serialport
208+ GIT_REPOSITORY https://code.qt.io/qt/qtserialport.git
209+ GIT_TAG v${QT_VERSION_TO_BUILD}
210+ GIT_SHALLOW TRUE
211+ GIT_PROGRESS TRUE
212+ UPDATE_COMMAND ""
213+ CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING =${CMAKE_BUILD_TYPE}
214+ -DCMAKE_INSTALL_PREFIX:PATH =${CMAKE_INSTALL_PREFIX} /qt6
215+ -DCMAKE_PREFIX_PATH:PATH =${CMAKE_INSTALL_PREFIX} /qt6
216+ -DCMAKE_C_COMPILER:FILEPATH =${CMAKE_C_COMPILER}
217+ -DCMAKE_CXX_COMPILER:FILEPATH =${CMAKE_CXX_COMPILER}
218+ -DBUILD_SHARED_LIBS:BOOL =OFF
219+ ${APPLE_CONFIGURATION}
220+ BUILD_COMMAND cmake --build <BINARY_DIR> --config ${CMAKE_BUILD_TYPE} --parallel
221+ INSTALL_COMMAND cmake --install <BINARY_DIR> --config ${CMAKE_BUILD_TYPE}
222+ )
223+
224+ # Build Qt6 WebSockets module (required by Hyperion.NG)
225+ ExternalProject_Add(qt6-websockets
226+ DEPENDS qt6-base
227+ PREFIX ${CMAKE_CURRENT_BINARY_DIR} /qt6-websockets
228+ GIT_REPOSITORY https://code.qt.io/qt/qtwebsockets.git
229+ GIT_TAG v${QT_VERSION_TO_BUILD}
230+ GIT_SHALLOW TRUE
231+ GIT_PROGRESS TRUE
232+ UPDATE_COMMAND ""
233+ CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING =${CMAKE_BUILD_TYPE}
234+ -DCMAKE_INSTALL_PREFIX:PATH =${CMAKE_INSTALL_PREFIX} /qt6
235+ -DCMAKE_PREFIX_PATH:PATH =${CMAKE_INSTALL_PREFIX} /qt6
236+ -DCMAKE_C_COMPILER:FILEPATH =${CMAKE_C_COMPILER}
237+ -DCMAKE_CXX_COMPILER:FILEPATH =${CMAKE_CXX_COMPILER}
238+ -DBUILD_SHARED_LIBS:BOOL =OFF
239+ ${APPLE_CONFIGURATION}
240+ BUILD_COMMAND cmake --build <BINARY_DIR> --config ${CMAKE_BUILD_TYPE} --parallel
241+ INSTALL_COMMAND cmake --install <BINARY_DIR> --config ${CMAKE_BUILD_TYPE}
242+ )
243+
244+ # Convenience target to build all Qt6 modules
245+ add_custom_target (qt6 DEPENDS qt6-base qt6-serialport qt6-websockets)
246+
205247# Set Qt6_DIR to find the built Qt6
206248set (Qt6_DIR "${CMAKE_INSTALL_PREFIX} /qt6/lib/cmake/Qt6" CACHE PATH "Qt6 CMake directory" FORCE)
207249list (PREPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX} /qt6)
0 commit comments