Add VxWorks 24.03 build support

Adds mkspec to Qt Version setup data so the vxworks plugin can
recongise if the Qt is built for VxWorks. Adds toolchain file
loading for vxworks cmake.

Task-number: QTBUG-128631
Task-number: QTBUG-128630
Task-number: QTBUG-128627
Task-number: QTBUG-128626
Change-Id: Ia07d133ac56414451c92100bf85f4e7f51515910
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Karim Pinter
2024-10-01 17:26:58 +03:00
parent 137538a994
commit 5da4a80239
3 changed files with 11 additions and 2 deletions

View File

@@ -103,6 +103,8 @@ const char CMAKE_CXX_FLAGS[] = "CMAKE_CXX_FLAGS";
const char CMAKE_CXX_FLAGS_DEBUG[] = "CMAKE_CXX_FLAGS_DEBUG"; const char CMAKE_CXX_FLAGS_DEBUG[] = "CMAKE_CXX_FLAGS_DEBUG";
const char CMAKE_CXX_FLAGS_RELWITHDEBINFO[] = "CMAKE_CXX_FLAGS_RELWITHDEBINFO"; const char CMAKE_CXX_FLAGS_RELWITHDEBINFO[] = "CMAKE_CXX_FLAGS_RELWITHDEBINFO";
const char VXWORKS_DEVICE_TYPE[] = "VxWorks.Device.Type";
namespace Internal { namespace Internal {
class CMakeBuildSettingsWidget : public NamedWidget class CMakeBuildSettingsWidget : public NamedWidget
@@ -1132,6 +1134,11 @@ static bool isWebAssembly(const Kit *k)
return DeviceTypeKitAspect::deviceTypeId(k) == WebAssembly::Constants::WEBASSEMBLY_DEVICE_TYPE; return DeviceTypeKitAspect::deviceTypeId(k) == WebAssembly::Constants::WEBASSEMBLY_DEVICE_TYPE;
} }
static bool isVxWorks(const Kit *k)
{
return DeviceTypeKitAspect::deviceTypeId(k) == VXWORKS_DEVICE_TYPE;
}
static bool isQnx(const Kit *k) static bool isQnx(const Kit *k)
{ {
return DeviceTypeKitAspect::deviceTypeId(k) == Qnx::Constants::QNX_QNX_OS_TYPE; return DeviceTypeKitAspect::deviceTypeId(k) == Qnx::Constants::QNX_QNX_OS_TYPE;
@@ -1556,7 +1563,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
} }
} }
if (isWebAssembly(k) || isQnx(k) || isWindowsARM64(k)) { if (isWebAssembly(k) || isQnx(k) || isWindowsARM64(k) || isVxWorks(k)) {
if (qt && qt->qtVersion().majorVersion() >= 6) if (qt && qt->qtVersion().majorVersion() >= 6)
cmd.addArg(CMAKE_QT6_TOOLCHAIN_FILE_ARG); cmd.addArg(CMAKE_QT6_TOOLCHAIN_FILE_ARG);
} }

View File

@@ -2372,6 +2372,7 @@ QtVersion *QtVersionFactory::createQtVersionFromQMakePath
setup.config = evaluator.values("CONFIG"); setup.config = evaluator.values("CONFIG");
setup.platforms = evaluator.values("QMAKE_PLATFORM"); // It's a list in general. setup.platforms = evaluator.values("QMAKE_PLATFORM"); // It's a list in general.
setup.isQnx = !evaluator.value("QNX_CPUDIR").isEmpty(); setup.isQnx = !evaluator.value("QNX_CPUDIR").isEmpty();
setup.mkspec = mkspec.fileName();
for (QtVersionFactory *factory : factories) { for (QtVersionFactory *factory : factories) {
if (!factory->m_restrictionChecker || factory->m_restrictionChecker(setup)) { if (!factory->m_restrictionChecker || factory->m_restrictionChecker(setup)) {

View File

@@ -38,7 +38,8 @@ protected:
{ {
QStringList platforms; QStringList platforms;
QStringList config; QStringList config;
bool isQnx = false; // eeks... bool isQnx = false; // eeks
QString mkspec;
}; };
void setQtVersionCreator(const std::function<QtVersion *()> &creator); void setQtVersionCreator(const std::function<QtVersion *()> &creator);