qt 6.6.0 clean

This commit is contained in:
kleuter
2023-11-01 22:23:55 +01:00
parent 7b5ada15e7
commit 5d8194efa7
1449 changed files with 134276 additions and 31391 deletions

View File

@ -0,0 +1,85 @@
# Copyright (C) 2023 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT)
cmake_minimum_required(VERSION 3.16)
project(tst_android_deployment_settings LANGUAGES CXX)
find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST)
endif()
function(tst_generate_android_deployment_setting target)
# Qt build always use new property format that supports generator expressions. In this test we
# want to test user scenario so disable all Qt specific options to make sure that
# qt6_android_generate_deployment_settings behave like in user projects.
set(QT_BUILD_STANDALONE_TESTS FALSE)
set(QT_BUILDING_QT FALSE)
set(QT_INTERNAL_IS_STANDALONE_TEST FALSE)
qt6_android_generate_deployment_settings(${target})
endfunction()
qt6_policy(SET QTP0002 NEW)
set(target tst_android_deployment_settings_new)
qt6_add_executable(${target} MANUAL_FINALIZATION EXCLUDE_FROM_ALL noop.cpp)
set_target_properties(${target} PROPERTIES
my_package_source_dir "path/to/source/dir"
my_libs_property "some/path/to/lib2.so;some/path/to/lib3.so"
my_plugins_property "some/path/to/plugin2.so;some/path/to/plugin3.so"
QT_ANDROID_SDK_BUILD_TOOLS_REVISION "23.0.2"
QT_ANDROID_MIN_SDK_VERSION "1"
QT_ANDROID_TARGET_SDK_VERSION "2"
QT_ANDROID_DEPLOYMENT_DEPENDENCIES "dep1.so;dep2.so;dep3.so"
QT_ANDROID_DEPLOYMENT_SETTINGS_FILE "attempt_to_rewrite.json"
QT_ANDROID_EXTRA_LIBS
"some/path/to/lib1.so;$<TARGET_PROPERTY:${target},my_libs_property>;some/path/to/lib4.so"
QT_ANDROID_EXTRA_PLUGINS
"some/path/to/plugin1.so;$<TARGET_PROPERTY:${target},my_plugins_property>"
QT_ANDROID_PACKAGE_SOURCE_DIR "$<TARGET_PROPERTY:${target},my_package_source_dir>"
QT_ANDROID_SYSTEM_LIBS_PREFIX "myLibPrefix"
# Make sure that this property is overwritten by
# qt6_android_generate_deployment_settings
QT_ANDROID_DEPLOYMENT_SETTINGS_FILE "custom_deployment_settings.json"
)
tst_generate_android_deployment_setting(${target})
qt6_policy(SET QTP0002 OLD)
set(target tst_android_deployment_settings_old)
qt6_add_executable(${target} MANUAL_FINALIZATION EXCLUDE_FROM_ALL noop.cpp)
set_target_properties(${target} PROPERTIES
QT_ANDROID_SDK_BUILD_TOOLS_REVISION "23.0.2"
QT_ANDROID_MIN_SDK_VERSION "1"
QT_ANDROID_TARGET_SDK_VERSION "2"
QT_ANDROID_DEPLOYMENT_DEPENDENCIES "dep1.so;dep2.so;dep3.so"
QT_ANDROID_EXTRA_LIBS
"some/path/to/lib1.so;some/path\\to/lib2.so;some\\path\\to\\lib3.so;some/path/to/lib4.so"
QT_ANDROID_EXTRA_PLUGINS
"some\\path\\to\\plugin1.so;some/path\\to/plugin2.so;some/path/to/plugin3.so"
QT_ANDROID_PACKAGE_SOURCE_DIR "path\\to/source\\dir"
QT_ANDROID_SYSTEM_LIBS_PREFIX "myLibPrefix"
)
tst_generate_android_deployment_setting(${target})
get_target_property(new_settings
tst_android_deployment_settings_new QT_ANDROID_DEPLOYMENT_SETTINGS_FILE)
get_target_property(old_settings
tst_android_deployment_settings_old QT_ANDROID_DEPLOYMENT_SETTINGS_FILE)
set_source_files_properties("${new_settings}" PROPERTIES QT_RESOURCE_ALIAS "new_settings.json")
set_source_files_properties("${old_settings}" PROPERTIES QT_RESOURCE_ALIAS "old_settings.json")
qt_internal_add_test(tst_android_deployment_settings
SOURCES
tst_android_deployment_settings.cpp
DEFINES
DEFAULT_ABI="${CMAKE_ANDROID_ARCH_ABI}"
)
qt6_add_resources(tst_android_deployment_settings
"deployment_settings_res"
PREFIX
"/"
FILES
"${new_settings}"
"${old_settings}"
)

