Skip to content

Commit b70a2a1

Browse files
committed
[cmake] FEXConfig: use one qrc
Rather than manually creating a Qt 5 and Qt 6 QRC, instead we create a single qrc that references a flattened directory. Then, we copy each of its dependents (main, dialogs, icon) into the binary directory as-is, resulting in just one qrc rather than having to maintain one for each. Signed-off-by: crueter <crueter@eden-emu.dev>
1 parent b41b967 commit b70a2a1

File tree

7 files changed

+42
-38
lines changed

7 files changed

+42
-38
lines changed

CMakeSettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,4 +129,4 @@
129129
"variables": []
130130
}
131131
]
132-
}
132+
}

Source/Tools/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ add_subdirectory(CommonTools)
33
if (NOT MINGW)
44
if (BUILD_FEXCONFIG)
55
find_package(Qt6 COMPONENTS Qml Quick Widgets QUIET)
6-
if (NOT Qt6_FOUND)
6+
if (Qt6_FOUND)
7+
set(QT_VERSION_MAJOR 6)
8+
else()
9+
set(QT_VERSION_MAJOR 5)
710
find_package(Qt5 COMPONENTS Qml Quick Widgets REQUIRED)
811
endif()
912

Source/Tools/FEXConfig/CMakeLists.txt

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
11
set(CMAKE_AUTOMOC ON)
22

3-
add_executable(FEXConfig)
4-
target_sources(FEXConfig PRIVATE Main.cpp Main.h)
5-
6-
target_link_libraries(FEXConfig PRIVATE Common JemallocDummy)
7-
if (Qt6_FOUND)
8-
qt_add_resources(QT_RESOURCES qml6.qrc)
9-
target_link_libraries(FEXConfig PRIVATE Qt6::Qml Qt6::Quick Qt6::Widgets)
10-
else()
11-
qt_add_resources(QT_RESOURCES qml5.qrc)
12-
target_link_libraries(FEXConfig PRIVATE Qt5::Qml Qt5::Quick Qt5::Widgets)
13-
endif()
14-
target_sources(FEXConfig PRIVATE ${QT_RESOURCES})
3+
add_executable(FEXConfig Main.cpp Main.h)
4+
5+
set(common_qml
6+
main.qml
7+
icon.png)
8+
9+
set(dialog_qml
10+
qt${QT_VERSION_MAJOR}/FileDialog.qml
11+
qt${QT_VERSION_MAJOR}/FolderDialog.qml
12+
qt${QT_VERSION_MAJOR}/MessageDialog.qml)
13+
14+
file(COPY
15+
${common_qml} ${dialog_qml} qml.qrc
16+
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
17+
18+
qt_add_resources(qml_qrc ${CMAKE_CURRENT_BINARY_DIR}/qml.qrc)
19+
target_sources(FEXConfig PRIVATE ${qml_qrc})
20+
21+
target_link_libraries(FEXConfig PRIVATE
22+
Common JemallocDummy
23+
Qt${QT_VERSION_MAJOR}::Qml
24+
Qt${QT_VERSION_MAJOR}::Quick
25+
Qt${QT_VERSION_MAJOR}::Widgets)
1526

1627
if (CMAKE_BUILD_TYPE MATCHES "RELEASE")
1728
target_link_options(FEXConfig

Source/Tools/FEXConfig/Main.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -401,9 +401,10 @@ ConfigRuntime::ConfigRuntime(const QString& ConfigFilename) {
401401
qmlRegisterSingletonInstance<ConfigModel>("FEX.ConfigModel", 1, 0, "ConfigModel", &ConfigModelInst);
402402
qmlRegisterSingletonInstance<HostLibsModel>("FEX.HostLibsModel", 1, 0, "HostLibsModel", &HostLibs);
403403
qmlRegisterSingletonInstance<RootFSModel>("FEX.RootFSModel", 1, 0, "RootFSModel", &RootFSList);
404-
Engine.load(QUrl("qrc:/main.qml"));
405404

406-
Window = qobject_cast<QQuickWindow*>(Engine.rootObjects().first());
405+
Engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
406+
407+
Window = qobject_cast<QQuickWindow*>(Engine.rootObjects().at(0));
407408
if (!ConfigFilename.isEmpty()) {
408409
Window->setProperty("configFilename", QUrl::fromLocalFile(ConfigFilename));
409410
} else {

Source/Tools/FEXConfig/qml.qrc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<RCC>
2+
<qresource prefix="/">
3+
<file>main.qml</file>
4+
<file>icon.png</file>
5+
</qresource>
6+
<qresource prefix="/dialogs">
7+
<file>FileDialog.qml</file>
8+
<file>FolderDialog.qml</file>
9+
<file>MessageDialog.qml</file>
10+
</qresource>
11+
</RCC>

Source/Tools/FEXConfig/qml5.qrc

Lines changed: 0 additions & 11 deletions
This file was deleted.

Source/Tools/FEXConfig/qml6.qrc

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)