git-svn-id: svn://db.shs.com.ru/pip@1011 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -336,6 +336,8 @@ END
|
||||
endmacro()
|
||||
|
||||
|
||||
# Help macros begin
|
||||
|
||||
macro(__add_file_or_dir _DIR_VAR _FILE_VAR _PATH _RELPATH)
|
||||
set(_p)
|
||||
if (IS_ABSOLUTE "${_PATH}")
|
||||
@@ -352,6 +354,64 @@ macro(__add_file_or_dir _DIR_VAR _FILE_VAR _PATH _RELPATH)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
set(__win_host 0)
|
||||
if ("x${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "xWindows")
|
||||
set(__win_host 1)
|
||||
endif()
|
||||
|
||||
macro(__make_win_path _in_path _out_var _is_dir _out_dir)
|
||||
set(_add "")
|
||||
if (${_is_dir})
|
||||
set(_add "/")
|
||||
endif()
|
||||
file(TO_NATIVE_PATH "${_in_path}" ${_out_var})
|
||||
string(REPLACE "//" "/" ${_out_var} "${${_out_var}}${_add}")
|
||||
if (NOT "x${_out_dir}" STREQUAL "x")
|
||||
string(LENGTH "${${_out_var}}" __sl)
|
||||
math(EXPR __sl ${__sl}-1)
|
||||
string(SUBSTRING "${${_out_var}}" 0 ${__sl} __substr)
|
||||
get_filename_component(${_out_dir} "${__substr}" NAME)
|
||||
#message("dirname src=\"${${_out_var}}\", len=${__sl} \"${__substr}\" = \"${${_out_dir}}\"")
|
||||
endif()
|
||||
string(REPLACE "/" "\\" ${_out_var} "${${_out_var}}")
|
||||
endmacro()
|
||||
|
||||
macro(__make_dir _cmd _dest)
|
||||
if (__win_host)
|
||||
__make_win_path("${_dest}" __d 1 "")
|
||||
set(${_cmd} ${${_cmd}} COMMAND if not exist "\"${__d}\"" mkdir "\"${__d}\"")
|
||||
else()
|
||||
set(${_cmd} ${${_cmd}} COMMAND mkdir ${_VERB} -p "${_dest}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(__make_copy _cmd _dirs _files _dest)
|
||||
if (${_dirs} OR ${_files})
|
||||
__make_dir(${_cmd} "${_dest}")
|
||||
endif()
|
||||
if (__win_host)
|
||||
__make_win_path("${_dest}" _wdest 1 "")
|
||||
foreach(_d ${${_dirs}})
|
||||
__make_win_path("${_d}" _wsrc 1 _dirname)
|
||||
__make_dir(${_cmd} "${_dest}/${_dirname}")
|
||||
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r /e "${_wsrc}*" "\"${_wdest}${_dirname}\\\"" ${_WVERB})
|
||||
endforeach()
|
||||
foreach(_f ${${_files}})
|
||||
__make_win_path("${_f}" _wsrc 0 "")
|
||||
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r "\"${_wsrc}\"" "\"${_wdest}\"" ${_WVERB})
|
||||
endforeach()
|
||||
else()
|
||||
foreach(_d ${${_dirs}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -rf "${_d}" "${_dest}/")
|
||||
endforeach()
|
||||
foreach(_f ${${_files}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -f "${_f}" "${_dest}/")
|
||||
endforeach()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Help macros end
|
||||
|
||||
|
||||
macro(deploy_target _T)
|
||||
set(_DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
@@ -414,7 +474,7 @@ macro(deploy_target _T)
|
||||
endif()
|
||||
endforeach()
|
||||
#message("app depend libpath ${_DEP_LIBPATH}")
|
||||
set(_CMD_COPY)
|
||||
set(_CMD_)
|
||||
set(_has_deploy 0)
|
||||
if ("x${CMAKE_SYSTEM_NAME}" STREQUAL "xLinux")
|
||||
if (NOT CMAKE_LDD)
|
||||
@@ -444,25 +504,14 @@ macro(deploy_target _T)
|
||||
set(_C_echo ">>" "${_AGD}/DEBIAN/control")
|
||||
set(_D_echof ">" "${_AGD}/usr/share/applications/${_DEBNAME}.desktop")
|
||||
set(_D_echo ">>" "${_AGD}/usr/share/applications/${_DEBNAME}.desktop")
|
||||
macro(__make_copy _cmd _dirs _files _dest)
|
||||
if (${_dirs} OR ${_files})
|
||||
set(${_cmd} ${${_cmd}} COMMAND mkdir ${_VERB} -p "${_dest}")
|
||||
endif()
|
||||
foreach(_d ${${_dirs}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -rf "${_d}" "${_dest}/")
|
||||
endforeach()
|
||||
foreach(_f ${${_files}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -f "${_f}" "${_dest}/")
|
||||
endforeach()
|
||||
endmacro()
|
||||
__make_copy(_CMD_COPY _RES_DIRS _RES_FILES "${_AGD}/usr/share/${${_T}_COMPANY}/${_T}")
|
||||
__make_copy(_CMD_COPY _PLUG_DIRS _PLUG_FILES "${_AGD}/usr/lib/${${_T}_COMPANY}/${_T}")
|
||||
__make_copy(_CMD_COPY _FILE_DIRS _FILE_FILES "${_AGD}/usr/bin")
|
||||
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}/usr/share/${${_T}_COMPANY}/${_T}")
|
||||
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}/usr/lib/${${_T}_COMPANY}/${_T}")
|
||||
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}/usr/bin")
|
||||
if (_DEP_LIBS)
|
||||
set(_CMD_COPY ${_CMD_COPY} COMMAND cp ${_VERB} -f ${_DEP_LIBS} ${_AGD}/usr/lib)
|
||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_DEP_LIBS} ${_AGD}/usr/lib)
|
||||
endif()
|
||||
if (_ICON_NAME)
|
||||
set(_CMD_COPY ${_CMD_COPY} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/usr/share/pixmaps)
|
||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/usr/share/pixmaps)
|
||||
endif()
|
||||
add_custom_target(deploy_${_T}
|
||||
# gather deb dir
|
||||
@@ -472,7 +521,7 @@ macro(deploy_target _T)
|
||||
COMMAND mkdir ${_VERB} -p ${_AGD}/usr/share/pixmaps
|
||||
COMMAND mkdir ${_VERB} -p ${_AGD}/usr/share/applications
|
||||
COMMAND cp ${_VERB} -f ${_DEPLOY_DIR}/${_T} ${_AGD}/usr/bin
|
||||
${_CMD_COPY}
|
||||
${_CMD_}
|
||||
|
||||
COMMAND echo "Package: ${_DEBNAME}" ${_C_echof}
|
||||
COMMAND echo "Version: ${_DEBVERSION}" ${_C_echo}
|
||||
@@ -512,72 +561,20 @@ macro(deploy_target _T)
|
||||
find_program(CMAKE_OBJDUMP objdump)
|
||||
endif()
|
||||
set(_AGD "${_DEPLOY_DIR}/${_TV}_win_${MY_ARCH}/")
|
||||
set(_win_host 0)
|
||||
if ("x${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "xWindows")
|
||||
set(_win_host 1)
|
||||
endif()
|
||||
macro(__make_win_path _in_path _out_var _is_dir _out_dir)
|
||||
set(_add "")
|
||||
if (${_is_dir})
|
||||
set(_add "/")
|
||||
endif()
|
||||
file(TO_NATIVE_PATH "${_in_path}" ${_out_var})
|
||||
string(REPLACE "//" "/" ${_out_var} "${${_out_var}}${_add}")
|
||||
if (NOT "x${_out_dir}" STREQUAL "x")
|
||||
string(LENGTH "${${_out_var}}" __sl)
|
||||
math(EXPR __sl ${__sl}-1)
|
||||
string(SUBSTRING "${${_out_var}}" 0 ${__sl} __substr)
|
||||
get_filename_component(${_out_dir} "${__substr}" NAME)
|
||||
#message("dirname src=\"${${_out_var}}\", len=${__sl} \"${__substr}\" = \"${${_out_dir}}\"")
|
||||
endif()
|
||||
string(REPLACE "/" "\\" ${_out_var} "${${_out_var}}")
|
||||
endmacro()
|
||||
macro(__make_dir _cmd _dest)
|
||||
if (_win_host)
|
||||
__make_win_path("${_dest}" __d 1 "")
|
||||
set(${_cmd} ${${_cmd}} COMMAND if not exist "\"${__d}\"" mkdir "\"${__d}\"")
|
||||
else()
|
||||
set(${_cmd} ${${_cmd}} COMMAND mkdir ${_VERB} -p "${_dest}")
|
||||
endif()
|
||||
endmacro()
|
||||
macro(__make_copy _cmd _dirs _files _dest)
|
||||
if (${_dirs} OR ${_files})
|
||||
__make_dir(${_cmd} "${_dest}")
|
||||
endif()
|
||||
if (_win_host)
|
||||
__make_win_path("${_dest}" _wdest 1 "")
|
||||
foreach(_d ${${_dirs}})
|
||||
__make_win_path("${_d}" _wsrc 1 _dirname)
|
||||
__make_dir(${_cmd} "${_dest}/${_dirname}")
|
||||
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r "${_wsrc}*" "\"${_wdest}${_dirname}\\\"" ${_WVERB})
|
||||
endforeach()
|
||||
foreach(_f ${${_files}})
|
||||
__make_win_path("${_f}" _wsrc 0 "")
|
||||
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r "\"${_wsrc}\"" "\"${_wdest}\"" ${_WVERB})
|
||||
endforeach()
|
||||
else()
|
||||
foreach(_d ${${_dirs}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -rf "${_d}" "${_dest}/")
|
||||
endforeach()
|
||||
foreach(_f ${${_files}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -f "${_f}" "${_dest}/")
|
||||
endforeach()
|
||||
endif()
|
||||
endmacro()
|
||||
if (_win_host)
|
||||
if (__win_host)
|
||||
string(REPLACE "/" "\\" CMAKE_OBJDUMP "${CMAKE_OBJDUMP}")
|
||||
endif()
|
||||
set(_var_exe "${_DEPLOY_DIR}/${_T}.exe")
|
||||
set(_var_empty)
|
||||
__make_dir(_CMD_COPY "${_AGD}")
|
||||
__make_dir(_CMD_COPY "${_DESTINATION}")
|
||||
__make_copy(_CMD_COPY _var_empty _var_exe "${_AGD}")
|
||||
__make_copy(_CMD_COPY _RES_DIRS _RES_FILES "${_AGD}")
|
||||
__make_copy(_CMD_COPY _PLUG_DIRS _PLUG_FILES "${_AGD}")
|
||||
__make_copy(_CMD_COPY _FILE_DIRS _FILE_FILES "${_AGD}")
|
||||
__make_dir(_CMD_ "${_AGD}")
|
||||
__make_dir(_CMD_ "${_DESTINATION}")
|
||||
__make_copy(_CMD_ _var_empty _var_exe "${_AGD}")
|
||||
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}")
|
||||
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}")
|
||||
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}")
|
||||
add_custom_target(deploy_${_T}
|
||||
# gather dir
|
||||
${_CMD_COPY}
|
||||
${_CMD_}
|
||||
|
||||
COMMAND deploy_tool ${_VERB} ${_OPTIONS} -W "\"${CMAKE_OBJDUMP}\"" -P windows,minimal -S windows -q "\"${Qt5_ROOT}\"" -s "\"${CMAKE_PREFIX_PATH}/bin;${MINGW_BIN};${DEPLOY_ADD_LIBPATH}${_DEP_LIBPATH}\"" -o ${_AGD} -p ${_AGD} "\"${_AGD}${_T}.exe\"" ${_ADD_DEPS}
|
||||
# zip
|
||||
@@ -599,29 +596,18 @@ macro(deploy_target _T)
|
||||
set_target_properties(${_T} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_ROOT}/Modules/PIMacOSBundle.plist.in")
|
||||
set(_AGD "${_DEPLOY_DIR}/${_T}.app")
|
||||
set(_DMG "${CMAKE_CURRENT_BINARY_DIR}/dmg")
|
||||
macro(__make_copy _cmd _dirs _files _dest)
|
||||
if (${_dirs} OR ${_files})
|
||||
set(${_cmd} ${${_cmd}} COMMAND mkdir ${_VERB} -p "${_dest}")
|
||||
endif()
|
||||
foreach(_d ${${_dirs}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -rf "${_d}" "${_dest}/")
|
||||
endforeach()
|
||||
foreach(_f ${${_files}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -f "${_f}" "${_dest}/")
|
||||
endforeach()
|
||||
endmacro()
|
||||
__make_copy(_CMD_COPY _RES_DIRS _RES_FILES "${_AGD}/Contents/Resources")
|
||||
__make_copy(_CMD_COPY _PLUG_DIRS _PLUG_FILES "${_AGD}/Contents/PlugIns")
|
||||
__make_copy(_CMD_COPY _FILE_DIRS _FILE_FILES "${_AGD}/Contents/MacOS")
|
||||
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}/Contents/Resources")
|
||||
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}/Contents/PlugIns")
|
||||
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}/Contents/MacOS")
|
||||
if (_ICON_NAME)
|
||||
set(_CMD_COPY ${_CMD_COPY} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/Contents/Resources)
|
||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/Contents/Resources)
|
||||
endif()
|
||||
add_custom_target(deploy_${_T}
|
||||
# gather .app dir
|
||||
COMMAND mkdir ${_VERB} -p ${_AGD}/Contents/Resources
|
||||
COMMAND mkdir ${_VERB} -p ${_AGD}/Contents/Frameworks
|
||||
COMMAND mkdir ${_VERB} -p ${_DESTINATION}
|
||||
${_CMD_COPY}
|
||||
${_CMD_}
|
||||
#COMMAND cp ${_ICON_FN} ${_AGD}/Contents/Resources
|
||||
#COMMAND cp -r ${_DEPLOY_DIR}/lang ${_AGD}/Contents/Resources
|
||||
COMMAND deploy_tool ${_VERB} ${_OPTIONS} -M "${CMAKE_OTOOL}" -P cocoa,minimal -S mac -q ${Qt5_ROOT} -s "\"${CMAKE_PREFIX_PATH}/lib;${DEPLOY_ADD_LIBPATH}${_DEP_LIBPATH}\"" -o ${_AGD}/Contents/Frameworks -p ${_AGD}/Contents/PlugIns ${_AGD}/Contents/MacOS/${_T} ${_ADD_DEPS}
|
||||
@@ -636,20 +622,77 @@ macro(deploy_target _T)
|
||||
)
|
||||
set(_has_deploy 1)
|
||||
elseif (DEFINED ANDROID_PLATFORM)
|
||||
set(_AT ${_T})
|
||||
get_target_property(_TT ${_T} TYPE)
|
||||
if (NOT "x${_TT}" STREQUAL "xSHARED_LIBRARY")
|
||||
set(_AT ${_T}_lib)
|
||||
get_target_property(_sources ${_T} SOURCES)
|
||||
get_target_property(_libs ${_T} LINK_LIBRARIES)
|
||||
get_target_property(_incs ${_T} INCLUDE_DIRECTORIES)
|
||||
add_library(${_AT} SHARED ${_sources})
|
||||
target_link_libraries(${_AT} ${_libs})
|
||||
target_include_directories(${_AT} PRIVATE ${_incs})
|
||||
message("create new target ${_AT} ${_sources} ${_libs}")
|
||||
endif()
|
||||
set(_AT ${_T}_lib)
|
||||
set(_ATA ${_AT}_${ANDROID_ABI})
|
||||
get_target_property(_sources ${_T} SOURCES)
|
||||
get_target_property(_libs ${_T} LINK_LIBRARIES)
|
||||
get_target_property(_incs ${_T} INCLUDE_DIRECTORIES)
|
||||
add_library(${_ATA} SHARED ${_sources})
|
||||
target_link_libraries(${_ATA} ${_libs})
|
||||
target_include_directories(${_ATA} PRIVATE ${_incs})
|
||||
set_target_properties(${_T} PROPERTIES EXCLUDE_FROM_ALL 1)
|
||||
#message("create new target ${_ATA} ${_sources} ${_libs}")
|
||||
set(_AGD "${_DEPLOY_DIR}/${_T}.android")
|
||||
set(_file)
|
||||
__make_dir(_CMD_ "${_AGD}")
|
||||
set(_dir "${CMAKE_BINARY_DIR}/android-build/libs")
|
||||
__make_copy(_CMD_ _dir _file "${_AGD}")
|
||||
set(_dir "${CMAKE_CURRENT_SOURCE_DIR}/android/res")
|
||||
__make_copy(_CMD_ _dir _file "${_AGD}")
|
||||
set(_dir "${CMAKE_CURRENT_SOURCE_DIR}/android/src")
|
||||
__make_copy(_CMD_ _dir _file "${_AGD}")
|
||||
set(_dir)
|
||||
set(_file "${Qt5_ROOT}/src/android/templates/res/values/libs.xml")
|
||||
__make_copy(_CMD_ _dir _file "${_AGD}/res/values")
|
||||
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}/res")
|
||||
#__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}/")
|
||||
#__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}/Contents/MacOS")
|
||||
message("bindir = ${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
#get_target_property(_LL ${_T} )
|
||||
add_custom_target(deploy_${_T})
|
||||
set(__archs "armeabi-v7a" "arm64-v8a" "x86" "x86_64")
|
||||
set(QT_ANDROID_ARCHITECTURES)
|
||||
find_library(_lib_ c++_shared)
|
||||
foreach (_a ${__archs})
|
||||
set(_aname "${_a}")
|
||||
if ("${_a}" STREQUAL "armeabi-v7a")
|
||||
set(_aname "arm")
|
||||
elseif ("${_a}" STREQUAL "arm64-v8a")
|
||||
set(_aname "arm64")
|
||||
endif()
|
||||
set(_exist 0)
|
||||
if ("${_a}" STREQUAL "${ANDROID_ABI}")
|
||||
set(_exist 1)
|
||||
elseif (EXISTS "${CMAKE_BINARY_DIR}/android-build/libs/${_a}")
|
||||
set(_exist 1)
|
||||
endif()
|
||||
if (_exist)
|
||||
string(REPLACE "${ANDROID_ABI}" "${_a}" _a_prefix "${CMAKE_PREFIX_PATH}")
|
||||
string(REPLACE "arch-${ANDROID_ARCH_NAME}" "arch-${_aname}" _a_prefix "${_a_prefix}")
|
||||
list(APPEND QT_ANDROID_ARCHITECTURES " \"${_a}\" : \"${ANDROID_SYSROOT_${_a}}\"")
|
||||
string(REPLACE "${ANDROID_SYSROOT_${ANDROID_ABI}}" "${ANDROID_SYSROOT_${_a}}" _lib_${_a} "${_lib_}")
|
||||
#message("search = ${_a_prefix}/lib")
|
||||
__make_copy(_CMD_ _empty _lib_${_a} "${_AGD}/libs/${_a}")
|
||||
set(_CMD_ ${_CMD_} COMMAND deploy_tool ${_VERB} ${_OPTIONS} -L "\"${CMAKE_READELF}\"" -s "\"${_a_prefix}/lib\"" -o "\"${_AGD}/libs/${_a}\"" --ignore "\"c:m:dl\"" "\"${_AGD}/libs/${_a}/lib${_AT}_${_a}.so\"" ${_ADD_DEPS})
|
||||
#message("c++_${_a} -> ${_lib_${_a}}")
|
||||
endif()
|
||||
endforeach()
|
||||
string(REPLACE ";" ",\n" QT_ANDROID_ARCHITECTURES "${QT_ANDROID_ARCHITECTURES}")
|
||||
set(QT_ANDROID_APPLICATION_BINARY ${_AT})
|
||||
set(ANDROID_LABEL "${${_T}_LABEL}")
|
||||
set(ANDROID_ICON "${${_T}_ICON}")
|
||||
set(ANDROID_VERSION "${${_T}_VERSION}")
|
||||
set(ANDROID_BUILD "${${_T}_VERSION_BUILD}")
|
||||
set(ANDROID_PACKAGE "${${_T}_FULLNAME}")
|
||||
set(QT_DIR ${Qt5_ROOT})
|
||||
set(_out_json "${CMAKE_CURRENT_BINARY_DIR}/${_T}_android_deployment_settings.json")
|
||||
configure_file("${CMAKE_BINARY_DIR}/android_deployment_settings.json.in" "${_out_json}")
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/android/AndroidManifest.xml.in" "${_AGD}/AndroidManifest.xml")
|
||||
set(_CMD_ ${_CMD_} COMMAND "${Qt5_BIN}/androiddeployqt" --aux-mode --android-platform ${ANDROID_PLATFORM} --output "\"${_AGD}\"" --input "\"${_out_json}\"")
|
||||
add_custom_target(deploy_${_T}
|
||||
# gather .app dir
|
||||
${_CMD_}
|
||||
COMMENT "Generating ${_TV}.apk/aab"
|
||||
)
|
||||
set(_has_deploy 1)
|
||||
endif()
|
||||
if (_has_deploy)
|
||||
|
||||
@@ -43,8 +43,8 @@ void usage() {
|
||||
piCout << "\"*=\" disable optional plugins.";
|
||||
piCout << "";
|
||||
piCout << Green << Bold << "Usage:" << Default << "\"deploy_tool [-hvfC] [--dependencies [--prefix <text>]] "
|
||||
"[-p <qt_plugins>] [-s <search_path>] [-S <styles>] [-l <ldd>] "
|
||||
"[-D <dpkg>] [-L <readelf> | -W <objdump> | -M <otool>] "
|
||||
"[-p <qt_plugins>] [-s <search_path>] [--ignore <libs>] [-S <styles>] "
|
||||
"[-l <ldd>] [-D <dpkg>] [-L <readelf> | -W <objdump> | -M <otool>] "
|
||||
"[-d <depth>] [-q <qtdir>] [-a <add_libs>] [-S <styles>] "
|
||||
"[-P <platforms>] [--qt-plugins <d>] -o <out_path> <file> [<file2> ...]\"" << NewLine;
|
||||
piCout << Green << Bold << "Details:";
|
||||
@@ -55,6 +55,7 @@ void usage() {
|
||||
piCout << Bold << "Processing control";
|
||||
piCout << "-f, --fake " << Green << "- don`t copy, only print";
|
||||
piCout << "-s <search_path> " << Green << "- set search pathes for system libraries, may be separated by \";\", default \"/usr/lib\"";
|
||||
piCout << "--ignore <libs> " << Green << "- ignore libraries names, may be separated by \":\", default \"\"";
|
||||
piCout << "-l <ldd> " << Green << "- \"ldd\" path, default \"/usr/bin/ldd\"";
|
||||
piCout << "-L <readelf> " << Green << "- \"readelf\" path, overrides \"ldd\"";
|
||||
piCout << "-W <objdump> " << Green << "- \"objdump\" path, overrides \"ldd\"";
|
||||
@@ -107,7 +108,7 @@ int depth = 5;
|
||||
bool fake = false, is_ldd = true, is_deps = false, need_qt = false;
|
||||
PIString ldd, readelf, objdump, otool, dpkg, out_dir, qt_dir, out_plugins_dir;
|
||||
PIStringList styles, lib_dirs, add_libs, platforms, sqldrivers;
|
||||
PISet<PIString> all_libs, miss_libs, all_deps, frameworks, miss_frameworks, qt_plugins;
|
||||
PISet<PIString> all_libs, miss_libs, all_deps, frameworks, miss_frameworks, qt_plugins, ignore_libs;
|
||||
PIMap<PIString, PIStringList> qt_filters;
|
||||
|
||||
|
||||
@@ -247,6 +248,12 @@ void procLdd(PIString file, bool ext_lib = false, int cur_depth = 0) {
|
||||
if (all_libs[l]) continue;
|
||||
PIFile::FileInfo fi;
|
||||
fi.path = l;
|
||||
PIString lname = fi.baseName();
|
||||
if (lname.startsWith("lib")) lname.cutLeft(3);
|
||||
//piCout << "check ignore" << lname << ignore_libs;
|
||||
if (ignore_libs.contains(lname)) {
|
||||
continue;
|
||||
}
|
||||
checkQtLib(fi.name().toLowerCase());
|
||||
cur_libs << l;
|
||||
all_libs << l;
|
||||
@@ -354,6 +361,7 @@ int main(int argc, char * argv[]) {
|
||||
cli.addArgument("output", true);
|
||||
cli.addArgument("pqt_out_plugins", true);
|
||||
cli.addArgument("search_path", true);
|
||||
cli.addArgument("ignore", PIChar('\0'), true);
|
||||
cli.addArgument("Styles", true);
|
||||
cli.addArgument("Platforms", true);
|
||||
cli.addArgument("qt-plugins", PIChar('\0'), true);
|
||||
@@ -377,12 +385,19 @@ int main(int argc, char * argv[]) {
|
||||
out_dir = cli.argumentValue("output");
|
||||
lib_dirs = cli.argumentValue("search_path").split(";");
|
||||
add_libs = cli.argumentValue("add_libs").split(";");
|
||||
ignore_libs = cli.argumentValue("ignore").split(":");
|
||||
qt_dir = cli.argumentValue("qtdir");
|
||||
ldd = cli.argumentValue("ldd");
|
||||
readelf = cli.argumentValue("Lreadelf");
|
||||
objdump = cli.argumentValue("Wobjdump");
|
||||
otool = cli.argumentValue("Motool");
|
||||
dpkg = cli.argumentValue("Dpkg");
|
||||
#ifdef WINDOWS
|
||||
readelf.replaceAll("/", "\\");
|
||||
objdump.replaceAll("/", "\\");
|
||||
otool.replaceAll("/", "\\");
|
||||
dpkg.replaceAll("/", "\\");
|
||||
#endif
|
||||
if (dpkg.isEmpty())
|
||||
dpkg = "/usr/bin/dpkg";
|
||||
out_plugins_dir = out_dir;
|
||||
@@ -407,6 +422,7 @@ int main(int argc, char * argv[]) {
|
||||
lib_dirs << (qbin + "bin");
|
||||
}
|
||||
piForeach (PIString & s, lib_dirs) {
|
||||
s.trim();
|
||||
if (!s.endsWith("/")) s += "/";
|
||||
}
|
||||
if (out_dir.isEmpty()) out_dir = ".";
|
||||
|
||||
Reference in New Issue
Block a user