deploy
This commit is contained in:
@@ -73,11 +73,12 @@ deploy_target(<target> [DEPLOY_DIR <dir>] [DESTINATION <dir>]
|
||||
[RESOURCES <dir|file> [<dir|file> ...] ]
|
||||
[PLUGINS <dir|file> [<dir|file> ...] ]
|
||||
[FILES <dir|file> [<dir|file> ...] ]
|
||||
[OPTIONS <flag> ...] [VERBOSE])
|
||||
[OPTIONS <flag> ...] [VERBOSE] [ZIP_DMG])
|
||||
|
||||
Create make target "deploy_<target>", depends on target "deploy"
|
||||
On this target create release package, containing all dependencies:
|
||||
*.zip on Windows, *.deb on Linux and *.dmg an MacOS
|
||||
*.zip on Windows, *.deb on Linux, *.dmg an MacOS, *.apk and *.aab on Android
|
||||
If defined ZIP_DMG then *.dmg.zip will be created on MacOS
|
||||
|
||||
You should set version and deploy properties
|
||||
before call this macro, see
|
||||
@@ -94,11 +95,11 @@ DEPLOY_DIR - dir where you install
|
||||
DESTINATION - dir where macro place package
|
||||
RESOURCES, PLUGINS and FILES - list of directories and files, copied to:
|
||||
|
||||
| Windows | Linux | MacOS
|
||||
----------|---------|---------------------------|-------------------
|
||||
RESOURCES | root | /usr/share/COMPANY/target | Contents/Resources
|
||||
PLUGINS | root | /usr/lib/COMPANY/target | Contents/PlugIns
|
||||
FILES | root | /usr/bin | Contents/MacOS
|
||||
| | Windows | Linux | MacOS |
|
||||
| ----------|---------|---------------------------|--------------------|
|
||||
| RESOURCES | root | /usr/share/COMPANY/target | Contents/Resources |
|
||||
| PLUGINS | root | /usr/lib/COMPANY/target | Contents/PlugIns |
|
||||
| FILES | root | /usr/bin | Contents/MacOS |
|
||||
|
||||
Relative paths are taken from DEPLOY_DIR
|
||||
Also check library dependencies from PLUGINS and FILES
|
||||
@@ -547,14 +548,17 @@ macro(deploy_target _T)
|
||||
set(_VERB)
|
||||
set(_WVERB 1> NUL)
|
||||
set(_OPTIONS)
|
||||
set(_ZIP_DMG 0)
|
||||
set(_cur_arg)
|
||||
set(__args "DESTINATION;DEPLOY_DIR;RESOURCES;PLUGINS;FILES;OPTIONS;VERBOSE")
|
||||
set(__args "DESTINATION;DEPLOY_DIR;RESOURCES;PLUGINS;FILES;OPTIONS;VERBOSE;ZIP_DMG")
|
||||
foreach(_i ${ARGN})
|
||||
if (_i IN_LIST __args)
|
||||
set(_cur_arg "${_i}")
|
||||
if ("${_cur_arg}" STREQUAL "VERBOSE")
|
||||
set(_VERB -v)
|
||||
set(_WVERB)
|
||||
elseif("${_cur_arg}" STREQUAL "ZIP_DMG")
|
||||
set(_ZIP_DMG 1)
|
||||
endif()
|
||||
elseif ("${_cur_arg}" STREQUAL "DESTINATION")
|
||||
set(_cur_arg)
|
||||
@@ -627,6 +631,7 @@ macro(deploy_target _T)
|
||||
if (_ICON_NAME)
|
||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/usr/share/pixmaps)
|
||||
endif()
|
||||
set(_deb_name "${_TV}_debian_${_DEB_ARCH}.deb")
|
||||
add_custom_target(deploy_${_T}
|
||||
# gather deb dir
|
||||
COMMAND mkdir ${_VERB} -p ${_AGD}/DEBIAN
|
||||
@@ -665,9 +670,9 @@ macro(deploy_target _T)
|
||||
# generate deb
|
||||
COMMAND cd ${_AGD} "&&" md5deep -rl usr ">" DEBIAN/md5sums
|
||||
COMMAND mkdir ${_VERB} -p ${_DESTINATION}
|
||||
COMMAND dpkg-deb -b ${_AGD} ${_DESTINATION}/${_TV}_${_DEB_ARCH}.deb
|
||||
COMMAND dpkg-deb -b ${_AGD} ${_DESTINATION}/${_deb_name}
|
||||
VERBATIM
|
||||
COMMENT "Generating ${_TV}_${_DEB_ARCH}.deb"
|
||||
COMMENT "Generating ${_deb_name}"
|
||||
)
|
||||
set(_has_deploy 1)
|
||||
elseif(WIN32)
|
||||
@@ -686,14 +691,15 @@ macro(deploy_target _T)
|
||||
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}")
|
||||
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}")
|
||||
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}")
|
||||
set(_zip_name "${_TV}_windows_x64.zip")
|
||||
add_custom_target(deploy_${_T}
|
||||
# gather dir
|
||||
${_CMD_}
|
||||
|
||||
COMMAND deploy_tool ${_VERB} ${_OPTIONS} -W "\"${CMAKE_OBJDUMP}\"" -P windows,minimal -S windows -q "\"${Qt5_ROOT}\"" -s "\"${CMAKE_PREFIX_PATH}/bin${_dt_delim}${MINGW_BIN}${_add_search_path}\"" -o ${_AGD} -p ${_AGD} "\"${_AGD}${_T}.exe\"" ${_ADD_DEPS}
|
||||
# zip
|
||||
COMMAND cd "\"${_DEPLOY_DIR}\"" "&&" zip -q -r "\"${_DESTINATION}/${_TV}.zip\"" "\"${_TV}_win_${MY_ARCH}\""
|
||||
COMMENT "Generating ${_TV}.zip"
|
||||
COMMAND cd "\"${_DEPLOY_DIR}\"" "&&" zip -q -r "\"${_DESTINATION}/${_zip_name}\"" "\"${_TV}_win_${MY_ARCH}\""
|
||||
COMMENT "Generating ${_zip_name}"
|
||||
)
|
||||
set(_has_deploy 1)
|
||||
elseif (APPLE)
|
||||
@@ -723,15 +729,24 @@ macro(deploy_target _T)
|
||||
if (NOT CMAKE_PREFIX_PATH)
|
||||
set(CMAKE_PREFIX_PATH "/usr/local")
|
||||
endif()
|
||||
set(_cmd_gen_dmg COMMAND genisoimage -quiet -V "${MACOSX_BUNDLE_BUNDLE_NAME}" -D -R -apple -no-pad -o ${_DESTINATION}/${_TV}.dmg ${_DMG})
|
||||
set(_dmg_name "${_TV}_macosx_x64.dmg")
|
||||
set(_cmd_gen_dmg COMMAND genisoimage -quiet -V "${MACOSX_BUNDLE_BUNDLE_NAME}" -D -R -apple -no-pad -o ${_DESTINATION}/${_dmg_name} ${_DMG})
|
||||
#set(_cmd_int)
|
||||
if (__mac_host)
|
||||
set(_cmd_gen_dmg COMMAND hdiutil create ${_DESTINATION}/${_TV}.dmg -ov -volname "${MACOSX_BUNDLE_BUNDLE_NAME}" -fs HFS+ -srcfolder ${_DMG})
|
||||
set(_cmd_gen_dmg COMMAND hdiutil create ${_DESTINATION}/${_dmg_name} -ov -volname "${MACOSX_BUNDLE_BUNDLE_NAME}" -fs HFS+ -srcfolder ${_DMG})
|
||||
#set(_rpathes "@executable_path/../Frameworks" "@executable_path/lib" "@loader_path/../lib")
|
||||
#foreach (_r ${_rpathes})
|
||||
# set(_cmd_int ${_cmd_int} COMMAND install_name_tool -add_rpath "${_r}" \"${_AGD}/Contents/MacOS/${_T}\")
|
||||
#endforeach()
|
||||
endif()
|
||||
if (_ZIP_DMG)
|
||||
set(_cmd_gen_dmg ${_cmd_gen_dmg} COMMAND zip -q -r "\"${_DESTINATION}/${_dmg_name}.zip\"" "\"${_DESTINATION}/${_dmg_name}\"")
|
||||
set(_cmd_gen_dmg ${_cmd_gen_dmg} COMMAND rm "\"${_DESTINATION}/${_dmg_name}\"")
|
||||
endif()
|
||||
set(_comment "Generating ${_dmg_name}")
|
||||
if (_ZIP_DMG)
|
||||
set(_comment "${_comment}.zip")
|
||||
endif()
|
||||
add_custom_target(deploy_${_T}
|
||||
# gather .app dir
|
||||
COMMAND mkdir ${_VERB} -p ${_AGD}/Contents/Resources
|
||||
@@ -749,7 +764,7 @@ macro(deploy_target _T)
|
||||
COMMAND ln ${_VERB} -s /Applications ${_DMG}
|
||||
# generate dmg
|
||||
${_cmd_gen_dmg}
|
||||
COMMENT "Generating ${_TV}.dmg"
|
||||
COMMENT "${_comment}"
|
||||
)
|
||||
set(_has_deploy 1)
|
||||
elseif (DEFINED ANDROID_PLATFORM)
|
||||
@@ -869,16 +884,15 @@ macro(deploy_target _T)
|
||||
set(_CMD_ ${_CMD_} COMMAND "${Qt5_BIN}/androiddeployqt" --aux-mode --android-platform ${ANDROID_PLATFORM} --output "\"${_AGD}\"" --input "\"${_out_json}\"")
|
||||
set(_CMD_ ${_CMD_} COMMAND "${_AGD}/gradlew" ${_gradle_home} --no-daemon -p "\"${_AGD}\"" assembleDebug)
|
||||
set(_CMD_ ${_CMD_} COMMAND "${_AGD}/gradlew" ${_gradle_home} --no-daemon -p "\"${_AGD}\"" bundleRelease)
|
||||
set(_dir)
|
||||
set(_file "${_AGD}/build/outputs/apk/debug/${_T}.android-debug.apk")
|
||||
set(_base_name "${_TV}_android_all")
|
||||
set(_CMD_ ${_CMD_} COMMAND "${CMAKE_COMMAND}" -E copy "${_AGD}/build/outputs/apk/debug/${_T}.android-debug.apk" "${_DESTINATION}/${_base_name}.apk")
|
||||
if (ANDROID_STORE_FILE)
|
||||
list(APPEND _file "${_AGD}/build/outputs/bundle/release/${_T}.android-release.aab")
|
||||
set(_CMD_ ${_CMD_} COMMAND "${CMAKE_COMMAND}" -E copy "${_AGD}/build/outputs/bundle/release/${_T}.android-release.aab" "${_DESTINATION}/${_base_name}.aab")
|
||||
endif()
|
||||
__make_copy(_CMD_ _dir _file "${_DESTINATION}")
|
||||
add_custom_target(deploy_${_T}
|
||||
# gather .app dir
|
||||
${_CMD_}
|
||||
COMMENT "Generating ${_TV}.apk/aab"
|
||||
COMMENT "Generating ${_base_name}.apk/aab"
|
||||
)
|
||||
set(_has_deploy 1)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user