diff --git a/utils/deploy_tool/main.cpp b/utils/deploy_tool/main.cpp index ae259943..f3f8075b 100644 --- a/utils/deploy_tool/main.cpp +++ b/utils/deploy_tool/main.cpp @@ -67,7 +67,7 @@ void usage() { "[-p ] [-s ] [--ignore ] [-S ] " "[-l ] [-D ] [--dpkg-workdir ] [-L | -W | -M ] " "[--name-tool ] [-d ] [-q ] [-a ] [-S ] " - "[-P ] [--qt-plugins ] [--qt-modules ] -o [ ...]\"" << NewLine; + "[-P ] [--qt-plugins ] [--qt-modules ] [--qt-conf-dir ] -o [ ...]\"" << NewLine; piCout << Green << Bold << "Details:"; piCout << Bold << "Debug control"; piCout << "-h, --help " << Green << "- display this message and exit"; @@ -93,6 +93,7 @@ void usage() { piCout << "-P " << Green << "- set Qt platforms (e.g. \"win,mini\"), default by host system"; piCout << "--qt-plugins " << Green << "- set Qt plugins description"; piCout << "--qt-modules " << Green << "- additional Qt modules, may be separated by \"" DELIM "\" (e.g. \"Sql" DELIM "Xml\")"; + piCout << "--qt-conf-dir " << Green << "- dir where place \"qt.conf\", if empty place to out_path"; piCout << ""; piCout << Bold << "Output control"; piCout << "-o " << Green << "- path for libraries copy to"; @@ -130,7 +131,7 @@ QtDep qt_deps[] = { int depth = 8; bool fake = false, is_ldd = true, is_deps = false, need_qt = false, make_qt_format = true; PIString ldd, readelf, objdump, otool, dpkg, nametool, strip, out_dir, qt_dir, out_plugins_dir, dpkg_workdir; -PIString qt_pref, qt_suff; +PIString qt_pref, qt_suff, qt_conf_dir; PIStringList styles, lib_dirs, add_libs, platforms, sqldrivers, input_files, plugin_libs, qt_add_libs; PISet all_libs, miss_libs, all_deps, frameworks, framework_libs, miss_frameworks, qt_plugins, ignore_libs, qt_libs; PIMap qt_filters; @@ -506,6 +507,7 @@ int main(int argc, char * argv[]) { cli.addArgument("Platforms", true); cli.addArgument("qt-plugins", PIChar('\0'), true); cli.addArgument("qt-modules", PIChar('\0'), true); + cli.addArgument("qt-conf-dir", PIChar('\0'), true); cli.addArgument("ldd", true); cli.addArgument("Lreadelf", true); cli.addArgument("Wobjdump", true); @@ -613,6 +615,9 @@ int main(int argc, char * argv[]) { qt_filters["styles" ] = styles ; qt_add_libs = cli.argumentValue("qt-modules").split(DELIM); + qt_conf_dir = cli.argumentValue("qt-conf-dir").trim(); + if (qt_conf_dir.isEmpty()) qt_conf_dir = out_dir; + if (!qt_conf_dir.endsWith("/")) qt_conf_dir += "/"; need_qt = !qt_add_libs.isEmpty(); auto it = qt_filters.makeIterator(); @@ -674,8 +679,14 @@ int main(int argc, char * argv[]) { } } } - if (need_qt_plugins) + if (need_qt_plugins) { procQt(); + if (!ldd.isEmpty() || !readelf.isEmpty()) { // qt.conf for Linux + PIFile qtc(qt_conf_dir + "qt.conf", PIIODevice::ReadWrite); + qtc.clear(); + qtc << "[Paths]\n\tPlugins = lib/\n\tTranslations = lang/\n"; + } + } } #ifdef WINDOWS