diff --git a/qad/QADDeploy.cmake b/qad/QADDeploy.cmake index 1b51133..08b9f01 100644 --- a/qad/QADDeploy.cmake +++ b/qad/QADDeploy.cmake @@ -182,6 +182,7 @@ macro(deploy_target _T) endif() endforeach() #message("app depend libpath ${_DEP_LIBPATH}") + set(_CMD_RES) if ("x${CMAKE_SYSTEM_NAME}" STREQUAL "xLinux") if (NOT CMAKE_LDD) find_program(CMAKE_LDD ldd) @@ -209,7 +210,6 @@ 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") - set(_CMD_RES) foreach(_r ${_RES_DIRS}) set(_CMD_RES ${_CMD_RES} COMMAND cp -r "${_r}" "${_AGD}/usr/share/${${_T}_COMPANY}") endforeach() @@ -224,7 +224,6 @@ macro(deploy_target _T) COMMAND cp -f ${_DEPLOY_DIR}/${_T} ${_AGD}/usr/bin COMMAND cp -f ${_DEP_LIBS} ${_AGD}/usr/lib COMMAND cp -f ${_ICON_FN} ${_AGD}/usr/share/pixmaps - #COMMAND cp -r ${_DEPLOY_DIR}/lang ${_AGD}/usr/share/${${_T}_COMPANY} ${_CMD_RES} COMMAND echo "Package: ${_DEBNAME}" ${_C_echof} @@ -267,29 +266,39 @@ macro(deploy_target _T) set(_SEP "/") set(_COPY "cp" "-rf") set(_COPY_SUFFIX) - set(_MKDIR "mkdir" "-p" "${_AGD}") - set(_MKDIR_L "mkdir" "-p" "${_AGD}lang") - set(_MKDIR_P "mkdir" "-p" "${_DESTINATION}") + set(_MKDIR mkdir -p "${_AGD}") + set(_MKDIR_P mkdir -p "${_DESTINATION}") if ("x${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "xWindows") set(_SEP "\\") - set(_COPY "xcopy" "/y" "/r") + set(_COPY xcopy "/y" "/r") set(_COPY_SUFFIX "1>" "NUL") file(TO_NATIVE_PATH "${_AGD}" _AGD) file(TO_NATIVE_PATH "${_DEPLOY_DIR}/" _DEPLOY_DIR) string(REPLACE "/" "\\" _AGD "${_AGD}") string(REPLACE "/" "\\" _DEPLOY_DIR "${_DEPLOY_DIR}") string(REPLACE "/" "\\" CMAKE_OBJDUMP "${CMAKE_OBJDUMP}") - set(_MKDIR "if" "not" "exist" "\"${_AGD}\"" "mkdir" "\"${_AGD}\"") - set(_MKDIR_L "if" "not" "exist" "\"${_AGD}lang\"" "mkdir" "\"${_AGD}lang\"") - set(_MKDIR_P "if" "not" "exist" "\"${_DESTINATION}\"" "mkdir" "\"${_DESTINATION}\"") + set(_MKDIR if not exist "\"${_AGD}\"" mkdir "\"${_AGD}\"") + set(_MKDIR_P if not exist "\"${_DESTINATION}\"" mkdir "\"${_DESTINATION}\"") endif() + foreach(_r ${_RES_DIRS}) + get_filename_component(_dirname "${_r}" NAME) + file(TO_NATIVE_PATH "${_r}/" _wr) + if ("x${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "xWindows") + set(_CMD_RES ${_CMD_RES} COMMAND if not exist "\"${_AGD}${_dirname}\"" mkdir "\"${_AGD}${_dirname}\"") + string(REPLACE "/" "\\" _wr "${_wr}") + else() + set(_CMD_RES ${_CMD_RES} COMMAND mkdir -p "${_AGD}${_dirname}") + endif() + set(_CMD_RES ${_CMD_RES} COMMAND ${_COPY} "${_wr}*" "\"${_AGD}${_dirname}${_SEP}\"" ${_COPY_SUFFIX}) + endforeach() add_custom_target(deploy # gather dir COMMAND ${_MKDIR} - COMMAND ${_MKDIR_L} COMMAND ${_MKDIR_P} COMMAND ${_COPY} "\"${_DEPLOY_DIR}${_T}.exe\"" "\"${_AGD}\"" ${_COPY_SUFFIX} - COMMAND ${_COPY} "${_DEPLOY_DIR}lang${_SEP}*" "\"${_AGD}lang${_SEP}\"" ${_COPY_SUFFIX} + #COMMAND ${_COPY} "${_DEPLOY_DIR}lang${_SEP}*" "\"${_AGD}lang${_SEP}\"" ${_COPY_SUFFIX} + ${_CMD_RES} + 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}_win_${MY_ARCH}\""