DeployMacros LIBS support
This commit is contained in:
@@ -69,17 +69,24 @@ 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> ...] ]
|
[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]
|
[LIBS <dir|file> [<dir|file> ...] ]
|
||||||
|
[OPTIONS <flag> ...]
|
||||||
|
[VERBOSE]
|
||||||
|
[DMG_NO_ZIP]
|
||||||
[DEB_USR_DIR] [DEB_ADD_SERVICE])
|
[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:
|
||||||
*.zip on Windows, *.deb on Linux, *.dmg an MacOS, *.apk and *.aab on Android.
|
* .zip on Windows
|
||||||
If not defined ZIP_NO_DMG then *.dmg.zip will be created on MacOS.
|
* .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
|
You should set version and deploy properties
|
||||||
before call this macro, see
|
before call this macro, see
|
||||||
@@ -94,17 +101,19 @@ DEPLOY_DIR - dir where you install
|
|||||||
* <T>.app directory with executable on MacOS
|
* <T>.app directory with executable on MacOS
|
||||||
|
|
||||||
DESTINATION - dir where macro place package
|
DESTINATION - dir where macro place package
|
||||||
|
|
||||||
RESOURCES, PLUGINS and FILES - list of directories and files, copied to:
|
RESOURCES, PLUGINS and FILES - list of directories and files, copied to:
|
||||||
|
|
||||||
| | Windows | Linux | Linux (DEB_USR_DIR) | MacOS |
|
| | Windows | Linux | Linux (DEB_USR_DIR) | MacOS |
|
||||||
|-----------|---------|---------------------|---------------------------|--------------------|
|
|-----------|---------|-------------------------|---------------------------|---------------------|
|
||||||
| RESOURCES | root | /opt/COMPANY/target | /usr/share/COMPANY/target | Contents/Resources |
|
| RESOURCES | root | /opt/COMPANY/target | /usr/share/COMPANY/target | Contents/Resources |
|
||||||
| PLUGINS | root | /opt/COMPANY/target | /usr/lib/COMPANY/target | Contents/PlugIns |
|
| PLUGINS | root | /opt/COMPANY/target | /usr/lib/COMPANY/target | Contents/PlugIns |
|
||||||
| FILES | root | /opt/COMPANY/target | /usr/bin | Contents/MacOS |
|
| 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
|
Relative paths are taken from DEPLOY_DIR
|
||||||
Also check library dependencies from PLUGINS and FILES
|
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
|
at cmake-time, so if entry ends with "/" it treat
|
||||||
as directory, else - file
|
as directory, else - file
|
||||||
|
|
||||||
@@ -553,6 +562,8 @@ macro(deploy_target _T)
|
|||||||
set(_PLUG_FILES)
|
set(_PLUG_FILES)
|
||||||
set(_FILE_DIRS)
|
set(_FILE_DIRS)
|
||||||
set(_FILE_FILES)
|
set(_FILE_FILES)
|
||||||
|
set(_LIBS_DIRS)
|
||||||
|
set(_LIBS_FILES)
|
||||||
set(_VERB)
|
set(_VERB)
|
||||||
set(_WVERB 1> NUL)
|
set(_WVERB 1> NUL)
|
||||||
set(_OPTIONS)
|
set(_OPTIONS)
|
||||||
@@ -560,14 +571,14 @@ macro(deploy_target _T)
|
|||||||
set(_DEB_OPT 1)
|
set(_DEB_OPT 1)
|
||||||
set(_DEB_SERVICE 0)
|
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;DEB_ADD_SERVICE")
|
set(__args "DESTINATION;DEPLOY_DIR;RESOURCES;PLUGINS;FILES;LIBS;OPTIONS;VERBOSE;DMG_NO_ZIP;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}")
|
||||||
if ("${_cur_arg}" STREQUAL "VERBOSE")
|
if ("${_cur_arg}" STREQUAL "VERBOSE")
|
||||||
set(_VERB -v)
|
set(_VERB -v)
|
||||||
set(_WVERB)
|
set(_WVERB)
|
||||||
elseif("${_cur_arg}" STREQUAL "ZIP_NO_DMG")
|
elseif("${_cur_arg}" STREQUAL "DMG_NO_ZIP")
|
||||||
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)
|
||||||
@@ -586,6 +597,8 @@ macro(deploy_target _T)
|
|||||||
__add_file_or_dir(_PLUG_DIRS _PLUG_FILES "${_i}" "${_DEPLOY_DIR}")
|
__add_file_or_dir(_PLUG_DIRS _PLUG_FILES "${_i}" "${_DEPLOY_DIR}")
|
||||||
elseif ("${_cur_arg}" STREQUAL "FILES")
|
elseif ("${_cur_arg}" STREQUAL "FILES")
|
||||||
__add_file_or_dir(_FILE_DIRS _FILE_FILES "${_i}" "${_DEPLOY_DIR}")
|
__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")
|
elseif ("${_cur_arg}" STREQUAL "OPTIONS")
|
||||||
list(APPEND _OPTIONS "${_i}")
|
list(APPEND _OPTIONS "${_i}")
|
||||||
endif()
|
endif()
|
||||||
@@ -599,7 +612,7 @@ macro(deploy_target _T)
|
|||||||
set(_DEP_LIBS)
|
set(_DEP_LIBS)
|
||||||
set(_add_search_path)
|
set(_add_search_path)
|
||||||
set(_added_)
|
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_)
|
__gather_deps(${_T} _add_search_path _DEP_LIBS _DEP_LIBS_CS _added_)
|
||||||
foreach (_L ${DEPLOY_ADD_LIBPATH})
|
foreach (_L ${DEPLOY_ADD_LIBPATH})
|
||||||
set(_add_search_path "${_add_search_path}${_dt_delim}${_L}")
|
set(_add_search_path "${_add_search_path}${_dt_delim}${_L}")
|
||||||
@@ -690,6 +703,7 @@ macro(deploy_target _T)
|
|||||||
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES ${_bin_path})
|
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES ${_bin_path})
|
||||||
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES ${_pli_path})
|
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES ${_pli_path})
|
||||||
__make_copy(_CMD_ _RES_DIRS _RES_FILES ${_res_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}/")
|
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f "${_DEPLOY_DIR}/${_T}" "${_bin_path}/")
|
||||||
if (_DEP_LIBS)
|
if (_DEP_LIBS)
|
||||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f "${_DEP_LIBS}" "${_lib_path}/")
|
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f "${_DEP_LIBS}" "${_lib_path}/")
|
||||||
@@ -837,6 +851,7 @@ macro(deploy_target _T)
|
|||||||
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}")
|
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}")
|
||||||
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}")
|
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}")
|
||||||
__make_copy(_CMD_ _FILE_DIRS _FILE_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")
|
set(_zip_name "${_TV}_windows_${MY_ARCH}.zip")
|
||||||
add_custom_target(deploy_${_T}
|
add_custom_target(deploy_${_T}
|
||||||
# gather dir
|
# gather dir
|
||||||
@@ -866,6 +881,7 @@ macro(deploy_target _T)
|
|||||||
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}/Contents/Resources")
|
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}/Contents/Resources")
|
||||||
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}/Contents/PlugIns")
|
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}/Contents/PlugIns")
|
||||||
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}/Contents/MacOS")
|
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}/Contents/MacOS")
|
||||||
|
__make_copy(_CMD_ _LIBS_DIRS _LIBS_FILES "${_AGD}/Contents/Frameworks")
|
||||||
if (_ICON_NAME)
|
if (_ICON_NAME)
|
||||||
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/Contents/Resources)
|
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/Contents/Resources)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
Reference in New Issue
Block a user