Skip to content

Commit 663d56b

Browse files
committed
Switch to qt_add_qml_module (requires newer cmake)
1 parent 2905347 commit 663d56b

File tree

6 files changed

+31
-40
lines changed

6 files changed

+31
-40
lines changed

CMakeLists.txt

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.18)
1+
cmake_minimum_required(VERSION 3.21)
22

33
project(updater LANGUAGES CXX)
44

@@ -7,17 +7,14 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
77

88
set(CMAKE_AUTORCC ON)
99

10-
# Allow building with old CMake
11-
set(QT_FORCE_MIN_CMAKE_VERSION_FOR_USING_QT 3.18)
12-
13-
# Silence warning with CMake < 3.19
14-
set(QT_QML_GENERATE_AOTSTATS OFF)
15-
1610
set(ARIA2_LIBS "${CMAKE_CURRENT_SOURCE_DIR}/aria2/src/.libs/libaria2.a" CACHE STRING "aria2 libraries")
1711
set(ARIA2_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/aria2/include" CACHE STRING "aria2 include directory")
1812

1913
find_package(Qt6 REQUIRED COMPONENTS Core Qml Quick QuickControls2 QuickDialogs2 Network Svg Gui Widgets )
2014

15+
# Actually only used by Fluid and Quazip, not us. HACK: prevent warning spam
16+
find_package(Qt6 COMPONENTS Core5Compat)
17+
2118
qt_standard_project_setup(REQUIRES 6.8)
2219

2320
option(FLUID_WITH_GALLERY "" OFF)
@@ -42,6 +39,16 @@ set(SOURCES
4239
splashcontroller.cpp splashcontroller.h
4340
system.h
4441
)
42+
set(QML_SOURCES
43+
DownloadInfo.qml
44+
main.qml
45+
News.qml
46+
NewsCard.qml
47+
Settings.qml
48+
splash.qml
49+
UpdateFailed.qml
50+
utils.js
51+
)
4552

4653
if(APPLE)
4754
list(APPEND SOURCES osx.cpp)
@@ -51,23 +58,30 @@ else()
5158
list(APPEND SOURCES linux.cpp)
5259
endif()
5360

54-
qt_add_executable(updater MANUAL_FINALIZATION
61+
qt_add_executable(updater
5562
${SOURCES}
5663
qml.qrc
5764
)
5865

59-
60-
# target_compile_definitions(updater PRIVATE QUAZIP_STATIC )
66+
qt_add_qml_module(updater
67+
URI UnvUpdater
68+
QML_FILES ${QML_SOURCES}
69+
RESOURCE_PREFIX "/"
70+
)
6171

6272
target_link_libraries(updater PRIVATE
6373
Qt6::Network
6474
Qt6::Widgets
75+
QuaZip::QuaZip
76+
Fluid
77+
${ARIA2_LIBS}
6578
)
6679

67-
target_link_libraries(updater INTERFACE
80+
target_link_libraries(updater PRIVATE
6881
Qt6::Qml
69-
Qt6::QuickDialogs2
7082
Qt6::Quick
83+
Qt6::QuickControls2
84+
Qt6::QuickDialogs2
7185
)
7286

7387

@@ -86,13 +100,6 @@ elseif(UNIX)
86100
)
87101
endif()
88102

89-
90-
91-
target_link_libraries(updater PUBLIC
92-
QuaZip::QuaZip
93-
Fluid
94-
)
95-
96103
# Turn on warning errors since the warnings are hard to see in Docker
97104
if(NOT APPLE)
98105
target_compile_options(updater PRIVATE -Werror)
@@ -113,10 +120,3 @@ if(APPLE)
113120
endif()
114121

115122

116-
qt_finalize_target(updater)
117-
118-
target_link_libraries(updater PUBLIC
119-
Qt6::Qml
120-
Qt6::Quick
121-
)
122-

News.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ Item {
6363
}
6464
}
6565

66-
var component = Qt.createComponent("qrc:/NewsCard.qml");
66+
var component = Qt.createComponent("qrc:/UnvUpdater/NewsCard.qml");
6767

6868
for (var i = 0; i < newsObj['posts'].length; ++i) {
6969
var object = component.createObject(swipe);

build-qt.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ WORK_DIR="${PWD}"
3535
SCRIPT_DIR=$(dirname "$0")
3636
INSTALL_DIR="${WORK_DIR}/qt"
3737

38-
common_options_cmake='-DQT_FORCE_MIN_CMAKE_VERSION_FOR_BUILDING_QT=3.18 -DQT_GENERATE_SBOM=OFF -DQT_FEATURE_accessibility=OFF'
38+
common_options_cmake='-DQT_GENERATE_SBOM=OFF -DQT_FEATURE_accessibility=OFF'
3939
options_qtbase="-opensource -confirm-license -release -optimize-size -no-shared -static --c++std=17 -disable-deprecated-up-to 0x060800 -qpa xcb -nomake tests -nomake examples -no-gif -no-icu -no-glib -opengl desktop -no-eglfs -no-opengles3 -no-egl -xkbcommon -dbus-runtime -qt-freetype -qt-pcre -qt-harfbuzz -qt-libpng -qt-libjpeg -system-zlib -openssl-linked -prefix ${INSTALL_DIR} -- -DFEATURE_xcb=1 -DFEATURE_sql=OFF -DFEATURE_printsupport=OFF -DFEATURE_xml=OFF -DFEATURE_testlib=OFF -DFEATURE_qmake=OFF -DFEATURE_style_fusion=OFF -DFEATURE_style_stylesheet=OFF -DFEATURE_androiddeployqt=OFF -DFEATURE_cborstreamwriter=OFF -DFEATURE_columnview=OFF -DFEATURE_commandlinkbutton=OFF -DFEATURE_concatenatetablesproxy=OFF -DFEATURE_concurrent=OFF -DFEATURE_completer=OFF -DFEATURE_contextmenu=OFF -DFEATURE_cssparser=OFF -DFEATURE_datawidgetmapper=OFF -DFEATURE_datetimeedit=OFF -DFEATURE_datetimXXeparser=OFF -DFEATURE_dial=OFF -DFEATURE_dialogbuttonbox=ON -DFEATURE_dockwidget=OFF -DFEATURE_draganddrop=OFF -DFEATURE_dtls=OFF -DFEATURE_easingcurve=OFF -DFEATURE_filedialog=OFF -DFEATURE_filesystemmodel=OFF -DFEATURE_filesystemwatcher=OFF -DFEATURE_fontcombobox=OFF -DFEATURE_fontdialog=OFF -DFEATURE_formlayout=OFF -DFEATURE_fscompleter=OFF -DFEATURE_future=OFF -DFEATURE_gc_binaries=OFF -DFEATURE_gestures=OFF -DFEATURE_graphicsview=OFF -DFEATURE_groupbox=OFF -DFEATURE_hijricalendar=OFF -DFEATURE_identityproxymodel=OFF -DFEATURE_im=OFF -DFEATURE_imageformat_bmp=OFF -DFEATURE_imageformat_jpeg=ON -DFEATURE_imageformat_png=ON -DFEATURE_imageformat_ppm=OFF -DFEATURE_imageformat_xbm=OFF -DFEATURE_imageformat_xpm=OFF -DFEATURE_imageformatplugin=OFF -DFEATURE_imageio_text_loading=OFF -DFEATURE_inputdialog=OFF -DFEATURE_islamiccivilcalendar=OFF -DFEATURE_itemmodel=OFF -DFEATURE_itemviews=OFF -DFEATURE_jalalicalendar=OFF -DFEATURE_keysequenceedit=OFF -DFEATURE_lcdnumber=OFF -DFEATURE_library=OFF -DFEATURE_lineedit=OFF -DFEATURE_listview=OFF -DFEATURE_listwidget=OFF -DFEATURE_localserver=OFF -DFEATURE_mdiarea=OFF -DFEATURE_menu=OFF -DFEATURE_menubar=OFF -DFEATURE_messagebox=ON -DFEATURE_mimetype=OFF -DFEATURE_mimetype_database=OFF -DFEATURE_movie=OFF -DFEATURE_networkdiskcache=OFF -DFEATURE_opengl_desktop=ON -DFEATURE_pdf=OFF -DFEATURE_picture=OFF -DFEATURE_progressbar=OFF -DFEATURE_proxymodel=OFF -DFEATURE_publicsuffix_qt=OFF -DFEATURE_publicsuffix_system=OFF -DFEATURE_pushbutton=ON -DFEATURE_radiobutton=OFF -DFEATURE_rubberband=OFF -DFEATURE_scrollarea=OFF -DFEATURE_scrollbar=OFF -DFEATURE_scroller=OFF -DFEATURE_sessionmanager=OFF -DFEATURE_settings=ON -DFEATURE_shortcut=OFF -DFEATURE_sizegrip=OFF -DFEATURE_slider=OFF -DFEATURE_socks5=OFF -DFEATURE_sortfilterproxymodel=OFF -DFEATURE_spinbox=OFF -DFEATURE_splitter=OFF -DFEATURE_stackedwidget=OFF -DFEATURE_standarditemmodel=OFF -DFEATURE_statusbar=OFF -DFEATURE_statustip=OFF -DFEATURE_stringlistmodel=OFF -DFEATURE_syntaxhighlighter=OFF -DFEATURE_systemtrayicon=OFF -DFEATURE_tabbar=OFF -DFEATURE_tabletevent=OFF -DFEATURE_tableview=OFF -DFEATURE_tabwidget=OFF -DFEATURE_textbrowser=OFF -DFEATURE_teXXXxtdate=OFF -DFEATURE_textedit=OFF -DFEATURE_textmarkdownreader=OFF -DFEATURE_textmarkdownwriter=OFF -DFEATURE_textodfwriter=OFF -DFEATURE_timezonelocale=ON -DFEATURE_toolbar=OFF -DFEATURE_toolbox=OFF -DFEATURE_toolbutton=OFF -DFEATURE_tooltip=OFF -DFEATURE_translation=OFF -DFEATURE_transposeproxymodel=OFF -DFEATURE_treeview=OFF -DFEATURE_treewidget=OFF -DFEATURE_tuiotouch=OFF -DFEATURE_udpsocket=OFF -DFEATURE_undocommand=OFF -DFEATURE_undogroup=OFF -DFEATURE_undostack=OFF -DFEATURE_undoview=OFF -DFEATURE_validator=OFF -DFEATURE_vkgen=OFF -DFEATURE_vnc=OFF -DFEATURE_whatsthis=OFF -DFEATURE_widgettextcontrol=ON -DFEATURE_wizard=OFF -DFEATURE_xmlstream=ON -DQT_FEATURE_label=ON -DQT_BUILD_DOCS=OFF -DQT_BUILD_TOOLS_BY_DEFAULT=OFF -DFEATURE_topleveldomain=OFF"
4040
options_qt5compat='--'
4141
options_qtsvg='--'

main.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,6 @@ int main(int argc, char *argv[])
218218
void qml_register_types_Fluid();
219219
qml_register_types_Fluid();
220220

221-
engine.addImportPath(QLatin1String("qrc:/"));
222221
auto* context = engine.rootContext();
223222
context->setContextProperty("updaterSettings", &settings);
224223
context->setContextProperty("gameLauncher", &gameLauncher);
@@ -231,8 +230,8 @@ int main(int argc, char *argv[])
231230
"QmlDownloader", 1, 0, "QmlDownloader", "QmlDownloader not constructible");
232231

233232
// LOAD-BEARING POSTER - DO NOT TOUCH
234-
qDebug() << engine.singletonInstance<QObject*>("Fluid", "Device");
233+
engine.singletonInstance<QObject*>("Fluid", "foo");
235234

236-
engine.load(QUrl(QLatin1String("qrc:/splash.qml")));
235+
engine.load(QUrl(QLatin1String("qrc:/UnvUpdater/splash.qml")));
237236
return app.exec();
238237
}

qml.qrc

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
11
<RCC>
22
<qresource prefix="/">
3-
<file>main.qml</file>
43
<file>qtquickcontrols2.conf</file>
54
<file>resources/Roboto-Regular.ttf</file>
65
<file>resources/updater.png</file>
7-
<file>News.qml</file>
8-
<file>NewsCard.qml</file>
9-
<file>DownloadInfo.qml</file>
10-
<file>UpdateFailed.qml</file>
116
<file>resources/splash.png</file>
12-
<file>splash.qml</file>
13-
<file>Settings.qml</file>
14-
<file>utils.js</file>
157
<file>resources/unvanquished.png</file>
168
<file>resources/background.png</file>
179
<file>resources/header.png</file>

splash.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ ApplicationWindow {
171171
Loader {
172172
id: updaterWindowLoader
173173
active: false
174-
source: "qrc:/main.qml"
174+
source: "qrc:/UnvUpdater/main.qml"
175175
}
176176

177177
ApplicationWindow {

0 commit comments

Comments
 (0)