Merge branch 'master' of https://git.shs.tools/SHS/pip
This commit is contained in:
@@ -69,20 +69,28 @@ before call this macro, see
|
||||
|
||||
|
||||
|
||||
deploy_target(<target> [DEPLOY_DIR <dir>] [DESTINATION <dir>]
|
||||
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] [ZIP_DMG])
|
||||
[LIBS <dir|file> [<dir|file> ...] ]
|
||||
[OPTIONS <flag> ...]
|
||||
[VERBOSE]
|
||||
[DMG_NO_ZIP]
|
||||
[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:
|
||||
*.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
|
||||
* .zip on Windows
|
||||
* .deb on Linux
|
||||
* .dmg[.zip] on MacOS
|
||||
* .apk/.aab on Android
|
||||
If not defined DMG_NO_ZIP then *.dmg.zip will be created on MacOS.
|
||||
|
||||
You should set version and deploy properties
|
||||
before call this macro, see
|
||||
"set_version()" and "set_deploy_property()"
|
||||
"set_version()" and "set_deploy_property()".
|
||||
|
||||
Example:
|
||||
deploy_target(my_app DESTINATION packages)
|
||||
@@ -93,17 +101,19 @@ DEPLOY_DIR - dir where you install
|
||||
* <T>.app directory with executable on MacOS
|
||||
|
||||
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 | Linux (DEB_USR_DIR) | MacOS |
|
||||
|-----------|---------|-------------------------|---------------------------|---------------------|
|
||||
| RESOURCES | root | /opt/COMPANY/target | /usr/share/COMPANY/target | Contents/Resources |
|
||||
| PLUGINS | root | /opt/COMPANY/target | /usr/lib/COMPANY/target | Contents/PlugIns |
|
||||
| FILES | root | /opt/COMPANY/target | /usr/bin | Contents/MacOS |
|
||||
| LIBS | root | /opt/COMPANY/target/lib | /usr/lib | Contents/Frameworks |
|
||||
|
||||
Relative paths are taken from DEPLOY_DIR
|
||||
Also check library dependencies from PLUGINS and FILES
|
||||
Important! RESOURCES, PLUGINS and FILES lists check
|
||||
Important! RESOURCES, PLUGINS, FILES and LIBS lists check
|
||||
at cmake-time, so if entry ends with "/" it treat
|
||||
as directory, else - file
|
||||
|
||||
@@ -119,6 +129,13 @@ depends on target platform
|
||||
DEPLOY_ADD_LIBPATH variable used as additional
|
||||
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
|
||||
|
||||
]]
|
||||
|
||||
|
||||
@@ -130,7 +147,7 @@ if (POLICY CMP0053)
|
||||
cmake_policy(SET CMP0053 NEW)
|
||||
endif()
|
||||
set(__prop_names "LABEL;FULLNAME;COMPANY;ICON;INFO")
|
||||
list(APPEND __prop_names "ANDROID_TARGET_SDK;ANDROID_STORE_FILE;ANDROID_STORE_PASSWORD;ANDROID_KEY_PASSWORD;ANDROID_KEY_ALIAS")
|
||||
list(APPEND __prop_names "ANDROID_TARGET_SDK;ANDROID_STORE_FILE;ANDROID_STORE_PASSWORD;ANDROID_KEY_PASSWORD;ANDROID_KEY_ALIAS;ANDROID_NEW_LOADER")
|
||||
set(__version_names "MAJOR;MINOR;REVISION;BUILD;SUFFIX")
|
||||
include(TargetArch)
|
||||
if (NOT MY_ARCH)
|
||||
@@ -545,20 +562,28 @@ macro(deploy_target _T)
|
||||
set(_PLUG_FILES)
|
||||
set(_FILE_DIRS)
|
||||
set(_FILE_FILES)
|
||||
set(_LIBS_DIRS)
|
||||
set(_LIBS_FILES)
|
||||
set(_VERB)
|
||||
set(_WVERB 1> NUL)
|
||||
set(_OPTIONS)
|
||||
set(_ZIP_DMG 0)
|
||||
set(_ZIP_DMG 1)
|
||||
set(_DEB_OPT 1)
|
||||
set(_DEB_SERVICE 0)
|
||||
set(_cur_arg)
|
||||
set(__args "DESTINATION;DEPLOY_DIR;RESOURCES;PLUGINS;FILES;OPTIONS;VERBOSE;ZIP_DMG")
|
||||
set(__args "DESTINATION;DEPLOY_DIR;RESOURCES;PLUGINS;FILES;LIBS;OPTIONS;VERBOSE;DMG_NO_ZIP;DEB_USR_DIR;DEB_ADD_SERVICE")
|
||||
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)
|
||||
elseif("${_cur_arg}" STREQUAL "DMG_NO_ZIP")
|
||||
set(_ZIP_DMG 0)
|
||||
elseif("${_cur_arg}" STREQUAL "DEB_USR_DIR")
|
||||
set(_DEB_OPT 0)
|
||||
elseif("${_cur_arg}" STREQUAL "DEB_ADD_SERVICE")
|
||||
set(_DEB_SERVICE 1)
|
||||
endif()
|
||||
elseif ("${_cur_arg}" STREQUAL "DESTINATION")
|
||||
set(_cur_arg)
|
||||
@@ -572,6 +597,8 @@ macro(deploy_target _T)
|
||||
__add_file_or_dir(_PLUG_DIRS _PLUG_FILES "${_i}" "${_DEPLOY_DIR}")
|
||||
elseif ("${_cur_arg}" STREQUAL "FILES")
|
||||
__add_file_or_dir(_FILE_DIRS _FILE_FILES "${_i}" "${_DEPLOY_DIR}")
|
||||
elseif ("${_cur_arg}" STREQUAL "LIBS")
|
||||
__add_file_or_dir(_LIBS_DIRS _LIBS_FILES "${_i}" "${_DEPLOY_DIR}")
|
||||
elseif ("${_cur_arg}" STREQUAL "OPTIONS")
|
||||
list(APPEND _OPTIONS "${_i}")
|
||||
endif()
|
||||
@@ -585,7 +612,7 @@ macro(deploy_target _T)
|
||||
set(_DEP_LIBS)
|
||||
set(_add_search_path)
|
||||
set(_added_)
|
||||
set(_ADD_DEPS ${_PLUG_DIRS} ${_PLUG_FILES} ${_FILE_DIRS} ${_FILE_FILES})
|
||||
set(_ADD_DEPS ${_PLUG_DIRS} ${_PLUG_FILES} ${_FILE_DIRS} ${_FILE_FILES} ${_LIBS_DIRS} ${_LIBS_FILES})
|
||||
__gather_deps(${_T} _add_search_path _DEP_LIBS _DEP_LIBS_CS _added_)
|
||||
foreach (_L ${DEPLOY_ADD_LIBPATH})
|
||||
set(_add_search_path "${_add_search_path}${_dt_delim}${_L}")
|
||||
@@ -593,13 +620,42 @@ macro(deploy_target _T)
|
||||
#set(_add_search_path "${_add_search_path}")
|
||||
#message("app depend ${_T} libpath ${_add_search_path}")
|
||||
set(_CMD_)
|
||||
set(_has_deploy 0)
|
||||
set(_deployed)
|
||||
if ("x${CMAKE_SYSTEM_NAME}" STREQUAL "xLinux")
|
||||
if (NOT CMAKE_LDD)
|
||||
find_program(CMAKE_LDD ldd)
|
||||
set(_os_id "")
|
||||
set(_os_ver "")
|
||||
set(_paths "/usr/lib" "/etc")
|
||||
if (CMAKE_CROSSCOMPILING)
|
||||
set(_paths "${CMAKE_PREFIX_PATH}/lib" "${CMAKE_PREFIX_PATH}/../etc")
|
||||
endif()
|
||||
find_file(_release_file NAMES os-release lsb-release PATHS ${_paths} NO_DEFAULT_PATH)
|
||||
if (NOT "x${_release_file}" STREQUAL "x")
|
||||
file(STRINGS "${_release_file}" _lines)
|
||||
foreach(_l ${_lines})
|
||||
if ("${_l}" MATCHES "VERSION_ID=.*")
|
||||
string(SUBSTRING "${_l}" 11 -1 _os_ver)
|
||||
string(REPLACE "\"" "" _os_ver "${_os_ver}")
|
||||
#message("VERSION_ID ${_os_ver}")
|
||||
elseif ("${_l}" MATCHES "ID=.*")
|
||||
string(SUBSTRING "${_l}" 3 -1 _os_id)
|
||||
string(REPLACE "\"" "" _os_id "${_os_id}")
|
||||
#message("ID ${_os_id}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
#execute_process(COMMAND "lsb_release -si" OUTPUT_VARIABLE _os_id)
|
||||
#execute_process(COMMAND "lsb_release -sr" OUTPUT_VARIABLE _os_ver)
|
||||
set(_build "${${_T}_VERSION_BUILD}")
|
||||
if (NOT "x${_build}" STREQUAL "x")
|
||||
set(_build "-${_build}")
|
||||
endif()
|
||||
string(TOLOWER "${_os_id}${_os_ver}" _TARGET_OS)
|
||||
if ("x${_TARGET_OS}" STREQUAL "x")
|
||||
set(_TARGET_OS "linux")
|
||||
endif()
|
||||
string(REPLACE "_" "-" _DEBNAME "${_T}")
|
||||
string(REPLACE "_" "-" _DEBVERSION "${${_T}_VERSION}")
|
||||
string(REPLACE "_" "-" _DEBVERSION "${${_T}_VERSION}${_build}+${_TARGET_OS}")
|
||||
string(TOLOWER "${_DEBNAME}" _DEBNAME)
|
||||
set(_DEB_ARCH)
|
||||
if("_${MY_ARCH}" STREQUAL "_arm64")
|
||||
set(_DEB_ARCH "arm64")
|
||||
@@ -622,59 +678,163 @@ 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")
|
||||
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}/usr/share/${${_T}_COMPANY}/${_T}")
|
||||
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}/usr/lib/${${_T}_COMPANY}/${_T}")
|
||||
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}/usr/bin")
|
||||
set(_bin_path "${_AGD}/usr/bin")
|
||||
set(_lib_path "${_AGD}/usr/lib")
|
||||
set(_pli_path "${_AGD}/usr/lib/${${_T}_COMPANY}/${_T}")
|
||||
set(_res_path "${_AGD}/usr/share/${${_T}_COMPANY}/${_T}")
|
||||
set(_ico_path "${_AGD}/usr/share/pixmaps")
|
||||
set(_app_bin_path "/usr/bin")
|
||||
set(_app_ico_path "/usr/share/pixmaps")
|
||||
if(_DEB_OPT)
|
||||
set(_bin_path "${_AGD}/opt/${${_T}_COMPANY}/${_T}")
|
||||
set(_lib_path "${_AGD}/opt/${${_T}_COMPANY}/${_T}/lib")
|
||||
set(_pli_path "${_AGD}/opt/${${_T}_COMPANY}/${_T}")
|
||||
set(_res_path "${_AGD}/opt/${${_T}_COMPANY}/${_T}")
|
||||
set(_ico_path "${_AGD}/opt/${${_T}_COMPANY}/${_T}/pixmaps")
|
||||
set(_app_bin_path "/opt/${${_T}_COMPANY}/${_T}")
|
||||
set(_app_ico_path "/opt/${${_T}_COMPANY}/${_T}/pixmaps")
|
||||
endif()
|
||||
set(_CMD_ ${_CMD_} COMMAND mkdir ${_VERB} -p "${_bin_path}")
|
||||
set(_CMD_ ${_CMD_} COMMAND mkdir ${_VERB} -p "${_lib_path}")
|
||||
set(_CMD_ ${_CMD_} COMMAND mkdir ${_VERB} -p "${_pli_path}")
|
||||
set(_CMD_ ${_CMD_} COMMAND mkdir ${_VERB} -p "${_res_path}")
|
||||
set(_CMD_ ${_CMD_} COMMAND mkdir ${_VERB} -p "${_ico_path}")
|
||||
set(_CMD_ ${_CMD_} COMMAND mkdir ${_VERB} -p "${_AGD}/usr/share/applications")
|
||||
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES ${_bin_path})
|
||||
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES ${_pli_path})
|
||||
__make_copy(_CMD_ _RES_DIRS _RES_FILES ${_res_path})
|
||||
__make_copy(_CMD_ _LIBS_DIRS _LIBS_FILES ${_lib_path})
|
||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f "${_DEPLOY_DIR}/${_T}" "${_bin_path}/")
|
||||
if (_DEP_LIBS)
|
||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_DEP_LIBS} ${_AGD}/usr/lib)
|
||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f "${_DEP_LIBS}" "${_lib_path}/")
|
||||
endif()
|
||||
if (_ICON_NAME)
|
||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/usr/share/pixmaps)
|
||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f "${_ICON_FN}" "${_ico_path}/")
|
||||
endif()
|
||||
set(_deb_name "${_TV}_debian_${_DEB_ARCH}.deb")
|
||||
if(_DEB_OPT)
|
||||
set(_CMD_ ${_CMD_} COMMAND mkdir ${_VERB} -p "${_AGD}/usr/bin")
|
||||
set(_CMD_ ${_CMD_} COMMAND ln -srf ${_VERB} "${_bin_path}/${_T}" "${_AGD}/usr/bin/${_T}")
|
||||
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)
|
||||
find_program(CMAKE_LDD ldd)
|
||||
endif()
|
||||
set(_dt_opts -l "${CMAKE_LDD}")
|
||||
if (CMAKE_CROSSCOMPILING)
|
||||
set(_dt_searchdirs "${CMAKE_PREFIX_PATH}/lib")
|
||||
if (NOT "x${CMAKE_LIBRARY_ARCHITECTURE}" STREQUAL "x")
|
||||
set(_dt_searchdirs "${_dt_searchdirs}${_dt_delim}${CMAKE_PREFIX_PATH}/lib/${CMAKE_LIBRARY_ARCHITECTURE}")
|
||||
set(_dt_searchdirs "${_dt_searchdirs}${_dt_delim}${CMAKE_PREFIX_PATH}/../lib/${CMAKE_LIBRARY_ARCHITECTURE}")
|
||||
endif()
|
||||
set(_dt_opts -L "${CMAKE_READELF}" --dpkg-workdir "${CMAKE_DPKG_WORKDIR}" -s "${_dt_searchdirs}")
|
||||
endif()
|
||||
set(_deb_name "${_TV}_${_TARGET_OS}_${_DEB_ARCH}.deb")
|
||||
#message("VER = \"${_DEBVERSION}\"")
|
||||
#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}
|
||||
# gather deb dir
|
||||
COMMAND mkdir ${_VERB} -p ${_AGD}/DEBIAN
|
||||
COMMAND mkdir ${_VERB} -p ${_AGD}/usr/bin
|
||||
COMMAND mkdir ${_VERB} -p ${_AGD}/usr/lib
|
||||
COMMAND mkdir ${_VERB} -p ${_AGD}/usr/share/pixmaps
|
||||
COMMAND mkdir ${_VERB} -p ${_AGD}/usr/share/applications
|
||||
COMMAND cp ${_VERB} -f ${_DEPLOY_DIR}/${_T} ${_AGD}/usr/bin
|
||||
COMMAND rm -rf ${_VERB} "${_AGD}"
|
||||
COMMAND mkdir ${_VERB} -p "${_AGD}/DEBIAN"
|
||||
${_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 deploy_tool ${_OPTIONS} --prefix "Depends: " --dependencies -l ${CMAKE_LDD} -a "${_DEP_LIBS_CS}" -o "${_AGD}/usr/lib" ${_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=/usr/bin/${_T}" ${_D_echo}
|
||||
COMMAND echo "Icon=/usr/share/pixmaps/${_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}
|
||||
# generate deb
|
||||
COMMAND cd ${_AGD} "&&" md5deep -rl usr ">" DEBIAN/md5sums
|
||||
COMMAND cd ${_AGD} "&&" md5deep -rl opt usr ">" DEBIAN/md5sums
|
||||
COMMAND mkdir ${_VERB} -p ${_DESTINATION}
|
||||
COMMAND dpkg-deb -b ${_AGD} ${_DESTINATION}/${_deb_name}
|
||||
COMMAND dpkg-deb -Z gzip -b ${_AGD} ${_DESTINATION}/${_deb_name}
|
||||
VERBATIM
|
||||
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()
|
||||
|
||||
set(__deb_dir "${CMAKE_CURRENT_SOURCE_DIR}/debian-service/DEBIAN")
|
||||
file(GLOB _files "${__deb_dir}/*")
|
||||
foreach (_f ${_files})
|
||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f "${_f}" "${_AGD}/DEBIAN/")
|
||||
endforeach()
|
||||
|
||||
file(GLOB _files RELATIVE "${__deb_dir}" "${__deb_dir}/p*inst" "${__deb_dir}/p*rm" "${__deb_dir}/config")
|
||||
foreach (_f ${_files})
|
||||
set(_CMD_ ${_CMD_} COMMAND chmod 0755 ${_VERB} "${_AGD}/DEBIAN/${_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} (>= ${_DEBVERSION})" ${_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}_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)
|
||||
if (NOT CMAKE_OBJDUMP)
|
||||
find_program(CMAKE_OBJDUMP objdump)
|
||||
@@ -691,17 +851,18 @@ 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}")
|
||||
__make_copy(_CMD_ _LIBS_DIRS _LIBS_FILES "${_AGD}")
|
||||
set(_zip_name "${_TV}_windows_${MY_ARCH}.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}
|
||||
COMMAND ${PIP_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}/${_zip_name}\"" "\"${_TV}_win_${MY_ARCH}\""
|
||||
COMMENT "Generating ${_zip_name}"
|
||||
)
|
||||
set(_has_deploy 1)
|
||||
set(_deployed "deploy_${_T}")
|
||||
elseif (APPLE)
|
||||
set(MACOSX_BUNDLE_GUI_IDENTIFIER "${${_T}_FULLNAME}")
|
||||
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${${_T}_VERSION}")
|
||||
@@ -720,6 +881,7 @@ macro(deploy_target _T)
|
||||
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}/Contents/Resources")
|
||||
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}/Contents/PlugIns")
|
||||
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}/Contents/MacOS")
|
||||
__make_copy(_CMD_ _LIBS_DIRS _LIBS_FILES "${_AGD}/Contents/Frameworks")
|
||||
if (_ICON_NAME)
|
||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/Contents/Resources)
|
||||
endif()
|
||||
@@ -755,7 +917,7 @@ macro(deploy_target _T)
|
||||
${_CMD_}
|
||||
#COMMAND cp ${_ICON_FN} ${_AGD}/Contents/Resources
|
||||
#COMMAND cp -r ${_DEPLOY_DIR}/lang ${_AGD}/Contents/Resources
|
||||
COMMAND deploy_tool ${_VERB} ${_OPTIONS} -M "${CMAKE_OTOOL}" -P cocoa,minimal -S mac -q ${Qt5_ROOT} -s "\"${CMAKE_PREFIX_PATH}/lib${_add_search_path}\"" -o ${_AGD}/Contents/Frameworks -p ${_AGD}/Contents/PlugIns ${_AGD}/Contents/MacOS/${_T} ${_ADD_DEPS}
|
||||
COMMAND ${PIP_DEPLOY_TOOL} ${_VERB} ${_OPTIONS} -M "${CMAKE_OTOOL}" -P cocoa,minimal -S mac -q ${Qt5_ROOT} -s "\"${CMAKE_PREFIX_PATH}/lib${_add_search_path}\"" -o ${_AGD}/Contents/Frameworks -p ${_AGD}/Contents/PlugIns ${_AGD}/Contents/MacOS/${_T} ${_ADD_DEPS}
|
||||
#${_cmd_int}
|
||||
# prepare dmg dir
|
||||
COMMAND rm -rf ${_DMG}
|
||||
@@ -766,7 +928,7 @@ macro(deploy_target _T)
|
||||
${_cmd_gen_dmg}
|
||||
COMMENT "${_comment}"
|
||||
)
|
||||
set(_has_deploy 1)
|
||||
set(_deployed "deploy_${_T}")
|
||||
elseif (DEFINED ANDROID_PLATFORM)
|
||||
set(_res_files)
|
||||
set(_res_files "${_res_files}\n <qresource prefix=\"/\">")
|
||||
@@ -794,10 +956,12 @@ macro(deploy_target _T)
|
||||
get_target_property(_sources ${_T} SOURCES)
|
||||
get_target_property(_libs ${_T} LINK_LIBRARIES)
|
||||
get_target_property(_incs ${_T} INCLUDE_DIRECTORIES)
|
||||
get_target_property(_defs ${_T} COMPILE_DEFINITIONS)
|
||||
qt5_add_resources(_res_out "${_res_qrc}")
|
||||
add_library(${_ATA} SHARED ${_sources} ${_res_out})
|
||||
target_link_libraries(${_ATA} ${_libs})
|
||||
target_include_directories(${_ATA} PRIVATE ${_incs})
|
||||
target_compile_definitions(${_ATA} PRIVATE ${_defs})
|
||||
set_target_properties(${_T} PROPERTIES EXCLUDE_FROM_ALL 1)
|
||||
#message("create new target ${_ATA} ${_sources} ${_libs}")
|
||||
set(_AGD "${_DEPLOY_DIR}/${_T}.android")
|
||||
@@ -842,7 +1006,7 @@ macro(deploy_target _T)
|
||||
string(REPLACE "${ANDROID_SYSROOT_${ANDROID_ABI}}" "${ANDROID_SYSROOT_${_a}}" _lib_${_a} "${_lib_}")
|
||||
#message("search = ${_a_prefix}/lib")
|
||||
__make_copy(_CMD_ _empty _lib_${_a} "${_AGD}/libs/${_a}")
|
||||
set(_CMD_ ${_CMD_} COMMAND deploy_tool ${_VERB} ${_OPTIONS} -W "\"${CMAKE_OBJDUMP}\"" -s "${_a_prefix}/lib${_dt_delim}${Qt5_ROOT}/lib${_add_search_path}" -o "\"${_AGD}/libs/${_a}\"" --ignore "\"c${_dt_delim}m${_dt_delim}z${_dt_delim}dl${_dt_delim}log\"" "\"${_AGD}/libs/${_a}/lib${_AT}_${_a}.so\"" ${_ADD_DEPS})
|
||||
set(_CMD_ ${_CMD_} COMMAND ${PIP_DEPLOY_TOOL} ${_VERB} ${_OPTIONS} -W "\"${CMAKE_OBJDUMP}\"" -s "${_a_prefix}/lib${_dt_delim}${Qt5_ROOT}/lib${_add_search_path}" -o "\"${_AGD}/libs/${_a}\"" --ignore "\"c${_dt_delim}m${_dt_delim}z${_dt_delim}dl${_dt_delim}log\"" "\"${_AGD}/libs/${_a}/lib${_AT}_${_a}.so\"" ${_ADD_DEPS})
|
||||
#message("c++_${_a} -> ${_lib_${_a}}")
|
||||
endif()
|
||||
endforeach()
|
||||
@@ -861,6 +1025,11 @@ macro(deploy_target _T)
|
||||
if (NOT IS_ABSOLUTE "${ANDROID_STORE_FILE}")
|
||||
set(ANDROID_STORE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/android/${ANDROID_STORE_FILE}")
|
||||
endif()
|
||||
if (${_T}_ANDROID_NEW_LOADER)
|
||||
set(ANDROID_NEW_LOADER "true")
|
||||
else()
|
||||
set(ANDROID_NEW_LOADER "false")
|
||||
endif()
|
||||
set(__ANDROID_DEBUG_KEYSTORE__ "${_modules_dir}/android_debug.keystore")
|
||||
set(QT_DIR ${Qt5_ROOT})
|
||||
set(_out_json "${CMAKE_CURRENT_BINARY_DIR}/${_T}_android_deployment_settings.json")
|
||||
@@ -904,9 +1073,9 @@ macro(deploy_target _T)
|
||||
${_CMD_}
|
||||
COMMENT "Generating ${_base_name}.apk/aab"
|
||||
)
|
||||
set(_has_deploy 1)
|
||||
endif()
|
||||
if (_has_deploy)
|
||||
add_dependencies(deploy deploy_${_T})
|
||||
set(_deployed "deploy_${_T}")
|
||||
endif()
|
||||
foreach (_d ${_deployed})
|
||||
add_dependencies(deploy ${_d})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
@@ -78,8 +78,17 @@ find_file(PIP_H_INCLUDE "pip.h" HINTS ${_PIP_INCDIR} $ENV{SMSDK_DIR}/include/pip
|
||||
#else()
|
||||
get_filename_component(PIP_INCLUDES ${PIP_H_INCLUDE} PATH)
|
||||
#endif()
|
||||
find_program(PIP_CMG pip_cmg HINTS ${_PIP_BINDIR} ${_PIP_FP_DP})
|
||||
find_program(PIP_RC pip_rc HINTS ${_PIP_BINDIR} ${_PIP_FP_DP})
|
||||
set(__ext "")
|
||||
if ("x${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "xWindows")
|
||||
set(__ext ".exe")
|
||||
if (CMAKE_CROSSCOMPILING)
|
||||
set(_PIP_FP_DP)
|
||||
endif()
|
||||
endif()
|
||||
#message("FIND \"${__ext}\" -> ${_PIP_BINDIR}")
|
||||
find_program(PIP_CMG pip_cmg${__ext} HINTS ${_PIP_BINDIR} ${_PIP_FP_DP})
|
||||
find_program(PIP_RC pip_rc${__ext} HINTS ${_PIP_BINDIR} ${_PIP_FP_DP})
|
||||
find_program(PIP_DEPLOY_TOOL deploy_tool${__ext} HINTS ${_PIP_BINDIR} ${_PIP_FP_DP})
|
||||
if (NOT PIP_LIBRARY)
|
||||
message(FATAL_ERROR "Can`t find PIP library!")
|
||||
endif()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
androidBuildToolsVersion=
|
||||
androidCompileSdkVersion=@ANDROID_TARGET_SDK@
|
||||
android.bundle.enableUncompressedNativeLibs=@ANDROID_NEW_LOADER@
|
||||
buildDir=build
|
||||
qt5AndroidDir=@Qt5_ROOT@/src/android/java
|
||||
DEBUG_STORE_FILE=@__ANDROID_DEBUG_KEYSTORE__@
|
||||
|
||||
Reference in New Issue
Block a user