deploy_tool "qt-modules" feature works on Windows (maybe on *nix). On MacOS - no((
This commit is contained in:
@@ -128,8 +128,9 @@ QtDep qt_deps[] = {
|
|||||||
|
|
||||||
|
|
||||||
int depth = 8;
|
int depth = 8;
|
||||||
bool fake = false, is_ldd = true, is_deps = false, need_qt = false;
|
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 ldd, readelf, objdump, otool, dpkg, nametool, strip, out_dir, qt_dir, out_plugins_dir, dpkg_workdir;
|
||||||
|
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;
|
||||||
PIMap<PIString, PIStringList> qt_filters;
|
PIMap<PIString, PIStringList> qt_filters;
|
||||||
@@ -182,17 +183,22 @@ PIString execute(const PIString & cmd) {
|
|||||||
|
|
||||||
|
|
||||||
void checkQtLib(PIString lib) {
|
void checkQtLib(PIString lib) {
|
||||||
if (lib.startsWith("lib")) lib.cutLeft(3);
|
PIString pref, suff;
|
||||||
if (lib.startsWith("qt5")) lib.cutLeft(3);
|
if (lib.startsWith("lib")) {pref += "lib"; lib.cutLeft(3);}
|
||||||
if (lib.startsWith("qt")) lib.cutLeft(2);
|
if (lib.startsWith("qt5")) {pref += "Qt5"; lib.cutLeft(3);}
|
||||||
if (lib.find(".")) lib = lib.left(lib.find("."));
|
if (lib.startsWith("qt" )) {pref += "Qt" ; lib.cutLeft(2);}
|
||||||
//piCout << "checkQt" << lib;
|
if (lib.find('.') >= 0) {suff = lib.right(lib.size_s() - lib.find('.')); lib = lib.left(lib.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 == lib) {
|
||||||
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;
|
||||||
|
if (make_qt_format) {
|
||||||
|
make_qt_format = false;
|
||||||
|
qt_pref = pref;
|
||||||
|
qt_suff = suff;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -485,6 +491,7 @@ int main(int argc, char * argv[]) {
|
|||||||
cli.addArgument("Styles", true);
|
cli.addArgument("Styles", true);
|
||||||
cli.addArgument("Platforms", true);
|
cli.addArgument("Platforms", true);
|
||||||
cli.addArgument("qt-plugins", PIChar('\0'), true);
|
cli.addArgument("qt-plugins", PIChar('\0'), true);
|
||||||
|
cli.addArgument("qt-modules", PIChar('\0'), true);
|
||||||
cli.addArgument("ldd", true);
|
cli.addArgument("ldd", true);
|
||||||
cli.addArgument("Lreadelf", true);
|
cli.addArgument("Lreadelf", true);
|
||||||
cli.addArgument("Wobjdump", true);
|
cli.addArgument("Wobjdump", true);
|
||||||
@@ -620,8 +627,15 @@ int main(int argc, char * argv[]) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
//piCout << files;
|
//piCout << files;
|
||||||
if (depth > 0)
|
if (depth > 0) {
|
||||||
input_files.forEach([&](const PIString & f){procLdd(f);});
|
input_files.forEach([&](const PIString & f){procLdd(f);});
|
||||||
|
qt_add_libs.forEach([&](const PIString & f){
|
||||||
|
PIString l = findLib(qt_pref + f + qt_suff);
|
||||||
|
if (l.isEmpty()) return;
|
||||||
|
procLdd(l, true);
|
||||||
|
checkQtLib(f.toLowerCase());
|
||||||
|
});
|
||||||
|
}
|
||||||
piForeach (PIString & s, add_libs) {
|
piForeach (PIString & s, add_libs) {
|
||||||
if (s.isEmpty()) continue;
|
if (s.isEmpty()) continue;
|
||||||
PIString alib = findLib(s);
|
PIString alib = findLib(s);
|
||||||
|
|||||||
Reference in New Issue
Block a user