fix(qrc): correct QML resource paths for AUR and release builds

The QML refactor in 1.0.4 used prefix /qml with file paths like
qml/Main.qml, embedding resources at qrc:/qml/qml/Main.qml while
main.cpp loads qrc:/qml/Main.qml. Use prefix / so paths match.

Also derive the displayed app version from CMake PROJECT_VERSION and
add a qrc_resources_test to prevent this regression in CI.
This commit is contained in:
Sebastian Palencsar
2026-06-22 16:13:21 +02:00
parent 72b4c35669
commit a72543090b
6 changed files with 47 additions and 4 deletions

View File

@@ -1,7 +1,7 @@
# Maintainer: Sebastian Palencsar <moin@nerdbear.de>
pkgname=bearwave-git
pkgver=1.0.5
pkgrel=1
pkgrel=2
pkgdesc="KDE-focused desktop internet radio app"
arch=('x86_64')
url="https://github.com/spalencsar/bearwave"

View File

@@ -18,6 +18,10 @@ set(SOURCES
# Create executable
add_executable(bearwave ${SOURCES})
target_compile_definitions(bearwave PRIVATE
BEARWAVE_VERSION="${PROJECT_VERSION}"
)
# Qt Resources
target_sources(bearwave PRIVATE qml.qrc)

View File

@@ -25,7 +25,7 @@ int main(int argc, char *argv[])
QApplication::setApplicationName(QStringLiteral("BearWave"));
QApplication::setDesktopFileName(QStringLiteral("de.nerdbear.bearwave"));
QApplication::setOrganizationName(QStringLiteral("BearWave"));
QApplication::setApplicationVersion(QStringLiteral("1.0.5"));
QApplication::setApplicationVersion(QStringLiteral(BEARWAVE_VERSION));
QApplication app(argc, argv);

View File

@@ -1,5 +1,5 @@
<RCC>
<qresource prefix="/qml">
<qresource prefix="/">
<file>qml/Main.qml</file>
<file>qml/theme/qmldir</file>
<file>qml/theme/BearTheme.qml</file>

View File

@@ -52,3 +52,12 @@ target_link_libraries(radiobrowser_race_test PRIVATE
add_test(NAME radiobrowser_race_test COMMAND radiobrowser_race_test)
set_tests_properties(radiobrowser_race_test PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen")
add_executable(qrc_resources_test
qrc_resources_test.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../src/qml.qrc
)
target_link_libraries(qrc_resources_test PRIVATE Qt6::Core Qt6::Test)
add_test(NAME qrc_resources_test COMMAND qrc_resources_test)

View File

@@ -0,0 +1,30 @@
// Copyright (c) 2026 Sebastian Palencsar
// SPDX-License-Identifier: GPL-3.0-or-later
#include <QFile>
#include <QtTest>
class QrcResourcesTest : public QObject
{
Q_OBJECT
private slots:
void mainQmlIsEmbedded();
void qmlModulesAreEmbedded();
};
void QrcResourcesTest::mainQmlIsEmbedded()
{
QVERIFY2(QFile::exists(QStringLiteral(":/qml/Main.qml")),
"Main UI shell must be available at qrc:/qml/Main.qml");
}
void QrcResourcesTest::qmlModulesAreEmbedded()
{
QVERIFY(QFile::exists(QStringLiteral(":/qml/theme/qmldir")));
QVERIFY(QFile::exists(QStringLiteral(":/qml/components/qmldir")));
QVERIFY(QFile::exists(QStringLiteral(":/assets/app/bearwave.png")));
}
QTEST_APPLESS_MAIN(QrcResourcesTest)
#include "qrc_resources_test.moc"