From a033ffe0e15ac59d353af7af52ec83630eb6e921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Wed, 18 Mar 2020 17:57:53 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@828 a8b55f48-bf90-11e4-a774-851b48703e85 --- deploy_tool/main.cpp | 8 +++++++- qad/QADDeploy.cmake | 34 +++++++++++++++++++++++++--------- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/deploy_tool/main.cpp b/deploy_tool/main.cpp index 6de7b30..e6f7dea 100644 --- a/deploy_tool/main.cpp +++ b/deploy_tool/main.cpp @@ -354,8 +354,14 @@ int main(int argc, char * argv[]) { if (need_qt) procQt(); +#ifdef WINDOWS + out_dir.replaceAll("/", "\\"); +#endif PIVector clibs = all_libs.toVector(); - piForeachC (PIString & l, clibs) { + piForeach (PIString l, clibs) { +#ifdef WINDOWS + l.replaceAll("/", "\\"); +#endif piCout << "copy" << l; if (!fake) system(cmd_copy + "\"" + l + "\" \"" + out_dir + "\"" + cmd_suffix); diff --git a/qad/QADDeploy.cmake b/qad/QADDeploy.cmake index 5720151..6ad8745 100644 --- a/qad/QADDeploy.cmake +++ b/qad/QADDeploy.cmake @@ -153,7 +153,7 @@ macro(deploy_target _T) endforeach() get_filename_component(_ICON_NAME "${${_T}_ICON}" NAME) get_filename_component(_ICON_FN "${${_T}_ICON}" ABSOLUTE BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") - set(_TV "${_T}-${${_T}_VERSION}") + set(_TV "${_T}_${${_T}_VERSION}") set(_DEP_LIBPATH) get_target_property(_LL ${_T} LINK_LIBRARIES) foreach (_L ${_LL}) @@ -166,13 +166,30 @@ macro(deploy_target _T) endif() endforeach() #message("app depend libpath ${_DEP_LIBPATH}") - if (LINUX) - endif() - if (WIN32) + if ("x${CMAKE_SYSTEM_NAME}" STREQUAL "xLinux") + if (NOT CMAKE_LDD) + find_program(CMAKE_LDD ldd) + endif() + set(_DEB "${_TV}_deb_${CMAKE_SYSTEM_PROCESSOR}") + set(_AGD "${_DEPLOY_DIR}/${_DEB}") + add_custom_target(deploy + # gather deb dir + COMMAND mkdir -p ${_AGD}/DEBIAN + COMMAND mkdir -p ${_AGD}/usr/bin + COMMAND mkdir -p ${_AGD}/usr/lib + COMMAND mkdir -p ${_DESTINATION} + COMMAND cp ${_ICON_FN} ${_AGD}/Contents/Resources + COMMAND cp -r ${_DEPLOY_DIR}/lang ${_AGD}/Contents/MacOS + COMMAND deploy_tool -l "${CMAKE_LDD}" -P xcb -q ${Qt5_ROOT} -s "\"${CMAKE_PREFIX_PATH}/lib;${DEPLOY_ADD_LIBPATH}${_DEP_LIBPATH}\"" -o ${_AGD}/usr/lib -p ${_AGD}/usr/ ${_AGD}/Contents/MacOS/${_T} + # generate deb + COMMAND genisoimage -quiet -V ${_T} -D -R -apple -no-pad -o ${_DESTINATION}/${_TV}.dmg ${_DMG} + COMMENT "Generating ${_TV}.deb" + ) + elseif(WIN32) if (NOT CMAKE_OBJDUMP) find_program(CMAKE_OBJDUMP objdump) endif() - set(_AGD "${_DEPLOY_DIR}/${_TV}/") + set(_AGD "${_DEPLOY_DIR}/${_TV}_win/") set(_SEP "/") set(_COPY "cp" "-rf") set(_COPY_SUFFIX) @@ -201,11 +218,10 @@ macro(deploy_target _T) COMMAND ${_COPY} "${_DEPLOY_DIR}lang${_SEP}*" "\"${_AGD}lang${_SEP}\"" ${_COPY_SUFFIX} COMMAND deploy_tool -W "\"${CMAKE_OBJDUMP}\"" -P windows -S windows -q "\"${Qt5_ROOT}\"" -s "\"${CMAKE_PREFIX_PATH}/bin;${MINGW_BIN};${DEPLOY_ADD_LIBPATH}${_DEP_LIBPATH}\"" -o ${_AGD} -p ${_AGD} "\"${_AGD}${_T}.exe\"" # zip - COMMAND cd "\"${_DEPLOY_DIR}\"" "&&" zip -r "\"${_DESTINATION}/${_TV}.zip\"" "\"${_TV}\"" + COMMAND cd "\"${_DEPLOY_DIR}\"" "&&" zip -r "\"${_DESTINATION}/${_TV}.zip\"" "\"${_TV}_win\"" COMMENT "Generating ${_TV}.zip" ) - endif() - if (APPLE) + elseif (APPLE) set(MACOSX_BUNDLE_GUI_IDENTIFIER "${${_T}_FULLNAME}") set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${${_T}_VERSION}") set(MACOSX_BUNDLE_LONG_VERSION_STRING "${${_T}_VERSION}") @@ -225,7 +241,7 @@ macro(deploy_target _T) COMMAND mkdir -p ${_DESTINATION} COMMAND cp ${_ICON_FN} ${_AGD}/Contents/Resources COMMAND cp -r ${_DEPLOY_DIR}/lang ${_AGD}/Contents/MacOS - COMMAND deploy_tool -M "${CMAKE_OTOOL}" -P cocoa -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} + COMMAND deploy_tool -M "${CMAKE_OTOOL}" -P cocoa -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} # prepare dmg dir COMMAND rm -rf ${_DMG} COMMAND mkdir -p ${_DMG}