mirror of
https://github.com/spalencsar/bearwave.git
synced 2026-07-06 14:24:14 +02:00
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:
2
PKGBUILD
2
PKGBUILD
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -51,4 +51,13 @@ 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")
|
||||
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)
|
||||
30
tests/qrc_resources_test.cpp
Normal file
30
tests/qrc_resources_test.cpp
Normal 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"
|
||||
Reference in New Issue
Block a user