Compare commits

...

5 Commits

Author SHA1 Message Date
04dc525afa fix corrupted CMAKE_OBJDUMP on windows host 2026-02-28 17:23:55 +03:00
28e7ef2205 Merge branch 'master' of https://git.shstk.ru/SHS/cmake 2026-01-29 12:46:23 +03:00
0c0ccb1515 add PACKAGE_SUFFIX to deploy_target 2026-01-29 12:45:58 +03:00
2982f37522 PIP_FREERTOS -> PIP_MICRO 2025-10-18 08:17:08 +03:00
f74a38900f fix get_system() 2025-07-17 16:16:53 +03:00
2 changed files with 16 additions and 9 deletions

View File

@@ -86,6 +86,7 @@ deploy_target(<target> [DEPLOY_DIR <dir>]
[PLUGINS <dir|file> [<dir|file> ...] ]
[FILES <dir|file> [<dir|file> ...] ]
[LIBS <dir|file> [<dir|file> ...] ]
[PACKAGE_SUFFIX <suffix>]
[OPTIONS <flag> ...]
[VERBOSE]
[DMG_NO_ZIP]
@@ -137,6 +138,7 @@ Examples:
* "$<TARGET_FILE_NAME:myexe>" - right, relative item and TARGET_FILE_NAME is only filename
* "/$<TARGET_FILE_NAME:myexe>" - wrong, absolute item with only filename
PACKAGE_SUFFIX is additional text for package, after base name and before version
This macro using "deploy_tool" from PIP,
so make sure it can be executed from shell
@@ -169,7 +171,7 @@ if (POLICY CMP0053)
cmake_policy(SET CMP0053 NEW)
endif()
if (NOT _dep_exists AND NOT PIP_FREERTOS)
if (NOT _dep_exists AND NOT PIP_MICRO)
set(_dep_exists 1)
add_custom_target(deploy COMMENT "Deploy")
endif()
@@ -377,7 +379,7 @@ macro(get_system _OS _ARCH)
endforeach()
endif()
find_file(_release_file NAMES os-release lsb-release PATHS ${_paths} NO_DEFAULT_PATH)
if ("${_release_file}")
if (_release_file)
file(STRINGS "${_release_file}" _lines)
foreach(_l ${_lines})
if ("${_l}" MATCHES "VERSION_ID=.*")
@@ -428,6 +430,7 @@ macro(deploy_target _T)
set(_FILE_FILES)
set(_LIBS_DIRS)
set(_LIBS_FILES)
set(_SUFFIX)
set(_VERB)
set(_WVERB 1> NUL)
set(_DEBUG_SUFFIX)
@@ -441,7 +444,7 @@ macro(deploy_target _T)
set(_DEB_SERVICE 0)
set(_MANIFEST 0)
set(_cur_arg)
set(__args "DESTINATION;DEPLOY_DIR;RESOURCES;PLUGINS;FILES;LIBS;OPTIONS;VERBOSE;DMG_NO_ZIP;DEB_USR_DIR;DEB_ADD_SERVICE;ADD_MANIFEST")
set(__args "PACKAGE_SUFFIX;DESTINATION;DEPLOY_DIR;RESOURCES;PLUGINS;FILES;LIBS;OPTIONS;VERBOSE;DMG_NO_ZIP;DEB_USR_DIR;DEB_ADD_SERVICE;ADD_MANIFEST")
foreach(_i ${ARGN})
if (_i IN_LIST __args)
set(_cur_arg "${_i}")
@@ -457,6 +460,9 @@ macro(deploy_target _T)
elseif("x${_cur_arg}" STREQUAL "xADD_MANIFEST")
set(_MANIFEST 1)
endif()
elseif ("x${_cur_arg}" STREQUAL "xPACKAGE_SUFFIX")
set(_cur_arg)
set(_SUFFIX "${_i}")
elseif ("x${_cur_arg}" STREQUAL "xDESTINATION")
set(_cur_arg)
set(_DESTINATION "${_i}/")
@@ -478,7 +484,7 @@ macro(deploy_target _T)
endforeach()
get_filename_component(_ICON_NAME "${${_T}_ICON}" NAME)
get_filename_component(_ICON_FN "${${_T}_ICON}" ABSOLUTE BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(_TV "${_T}_${${_T}_VERSION}")
set(_TV "${_T}${_SUFFIX}_${${_T}_VERSION}")
set(_DEP_LIBPATH)
set(_DEP_LIBS_CS)
set(_DEP_LIBS)
@@ -708,12 +714,13 @@ macro(deploy_target _T)
endif()
elseif(WIN32)
if (NOT CMAKE_OBJDUMP)
find_program(CMAKE_OBJDUMP objdump)
set(_OBJDUMP "${CMAKE_OBJDUMP}")
if (NOT _OBJDUMP)
find_program(_OBJDUMP objdump)
endif()
set(_AGD "${_DEPLOY_DIR}/${_TV}_win_${MY_ARCH}/")
if (__win_host)
string(REPLACE "/" "\\" CMAKE_OBJDUMP "${CMAKE_OBJDUMP}")
string(REPLACE "/" "\\" _OBJDUMP "${_OBJDUMP}")
endif()
set(_var_exe "${_DEPLOY_DIR}/$<TARGET_FILE_NAME:${_T}>")
set(_var_empty)
@@ -735,7 +742,7 @@ macro(deploy_target _T)
# gather dir
${_CMD_}
COMMAND ${PIP_DEPLOY_TOOL} ${_VERB} ${_OPTIONS} -W "\"${CMAKE_OBJDUMP}\"" -P windows,minimal -S windows -q "\"${Qt${_Qt_}_ROOT}\"" -s "\"${_search_path}\"" -o "${_AGD}" -p "${_AGD}" "\"${_AGD}$<TARGET_FILE_NAME:${_T}>\"" ${_ADD_DEPS}
COMMAND ${PIP_DEPLOY_TOOL} ${_VERB} ${_OPTIONS} -W "\"${_OBJDUMP}\"" -P windows,minimal -S windows -q "\"${Qt${_Qt_}_ROOT}\"" -s "\"${_search_path}\"" -o "${_AGD}" -p "${_AGD}" "\"${_AGD}$<TARGET_FILE_NAME:${_T}>\"" ${_ADD_DEPS}
# zip
COMMAND cd "\"${_DEPLOY_DIR}\"" "&&" zip -q -r "\"${_DESTINATION}/${_zip_name}\"" "\"${_TV}_win_${MY_ARCH}\""
COMMENT "Generating ${_zip_name}"

View File

@@ -59,7 +59,7 @@ macro(shstk_begin_project name)
endif()
shstk_define_option(LOCAL "Local install" OFF)
if (DEFINED ENV{QNX_HOST} OR PIP_FREERTOS)
if (DEFINED ENV{QNX_HOST} OR PIP_MICRO)
set(STATIC_LIB_DEFAULT ON)
else()
set(STATIC_LIB_DEFAULT OFF)