deploy_tool
This commit is contained in:
@@ -66,7 +66,7 @@ void usage() {
|
||||
piCout << Green << Bold << "Usage:" << Default << "\"deploy_tool [-hvfC] [--dependencies [--prefix <text>]] "
|
||||
"[--qt-plugins-dir <d>] [-s <search_path>] [--ignore <libs>] [-S <styles>] "
|
||||
"[-l <ldd>] [-D <dpkg>] [--dpkg-workdir <d>] [-L <readelf> | -W <objdump> | -M <otool>] "
|
||||
"[--name-tool <pathS>] [-d <depth>] [-q <qtdir>] [-a <add_libs>] [-S <styles>] "
|
||||
"[--name-tool <pathS>] [--rpath <rpath>] [-d <depth>] [-q <qtdir>] [-a <add_libs>] [-S <styles>] "
|
||||
"[-P <platforms>] [--qt-plugins <d>] [--qt-modules <l>] [--qt-conf-dir <d>] -o <out_path> <file> [<file2> ...]\"" << NewLine;
|
||||
piCout << Green << Bold << "Details:";
|
||||
piCout << Bold << "Debug control";
|
||||
@@ -85,6 +85,7 @@ void usage() {
|
||||
piCout << "--dpkg-workdir <d> " << Green << "- dpkg \"admindir\" path, default \"\"";
|
||||
piCout << "--name-tool <path> " << Green << "- \"install_name_tool\" path, default \"install_name_tool\"";
|
||||
piCout << "--strip <path> " << Green << "- \"strip\" path, default \"strip\"";
|
||||
piCout << "--rpath <rpath> " << Green << "- set rpath for input files to \"rpath\" using \"patchelf\" if non-empty";
|
||||
piCout << "-d <depth> " << Green << "- maximum dependepcies depth, default 8";
|
||||
piCout << "";
|
||||
piCout << Bold << "Qt control";
|
||||
@@ -131,7 +132,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, dpkg_workdir;
|
||||
PIString qt_pref, qt_suff, qt_conf_dir, qt_plugins_dir;
|
||||
PIString qt_pref, qt_suff, qt_conf_dir, qt_plugins_dir, rpath;
|
||||
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, qt_libs;
|
||||
PIMap<PIString, PIStringList> qt_filters;
|
||||
@@ -489,6 +490,13 @@ void patchNameTool() {
|
||||
}
|
||||
|
||||
|
||||
void patchRPath(const PIString & file) {
|
||||
PIString cmd = "patchelf --set-rpath \"" + rpath + "\" \"" + file + "\"";
|
||||
piCout << "set rpath" << file << cmd;
|
||||
execute(cmd);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
PICLI cli(argc, argv);
|
||||
//piCout << cli.rawArguments();
|
||||
@@ -513,6 +521,7 @@ int main(int argc, char * argv[]) {
|
||||
cli.addArgument("Wobjdump", true);
|
||||
cli.addArgument("Motool", true);
|
||||
cli.addArgument("name-tool", PIChar('\0'), true);
|
||||
cli.addArgument("rpath", PIChar('\0'), true);
|
||||
cli.addArgument("strip", PIChar('\0'), true);
|
||||
cli.addArgument("Dpkg", true);
|
||||
cli.addArgument("dpkg-workdir", PIChar('\0'), true);
|
||||
@@ -539,6 +548,7 @@ int main(int argc, char * argv[]) {
|
||||
otool = cli.argumentValue("Motool");
|
||||
nametool = cli.argumentValue("name-tool");
|
||||
strip = cli.argumentValue("strip");
|
||||
rpath = cli.argumentValue("rpath");
|
||||
if (nametool.isEmpty())
|
||||
nametool = "install_name_tool";
|
||||
if (strip.isEmpty())
|
||||
@@ -642,6 +652,13 @@ int main(int argc, char * argv[]) {
|
||||
input_files << a;
|
||||
}
|
||||
});
|
||||
|
||||
if (!rpath.isEmpty()) {
|
||||
input_files.forEach([&](const PIString & f){
|
||||
patchRPath(f);
|
||||
});
|
||||
}
|
||||
|
||||
//piCout << files;
|
||||
if (depth > 0) {
|
||||
input_files.forEach([&](const PIString & f){procLdd(f);});
|
||||
|
||||
Reference in New Issue
Block a user