deploy_tool/main.cpp

This commit is contained in:
2021-04-16 20:34:29 +03:00
parent a07e3c506b
commit b7067aae46

View File

@@ -132,7 +132,7 @@ bool fake = false, is_ldd = true, is_deps = false, need_qt = false, make_qt_form
PIString ldd, readelf, objdump, otool, dpkg, nametool, strip, out_dir, qt_dir, out_plugins_dir, dpkg_workdir; 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;
PIStringList styles, lib_dirs, add_libs, platforms, sqldrivers, input_files, plugin_libs, qt_add_libs; PIStringList styles, lib_dirs, add_libs, platforms, sqldrivers, input_files, plugin_libs, qt_add_libs;
PISet<PIString> all_libs, miss_libs, all_deps, frameworks, framework_libs, miss_frameworks, qt_plugins, ignore_libs; PISet<PIString> all_libs, miss_libs, all_deps, frameworks, framework_libs, miss_frameworks, qt_plugins, ignore_libs, qt_libs;
PIMap<PIString, PIStringList> qt_filters; PIMap<PIString, PIStringList> qt_filters;
@@ -183,17 +183,18 @@ PIString execute(const PIString & cmd) {
void checkQtLib(PIString lib) { void checkQtLib(PIString lib) {
PIString pref, suff; PIString base = lib, pref, suff;
if (lib.startsWith("lib")) {pref += "lib"; lib.cutLeft(3);} if (base.startsWith("lib")) {pref += "lib"; base.cutLeft(3);}
if (lib.startsWith("qt5")) {pref += "Qt5"; lib.cutLeft(3);} if (base.startsWith("qt5")) {pref += "Qt5"; base.cutLeft(3);}
if (lib.startsWith("qt" )) {pref += "Qt" ; lib.cutLeft(2);} if (base.startsWith("qt" )) {pref += "Qt" ; base.cutLeft(2);}
if (lib.find('.') >= 0) {suff = lib.right(lib.size_s() - lib.find('.')); lib = lib.left(lib.find('.'));} if (base.find('.') >= 0) {suff = base.right(base.size_s() - base.find('.')); base = base.left(base.find('.'));}
for (int i = 0; ; ++i) { for (int i = 0; ; ++i) {
if (qt_deps[i].lib.isEmpty()) break; if (qt_deps[i].lib.isEmpty()) break;
if (qt_deps[i].lib == lib) { if (qt_deps[i].lib == base) {
qt_plugins << qt_deps[i].plugins; qt_plugins << qt_deps[i].plugins;
//piCout << "add qt plugins" << qt_deps[i].plugins << "now" << qt_plugins; //piCout << "add qt plugins" << qt_deps[i].plugins << "now" << qt_plugins;
need_qt = true; need_qt = true;
qt_libs << lib;
if (make_qt_format) { if (make_qt_format) {
make_qt_format = false; make_qt_format = false;
qt_pref = pref; qt_pref = pref;
@@ -658,16 +659,32 @@ int main(int argc, char * argv[]) {
if (!all_libs[alib]) if (!all_libs[alib])
all_libs << alib; all_libs << alib;
} }
if (need_qt && !is_deps) if (need_qt) {
procQt(); bool need_qt_plugins = true;
if (is_deps) { // if Qt in system, then no plugins copy
PIVector<PIString> qlibs = qt_libs.toVector();
piCout << "check for installed Qt" << qlibs;
piForeach (PIString l, qlibs) {
l = findLib(l);
if (l.isEmpty()) continue;
if (procDpkg(l)) {
piCout << "system Qt found!";
need_qt_plugins = false;
break;
}
}
}
if (need_qt_plugins)
procQt();
}
#ifdef WINDOWS #ifdef WINDOWS
out_dir.replaceAll("/", "\\"); out_dir.replaceAll("/", "\\");
#endif #endif
PIVector<PIString> clibs = all_libs.toVector(); PIVector<PIString> clibs = all_libs.toVector();
piForeach (PIString l, clibs) { piForeach (PIString l, clibs) {
PIFile::FileInfo fi; PIFile::FileInfo fi;
fi.path = l; fi.path = l;
#ifdef WINDOWS #ifdef WINDOWS
l.replaceAll("/", "\\"); l.replaceAll("/", "\\");
#endif #endif