debian-service
This commit is contained in:
@@ -73,7 +73,8 @@ deploy_target(<target> [DEPLOY_DIR <dir>] [DESTINATION <dir>]
|
|||||||
[RESOURCES <dir|file> [<dir|file> ...] ]
|
[RESOURCES <dir|file> [<dir|file> ...] ]
|
||||||
[PLUGINS <dir|file> [<dir|file> ...] ]
|
[PLUGINS <dir|file> [<dir|file> ...] ]
|
||||||
[FILES <dir|file> [<dir|file> ...] ]
|
[FILES <dir|file> [<dir|file> ...] ]
|
||||||
[OPTIONS <flag> ...] [VERBOSE] [ZIP_NO_DMG] [DEB_USR_DIR])
|
[OPTIONS <flag> ...] [VERBOSE] [ZIP_NO_DMG]
|
||||||
|
[DEB_USR_DIR] [DEB_ADD_SERVICE])
|
||||||
|
|
||||||
Create make target "deploy_<target>", depends on target "deploy".
|
Create make target "deploy_<target>", depends on target "deploy".
|
||||||
On this target create release package, containing all dependencies:
|
On this target create release package, containing all dependencies:
|
||||||
@@ -119,6 +120,13 @@ depends on target platform
|
|||||||
DEPLOY_ADD_LIBPATH variable used as additional
|
DEPLOY_ADD_LIBPATH variable used as additional
|
||||||
library search path
|
library search path
|
||||||
|
|
||||||
|
If DEB_ADD_SERVICE then <T>-service.deb package will be created.
|
||||||
|
This package use contents of CMAKE_CURRENT_SOURCE_DIR/debian-service directory:
|
||||||
|
* CMAKE_CURRENT_SOURCE_DIR/debian-service/DEBIAN/
|
||||||
|
* CMAKE_CURRENT_SOURCE_DIR/debian-service/*.service
|
||||||
|
.service file placed in /opt/COMPANY/target, you should copy it to system with script
|
||||||
|
You can use "postinst,postrm,preinst,prerm,config" files to configure service
|
||||||
|
|
||||||
]]
|
]]
|
||||||
|
|
||||||
|
|
||||||
@@ -550,8 +558,9 @@ macro(deploy_target _T)
|
|||||||
set(_OPTIONS)
|
set(_OPTIONS)
|
||||||
set(_ZIP_DMG 1)
|
set(_ZIP_DMG 1)
|
||||||
set(_DEB_OPT 1)
|
set(_DEB_OPT 1)
|
||||||
|
set(_DEB_SERVICE 0)
|
||||||
set(_cur_arg)
|
set(_cur_arg)
|
||||||
set(__args "DESTINATION;DEPLOY_DIR;RESOURCES;PLUGINS;FILES;OPTIONS;VERBOSE;ZIP_NO_DMG;DEB_USR_DIR")
|
set(__args "DESTINATION;DEPLOY_DIR;RESOURCES;PLUGINS;FILES;OPTIONS;VERBOSE;ZIP_NO_DMG;DEB_USR_DIR;DEB_ADD_SERVICE")
|
||||||
foreach(_i ${ARGN})
|
foreach(_i ${ARGN})
|
||||||
if (_i IN_LIST __args)
|
if (_i IN_LIST __args)
|
||||||
set(_cur_arg "${_i}")
|
set(_cur_arg "${_i}")
|
||||||
@@ -562,6 +571,8 @@ macro(deploy_target _T)
|
|||||||
set(_ZIP_DMG 0)
|
set(_ZIP_DMG 0)
|
||||||
elseif("${_cur_arg}" STREQUAL "DEB_USR_DIR")
|
elseif("${_cur_arg}" STREQUAL "DEB_USR_DIR")
|
||||||
set(_DEB_OPT 0)
|
set(_DEB_OPT 0)
|
||||||
|
elseif("${_cur_arg}" STREQUAL "DEB_ADD_SERVICE")
|
||||||
|
set(_DEB_SERVICE 1)
|
||||||
endif()
|
endif()
|
||||||
elseif ("${_cur_arg}" STREQUAL "DESTINATION")
|
elseif ("${_cur_arg}" STREQUAL "DESTINATION")
|
||||||
set(_cur_arg)
|
set(_cur_arg)
|
||||||
@@ -596,7 +607,7 @@ macro(deploy_target _T)
|
|||||||
#set(_add_search_path "${_add_search_path}")
|
#set(_add_search_path "${_add_search_path}")
|
||||||
#message("app depend ${_T} libpath ${_add_search_path}")
|
#message("app depend ${_T} libpath ${_add_search_path}")
|
||||||
set(_CMD_)
|
set(_CMD_)
|
||||||
set(_has_deploy 0)
|
set(_deployed)
|
||||||
if ("x${CMAKE_SYSTEM_NAME}" STREQUAL "xLinux")
|
if ("x${CMAKE_SYSTEM_NAME}" STREQUAL "xLinux")
|
||||||
set(_os_id "")
|
set(_os_id "")
|
||||||
set(_os_ver "")
|
set(_os_ver "")
|
||||||
@@ -689,6 +700,17 @@ macro(deploy_target _T)
|
|||||||
set(_CMD_ ${_CMD_} COMMAND mkdir ${_VERB} -p "${_AGD}/usr/bin")
|
set(_CMD_ ${_CMD_} COMMAND mkdir ${_VERB} -p "${_AGD}/usr/bin")
|
||||||
set(_CMD_ ${_CMD_} COMMAND ln -srf ${_VERB} "${_bin_path}/${_T}" "${_AGD}/usr/bin/${_T}")
|
set(_CMD_ ${_CMD_} COMMAND ln -srf ${_VERB} "${_bin_path}/${_T}" "${_AGD}/usr/bin/${_T}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
file(GLOB _files "${CMAKE_CURRENT_SOURCE_DIR}/debian/DEBIAN/*")
|
||||||
|
foreach (_f ${_files})
|
||||||
|
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f "${_f}" "${_AGD}/DEBIAN/")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
file(GLOB _files "${_AGD}/DEBIAN/p*inst" "${_AGD}/DEBIAN/p*rm" "${_AGD}/DEBIAN/config")
|
||||||
|
foreach (_f ${_files})
|
||||||
|
set(_CMD_ ${_CMD_} COMMAND chmod 0755 ${_VERB} "${_f}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
if (NOT CMAKE_LDD)
|
if (NOT CMAKE_LDD)
|
||||||
find_program(CMAKE_LDD ldd)
|
find_program(CMAKE_LDD ldd)
|
||||||
endif()
|
endif()
|
||||||
@@ -704,45 +726,99 @@ macro(deploy_target _T)
|
|||||||
set(_deb_name "${_TV}_${_TARGET_OS}_${_DEB_ARCH}.deb")
|
set(_deb_name "${_TV}_${_TARGET_OS}_${_DEB_ARCH}.deb")
|
||||||
#message("VER = \"${_DEBVERSION}\"")
|
#message("VER = \"${_DEBVERSION}\"")
|
||||||
#message("DEB = \"${_deb_name}\"")
|
#message("DEB = \"${_deb_name}\"")
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Package: ${_DEBNAME}" ${_C_echof})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Version: ${_DEBVERSION}" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Architecture: ${_DEB_ARCH}" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Maintainer: ${${_T}_COMPANY} <>" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND ${PIP_DEPLOY_TOOL} ${_OPTIONS} --prefix "Depends: " --dependencies ${_dt_opts} -a "${_DEP_LIBS_CS}" -o "${_lib_path}" ${_DEPLOY_DIR}/${_T} ${_ADD_DEPS} ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Conflicts:" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Replaces:" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Section: misc" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Priority: optional" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Description: ${${_T}_INFO}" ${_C_echo})
|
||||||
|
|
||||||
|
list(APPEND _CMD_ COMMAND echo "[Desktop Entry]" ${_D_echof})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Encoding=UTF-8" ${_D_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Type=Application" ${_D_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Name=${${_T}_LABEL}" ${_D_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "GenericName=${${_T}_LABEL}" ${_D_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Comment=${${_T}_INFO}" ${_D_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Exec=${_app_bin_path}/${_T}" ${_D_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Icon=${_app_ico_path}/${_ICON_NAME}" ${_D_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Terminal=false" ${_D_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "StartupNotify=true" ${_D_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Categories=Utility;" ${_D_echo})
|
||||||
|
|
||||||
add_custom_target(deploy_${_T}
|
add_custom_target(deploy_${_T}
|
||||||
# gather deb dir
|
# gather deb dir
|
||||||
COMMAND rm -rf ${_VERB} "${_AGD}"
|
COMMAND rm -rf ${_VERB} "${_AGD}"
|
||||||
COMMAND mkdir ${_VERB} -p "${_AGD}/DEBIAN"
|
COMMAND mkdir ${_VERB} -p "${_AGD}/DEBIAN"
|
||||||
${_CMD_}
|
${_CMD_}
|
||||||
|
|
||||||
COMMAND echo "Package: ${_DEBNAME}" ${_C_echof}
|
|
||||||
COMMAND echo "Version: ${_DEBVERSION}" ${_C_echo}
|
|
||||||
COMMAND echo "Architecture: ${_DEB_ARCH}" ${_C_echo}
|
|
||||||
COMMAND echo "Maintainer: ${${_T}_COMPANY} <>" ${_C_echo}
|
|
||||||
COMMAND ${PIP_DEPLOY_TOOL} ${_OPTIONS} --prefix "Depends: " --dependencies ${_dt_opts} -a "${_DEP_LIBS_CS}" -o "${_lib_path}" ${_DEPLOY_DIR}/${_T} ${_ADD_DEPS} ${_C_echo}
|
|
||||||
COMMAND echo "Conflicts:" ${_C_echo}
|
|
||||||
COMMAND echo "Replaces:" ${_C_echo}
|
|
||||||
COMMAND echo "Section: misc" ${_C_echo}
|
|
||||||
COMMAND echo "Priority: optional" ${_C_echo}
|
|
||||||
COMMAND echo "Description: ${${_T}_INFO}" ${_C_echo}
|
|
||||||
|
|
||||||
COMMAND echo "[Desktop Entry]" ${_D_echof}
|
|
||||||
COMMAND echo "Encoding=UTF-8" ${_D_echo}
|
|
||||||
COMMAND echo "Type=Application" ${_D_echo}
|
|
||||||
COMMAND echo "Name=${${_T}_LABEL}" ${_D_echo}
|
|
||||||
COMMAND echo "GenericName=${${_T}_LABEL}" ${_D_echo}
|
|
||||||
COMMAND echo "Comment=${${_T}_INFO}" ${_D_echo}
|
|
||||||
COMMAND echo "Exec=${_app_bin_path}/${_T}" ${_D_echo}
|
|
||||||
COMMAND echo "Icon=${_app_ico_path}/${_ICON_NAME}" ${_D_echo}
|
|
||||||
COMMAND echo "Terminal=false" ${_D_echo}
|
|
||||||
COMMAND echo "StartupNotify=true" ${_D_echo}
|
|
||||||
#COMMAND echo "X-KDE-StartupNotify=true" ${_D_echo}
|
|
||||||
COMMAND echo "Categories=Utility;" ${_D_echo}
|
|
||||||
|
|
||||||
#COMMAND -l "${CMAKE_LDD}" -P xcb -q ${Qt5_ROOT} -s "\"${CMAKE_PREFIX_PATH}/lib;${_add_search_path}\"" -o ${_AGD}/usr/lib -p ${_AGD}/usr/ ${_AGD}/Contents/MacOS/${_T}
|
#COMMAND -l "${CMAKE_LDD}" -P xcb -q ${Qt5_ROOT} -s "\"${CMAKE_PREFIX_PATH}/lib;${_add_search_path}\"" -o ${_AGD}/usr/lib -p ${_AGD}/usr/ ${_AGD}/Contents/MacOS/${_T}
|
||||||
# generate deb
|
# generate deb
|
||||||
COMMAND cd ${_AGD} "&&" md5deep -rl usr opt ">" DEBIAN/md5sums
|
COMMAND cd ${_AGD} "&&" md5deep -rl opt usr ">" DEBIAN/md5sums
|
||||||
COMMAND mkdir ${_VERB} -p ${_DESTINATION}
|
COMMAND mkdir ${_VERB} -p ${_DESTINATION}
|
||||||
COMMAND dpkg-deb -Z gzip -b ${_AGD} ${_DESTINATION}/${_deb_name}
|
COMMAND dpkg-deb -Z gzip -b ${_AGD} ${_DESTINATION}/${_deb_name}
|
||||||
VERBATIM
|
VERBATIM
|
||||||
COMMENT "Generating ${_deb_name}"
|
COMMENT "Generating ${_deb_name}"
|
||||||
)
|
)
|
||||||
set(_has_deploy 1)
|
set(_deployed "deploy_${_T}")
|
||||||
|
|
||||||
|
if (_DEB_SERVICE)
|
||||||
|
set(_CMD_)
|
||||||
|
set(_DEB "${_TV}-service_deb_${_DEB_ARCH}")
|
||||||
|
set(_AGD "${_DEPLOY_DIR}/${_DEB}")
|
||||||
|
set(_C_echof ">" "${_AGD}/DEBIAN/control")
|
||||||
|
set(_C_echo ">>" "${_AGD}/DEBIAN/control")
|
||||||
|
set(_opt_path "${_AGD}/opt/${${_T}_COMPANY}/${_T}")
|
||||||
|
set(_CMD_ ${_CMD_} COMMAND mkdir ${_VERB} -p "${_opt_path}")
|
||||||
|
|
||||||
|
file(GLOB _files "${CMAKE_CURRENT_SOURCE_DIR}/debian-service/*.service")
|
||||||
|
foreach (_f ${_files})
|
||||||
|
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f "${_f}" "${_opt_path}/")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
file(GLOB _files "${CMAKE_CURRENT_SOURCE_DIR}/debian-service/DEBIAN/*")
|
||||||
|
foreach (_f ${_files})
|
||||||
|
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f "${_f}" "${_AGD}/DEBIAN/")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
file(GLOB _files "${_AGD}/DEBIAN/p*inst" "${_AGD}/DEBIAN/p*rm" "${_AGD}/DEBIAN/config")
|
||||||
|
foreach (_f ${_files})
|
||||||
|
set(_CMD_ ${_CMD_} COMMAND chmod 0755 ${_VERB} "${_f}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(_deb_name "${_TV}-service_${_TARGET_OS}_${_DEB_ARCH}.deb")
|
||||||
|
#message("VER = \"${_DEBVERSION}\"")
|
||||||
|
#message("DEB = \"${_deb_name}\"")
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Package: ${_DEBNAME}-service" ${_C_echof})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Version: ${_DEBVERSION}" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Architecture: ${_DEB_ARCH}" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Maintainer: ${${_T}_COMPANY} <>" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Depends: ${_DEBNAME}" ${_C_echo}) #-${_DEBVERSION}"
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Conflicts:" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Replaces:" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Section: misc" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Priority: optional" ${_C_echo})
|
||||||
|
list(APPEND _CMD_ COMMAND echo "Description: ${${_T}_LABEL} service" ${_C_echo})
|
||||||
|
|
||||||
|
add_custom_target(deploy_${_T}-service
|
||||||
|
# gather deb dir
|
||||||
|
COMMAND rm -rf ${_VERB} "${_AGD}"
|
||||||
|
COMMAND mkdir ${_VERB} -p "${_AGD}/DEBIAN"
|
||||||
|
${_CMD_}
|
||||||
|
|
||||||
|
# generate deb
|
||||||
|
#COMMAND cd ${_AGD} "&&" md5deep -rl * ">" DEBIAN/md5sums
|
||||||
|
COMMAND mkdir ${_VERB} -p ${_DESTINATION}
|
||||||
|
COMMAND dpkg-deb -Z gzip -b ${_AGD} ${_DESTINATION}/${_deb_name}
|
||||||
|
VERBATIM
|
||||||
|
COMMENT "Generating ${_deb_name}"
|
||||||
|
)
|
||||||
|
list(APPEND _deployed "deploy_${_T}-service")
|
||||||
|
endif()
|
||||||
|
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
if (NOT CMAKE_OBJDUMP)
|
if (NOT CMAKE_OBJDUMP)
|
||||||
find_program(CMAKE_OBJDUMP objdump)
|
find_program(CMAKE_OBJDUMP objdump)
|
||||||
@@ -769,7 +845,7 @@ macro(deploy_target _T)
|
|||||||
COMMAND cd "\"${_DEPLOY_DIR}\"" "&&" zip -q -r "\"${_DESTINATION}/${_zip_name}\"" "\"${_TV}_win_${MY_ARCH}\""
|
COMMAND cd "\"${_DEPLOY_DIR}\"" "&&" zip -q -r "\"${_DESTINATION}/${_zip_name}\"" "\"${_TV}_win_${MY_ARCH}\""
|
||||||
COMMENT "Generating ${_zip_name}"
|
COMMENT "Generating ${_zip_name}"
|
||||||
)
|
)
|
||||||
set(_has_deploy 1)
|
set(_deployed "deploy_${_T}")
|
||||||
elseif (APPLE)
|
elseif (APPLE)
|
||||||
set(MACOSX_BUNDLE_GUI_IDENTIFIER "${${_T}_FULLNAME}")
|
set(MACOSX_BUNDLE_GUI_IDENTIFIER "${${_T}_FULLNAME}")
|
||||||
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${${_T}_VERSION}")
|
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${${_T}_VERSION}")
|
||||||
@@ -834,7 +910,7 @@ macro(deploy_target _T)
|
|||||||
${_cmd_gen_dmg}
|
${_cmd_gen_dmg}
|
||||||
COMMENT "${_comment}"
|
COMMENT "${_comment}"
|
||||||
)
|
)
|
||||||
set(_has_deploy 1)
|
set(_deployed "deploy_${_T}")
|
||||||
elseif (DEFINED ANDROID_PLATFORM)
|
elseif (DEFINED ANDROID_PLATFORM)
|
||||||
set(_res_files)
|
set(_res_files)
|
||||||
set(_res_files "${_res_files}\n <qresource prefix=\"/\">")
|
set(_res_files "${_res_files}\n <qresource prefix=\"/\">")
|
||||||
@@ -972,9 +1048,9 @@ macro(deploy_target _T)
|
|||||||
${_CMD_}
|
${_CMD_}
|
||||||
COMMENT "Generating ${_base_name}.apk/aab"
|
COMMENT "Generating ${_base_name}.apk/aab"
|
||||||
)
|
)
|
||||||
set(_has_deploy 1)
|
set(_deployed "deploy_${_T}")
|
||||||
endif()
|
|
||||||
if (_has_deploy)
|
|
||||||
add_dependencies(deploy deploy_${_T})
|
|
||||||
endif()
|
endif()
|
||||||
|
foreach (_d ${_deployed})
|
||||||
|
add_dependencies(deploy ${_d})
|
||||||
|
endforeach()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|||||||
Reference in New Issue
Block a user