diff --git a/src/plugins/lua/bindings/project.cpp b/src/plugins/lua/bindings/project.cpp index 8c8099c75fb..e104d5c4d66 100644 --- a/src/plugins/lua/bindings/project.cpp +++ b/src/plugins/lua/bindings/project.cpp @@ -28,11 +28,22 @@ void setupProjectModule() sol::table result = lua.create_table(); + result.new_usertype( + "Kit", + sol::no_constructor, + "supportedPlatforms", + [](Kit *kit) { + const auto set = kit->supportedPlatforms(); + return QList(set.constBegin(), set.constEnd()); + }); + result.new_usertype( "RunConfiguration", sol::no_constructor, "runnable", - sol::property(&RunConfiguration::runnable)); + sol::property(&RunConfiguration::runnable), + "kit", + sol::property(&RunConfiguration::kit)); result.new_usertype( "Project", @@ -99,6 +110,9 @@ void setupProjectModule() result["RunMode"] = lua.create_table_with( "Normal", Constants::NORMAL_RUN_MODE, "Debug", Constants::DEBUG_RUN_MODE); + result["Platforms"] = lua.create_table_with( + "Desktop", Utils::Id(Constants::DESKTOP_DEVICE_TYPE)); + return result; }); diff --git a/src/plugins/lua/bindings/utils.cpp b/src/plugins/lua/bindings/utils.cpp index be40b86c627..dcea1688070 100644 --- a/src/plugins/lua/bindings/utils.cpp +++ b/src/plugins/lua/bindings/utils.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -93,6 +94,10 @@ void setupUtilsModule() utils["pid"] = QCoreApplication::applicationPid(); + utils.new_usertype( + "Id", + sol::no_constructor); + auto hostOsInfoType = utils.new_usertype("HostOsInfo"); hostOsInfoType["isWindowsHost"] = &HostOsInfo::isWindowsHost; hostOsInfoType["isMacHost"] = &HostOsInfo::isMacHost; diff --git a/src/plugins/lua/meta/project.lua b/src/plugins/lua/meta/project.lua index 9254e7a7ef6..3c5b568d048 100644 --- a/src/plugins/lua/meta/project.lua +++ b/src/plugins/lua/meta/project.lua @@ -9,8 +9,21 @@ project.RunMode { Debug = "RunConfiguration.DebugRunMode", } +---@enum Platforms +project.Platforms { + Desktop = 0, +} + +---@class Kit +project.Kit = {} + +---Returns the list of supported platforms (device types) for this kit. +---@return [Id] The list of supported platforms (device types) for this kit. +function project.Kit:supportedPlatforms() end + ---@class RunConfiguration ---@field runnable ProcessRunData +---@field kit Kit project.RunConfiguration = {} ---@class Project diff --git a/src/plugins/lua/meta/utils.lua b/src/plugins/lua/meta/utils.lua index 950561133ee..fe0fd376689 100644 --- a/src/plugins/lua/meta/utils.lua +++ b/src/plugins/lua/meta/utils.lua @@ -18,6 +18,9 @@ function utils.waitms_cb(ms, callback) end ---@return QString Arbitrary UUID string. function utils.createUuid() end +---@class Id +utils.Id = {} + ---@class FilePath utils.FilePath = {}