diff --git a/README.md b/README.md index 9780f80..bd11994 100644 --- a/README.md +++ b/README.md @@ -56,8 +56,8 @@ Just like all linuxdeploy plugins, the Qt plugin's behavior can be configured so **Qt specific:** - `$QMAKE=/path/to/my/qmake`: use another `qmake` binary to detect paths of plugins and other resources (usually doesn't need to be set manually, most Qt environments ship scripts changing `$PATH`) -- `$EXTRA_QT_PLUGINS=pluginA;pluginB`: Plugins to deploy even if not found automatically by linuxdeploy-plugin-qt - - example: `EXTRA_QT_PLUGINS=svg;` if you want to use the module [QtSvg](https://doc.qt.io/qt-5/qtsvg-index.html) +- `$EXTRA_QT_MODULES=moduleA;moduleB`: Modules to deploy even if not found automatically by linuxdeploy-plugin-qt + - example: `EXTRA_QT_MODULES=svg;` if you want to use the module [QtSvg](https://doc.qt.io/qt-5/qtsvg-index.html) - `$EXTRA_PLATFORM_PLUGINS=platformA;platformB`: Platforms to deploy in addition to `libqxcb.so`. Platform must be available from `QT_INSTALL_PLUGINS/platforms`. QML related: diff --git a/src/main.cpp b/src/main.cpp index 5076d6a..9f0ca45 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -37,9 +37,9 @@ int main(const int argc, const char *const *const argv) { args::HelpFlag help(parser, "help", "Display this help text", {'h', "help"}); args::ValueFlag appDirPath(parser, "appdir path", "Path to an existing AppDir", {"appdir"}); - args::ValueFlagList extraPlugins(parser, "plugin", - "Extra Qt plugin to deploy (specified by name, filename or path)", - {'p', "extra-plugin"}); + args::ValueFlagList extraModules(parser, "module", + "Extra Qt module to deploy (specified by name, filename or path)", + {'m', "extra-module"}); args::Flag pluginType(parser, "", "Print plugin type and exit", {"plugin-type"}); args::Flag pluginApiVersion(parser, "", "Print plugin API version and exit", {"plugin-api-version"}); @@ -199,18 +199,27 @@ int main(const int argc, const char *const *const argv) { }) != libraryNames.end(); }); - std::vector extraPluginsFromEnv; - const auto* const extraPluginsFromEnvData = getenv("EXTRA_QT_PLUGINS"); - if (extraPluginsFromEnvData != nullptr) - extraPluginsFromEnv = linuxdeploy::util::split(std::string(extraPluginsFromEnvData), ';'); + std::vector extraModulesFromEnv; + const auto* const extraModulesFromEnvData = []() -> char* { + auto* ret = getenv("EXTRA_QT_MODULES"); + if (ret == nullptr) { + ret = getenv("EXTRA_QT_PLUGINS"); + if (ret) { + ldLog() << std::endl << LD_WARNING << "Using deprecated EXTRA_QT_PLUGINS env var" << std::endl; + } + } + return ret; + }(); + if (extraModulesFromEnvData != nullptr) + extraModulesFromEnv = linuxdeploy::util::split(std::string(extraModulesFromEnvData), ';'); - for (const auto& pluginsList : {static_cast>(extraPlugins.Get()), extraPluginsFromEnv}) { + for (const auto& modulesList : {static_cast>(extraModules.Get()), extraModulesFromEnv}) { std::copy_if(qtModules.begin(), qtModules.end(), std::back_inserter(extraQtModules), - [&matchesQtModule, &libraryNames, &pluginsList](const QtModule &module) { - return std::find_if(pluginsList.begin(), pluginsList.end(), + [&matchesQtModule, &libraryNames, &modulesList](const QtModule &module) { + return std::find_if(modulesList.begin(), modulesList.end(), [&matchesQtModule, &module](const std::string &libraryName) { return matchesQtModule(libraryName, module); - }) != pluginsList.end(); + }) != modulesList.end(); } ); }