git-svn-id: svn://db.shs.com.ru/pip@986 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -83,6 +83,9 @@
|
||||
if (POLICY CMP0057)
|
||||
cmake_policy(SET CMP0057 NEW) # Support if() IN_LIST
|
||||
endif()
|
||||
if (POLICY CMP0053)
|
||||
cmake_policy(SET CMP0053 NEW)
|
||||
endif()
|
||||
set(__prop_names "LABEL;FULLNAME;COMPANY;ICON;INFO")
|
||||
set(__version_names "MAJOR;MINOR;REVISION;BUILD;SUFFIX")
|
||||
include(TargetArch)
|
||||
@@ -467,40 +470,71 @@ macro(deploy_target _T)
|
||||
find_program(CMAKE_OBJDUMP objdump)
|
||||
endif()
|
||||
set(_AGD "${_DEPLOY_DIR}/${_TV}_win_${MY_ARCH}/")
|
||||
set(_SEP "/")
|
||||
set(_COPY "cp" "-rf")
|
||||
set(_COPY_SUFFIX)
|
||||
set(_MKDIR mkdir -p "${_AGD}")
|
||||
set(_MKDIR_P mkdir -p "${_DESTINATION}")
|
||||
set(_win_host 0)
|
||||
if ("x${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "xWindows")
|
||||
set(_SEP "\\")
|
||||
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_P if not exist "\"${_DESTINATION}\"" mkdir "\"${_DESTINATION}\"")
|
||||
set(_win_host 1)
|
||||
endif()
|
||||
foreach(_d ${_RES_DIRS} ${_PLUG_DIRS})
|
||||
get_filename_component(_dirname "${_d}" NAME)
|
||||
file(TO_NATIVE_PATH "${_d}/" _wr)
|
||||
if ("x${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "xWindows")
|
||||
set(_CMD_COPY ${_CMD_COPY} COMMAND if not exist "\"${_AGD}${_dirname}\"" mkdir "\"${_AGD}${_dirname}\"")
|
||||
string(REPLACE "/" "\\" _wr "${_wr}")
|
||||
else()
|
||||
set(_CMD_COPY ${_CMD_COPY} COMMAND mkdir -p "${_AGD}${_dirname}")
|
||||
macro(__make_win_path _in_path _out_var _is_dir _out_dir)
|
||||
set(_add "")
|
||||
if (${_is_dir})
|
||||
set(_add "/")
|
||||
endif()
|
||||
set(_CMD_COPY ${_CMD_COPY} COMMAND ${_COPY} "${_wr}*" "\"${_AGD}${_dirname}${_SEP}\"" ${_COPY_SUFFIX})
|
||||
endforeach()
|
||||
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 -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}\\\"" 1> NUL)
|
||||
endforeach()
|
||||
foreach(_f ${${_files}})
|
||||
__make_win_path("${_f}" _wsrc 0 "")
|
||||
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r "\"${_wsrc}\"" "\"${_wdest}\"" 1> NUL)
|
||||
endforeach()
|
||||
else()
|
||||
foreach(_d ${${_dirs}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp -rf "${_d}" "${_dest}/")
|
||||
endforeach()
|
||||
foreach(_f ${${_files}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp -f "${_f}" "${_dest}/")
|
||||
endforeach()
|
||||
endif()
|
||||
endmacro()
|
||||
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}")
|
||||
add_custom_target(deploy_${_T}
|
||||
# gather dir
|
||||
COMMAND ${_MKDIR}
|
||||
COMMAND ${_MKDIR_P}
|
||||
COMMAND ${_COPY} "\"${_DEPLOY_DIR}${_T}.exe\"" "\"${_AGD}\"" ${_COPY_SUFFIX}
|
||||
#COMMAND ${_COPY} "${_DEPLOY_DIR}lang${_SEP}*" "\"${_AGD}lang${_SEP}\"" ${_COPY_SUFFIX}
|
||||
${_CMD_COPY}
|
||||
|
||||
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\"" ${_PLUG_DIRS}
|
||||
@@ -523,20 +557,27 @@ 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 -p "${_dest}")
|
||||
endif()
|
||||
foreach(_d ${${_dirs}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp -rf "${_d}" "${_dest}/")
|
||||
endforeach()
|
||||
foreach(_f ${${_files}})
|
||||
set(${_cmd} ${${_cmd}} COMMAND cp -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")
|
||||
if (_ICON_NAME)
|
||||
set(_CMD_COPY ${_CMD_COPY} COMMAND cp -f ${_ICON_FN} ${_AGD}/Contents/Resources)
|
||||
endif()
|
||||
foreach(_d ${_RES_DIRS})
|
||||
set(_CMD_COPY ${_CMD_COPY} COMMAND cp -r "${_d}" "${_AGD}/Contents/Resources")
|
||||
endforeach()
|
||||
foreach(_d ${_PLUG_DIRS})
|
||||
set(_CMD_COPY ${_CMD_COPY} COMMAND cp -r "${_d}" "${_AGD}/Contents/PlugIns")
|
||||
endforeach()
|
||||
add_custom_target(deploy_${_T}
|
||||
# gather .app dir
|
||||
COMMAND mkdir -p ${_AGD}/Contents/Resources
|
||||
COMMAND mkdir -p ${_AGD}/Contents/Frameworks
|
||||
COMMAND mkdir -p ${_AGD}/Contents/PlugIns
|
||||
COMMAND mkdir -p ${_DESTINATION}
|
||||
${_CMD_COPY}
|
||||
#COMMAND cp ${_ICON_FN} ${_AGD}/Contents/Resources
|
||||
|
||||
Reference in New Issue
Block a user