View File

@ -0,0 +1,7 @@
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
int main(int, char *[])
{
return 0;
}

View File

@ -0,0 +1,112 @@
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QJsonDocument>
#include <QJsonObject>
#include <QFile>
#include <QTest>
#include <QLibraryInfo>
#include <QDir>
class tst_android_deployment_settings : public QObject
{
Q_OBJECT
private slots:
void initTestCase_data();
void init();
void DeploymentSettings_data();
void DeploymentSettings();
void QtPaths_data();
void QtPaths();
private:
static QString makePath(QLibraryInfo::LibraryLocation loc);
QJsonDocument jsonDoc;
};
QString tst_android_deployment_settings::makePath(QLibraryInfo::LibraryLocation loc)
{
const auto prefix = QLibraryInfo::path(QLibraryInfo::PrefixPath);
auto path = QLibraryInfo::path(loc);
path.remove(0, prefix.size() + 1);
if (path.isEmpty()) // Assume that if path is empty it's '.'
path = ".";
return path;
}
void tst_android_deployment_settings::initTestCase_data()
{
QTest::addColumn<QString>("file");
QTest::newRow("old") << ":/old_settings.json";
QTest::newRow("new") << ":/new_settings.json";
}
void tst_android_deployment_settings::init()
{
QFETCH_GLOBAL(QString, file);
QFile settings(file);
QVERIFY(settings.open(QIODeviceBase::ReadOnly));
jsonDoc = QJsonDocument::fromJson(settings.readAll());
QVERIFY(!jsonDoc.isNull());
}
void tst_android_deployment_settings::DeploymentSettings_data()
{
QTest::addColumn<QString>("key");
QTest::addColumn<QString>("value");
QTest::newRow("sdkBuildToolsRevision") << "sdkBuildToolsRevision"
<< "23.0.2";
QTest::newRow("deployment-dependencies") << "deployment-dependencies"
<< "dep1.so,dep2.so,dep3.so";
QTest::newRow("android-extra-plugins")
<< "android-extra-plugins"
<< "some/path/to/plugin1.so,some/path/to/plugin2.so,some/path/to/plugin3.so";
QTest::newRow("android-extra-libs") << "android-extra-libs"
<< "some/path/to/lib1.so,some/path/to/lib2.so,some/path/to/"
"lib3.so,some/path/to/lib4.so";
QTest::newRow("android-system-libs-prefix") << "android-system-libs-prefix"
<< "myLibPrefix";
QTest::newRow("android-package-source-directory") << "android-package-source-directory"
<< "path/to/source/dir";
QTest::newRow("android-min-sdk-version") << "android-min-sdk-version"
<< "1";
QTest::newRow("android-target-sdk-version") << "android-target-sdk-version"
<< "2";
}
void tst_android_deployment_settings::DeploymentSettings()
{
QFETCH(QString, key);
QFETCH(QString, value);
QCOMPARE(jsonDoc[key].toString(), value);
}
void tst_android_deployment_settings::QtPaths_data()
{
QTest::addColumn<QString>("key");
QTest::addColumn<QString>("value");
QTest::newRow("qtDataDirectory") << "qtDataDirectory" << makePath(QLibraryInfo::DataPath);
QTest::newRow("qtLibExecsDirectory")
<< "qtLibExecsDirectory" << makePath(QLibraryInfo::LibraryExecutablesPath);
QTest::newRow("qtLibsDirectory") << "qtLibsDirectory" << makePath(QLibraryInfo::LibrariesPath);
QTest::newRow("qtPluginsDirectory")
<< "qtPluginsDirectory" << makePath(QLibraryInfo::PluginsPath);
QTest::newRow("qtQmlDirectory") << "qtQmlDirectory" << makePath(QLibraryInfo::QmlImportsPath);
}
void tst_android_deployment_settings::QtPaths()
{
QFETCH(QString, key);
QFETCH(QString, value);
QCOMPARE(QDir::cleanPath(jsonDoc[key].toObject()[DEFAULT_ABI].toString()),
QDir::cleanPath(value));
}
QTEST_MAIN(tst_android_deployment_settings)
#include "tst_android_deployment_settings.moc"