Compare commits

..

8 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
da13c52c51 get_system() in deploy now check if "*release" file exists 2025-07-09 12:43:37 +03:00
698d24e831 new cmake 2025-04-29 21:50:48 +03:00
558034bbdb fix shstk_find_header 2025-01-08 17:35:05 +03:00
3 changed files with 23 additions and 13 deletions

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.13)
project(cmake LANGUAGES NONE)
file(GLOB CMAKES "*.cmake" "*.in" "*.keystore")
if(INSTALL_DIR)

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 (NOT "x${_release_file}" STREQUAL "x")
if (_release_file)
file(STRINGS "${_release_file}" _lines)
foreach(_l ${_lines})
if ("${_l}" MATCHES "VERSION_ID=.*")
@@ -390,9 +392,11 @@ macro(get_system _OS _ARCH)
#message("ID ${_os_id}")
endif()
endforeach()
endif()
string(TOLOWER "${_os_id}${_os_ver}" ${_OS})
if ("x${${_OS}}" STREQUAL "x")
string(TOLOWER "${_os_id}${_os_ver}" ${_OS})
if ("x${${_OS}}" STREQUAL "x")
set(${_OS} "linux")
endif()
else()
set(${_OS} "linux")
endif()
set(${_ARCH} "${MY_ARCH}")
@@ -426,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)
@@ -439,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}")
@@ -455,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}/")
@@ -476,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)
@@ -706,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)
@@ -733,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)
@@ -305,6 +305,7 @@ endmacro()
macro(shstk_find_header name filename add_find_info)
string(TOUPPER "${name}" ${name}_uppercase)
if(NOT ${name}_VERSION)
find_file(${name}_H_INCLUDE "${filename}" HINTS ${${name}_INCDIR} NO_CMAKE_FIND_ROOT_PATH)
find_file(${name}_H_INCLUDE "${filename}" HINTS ${${name}_INCDIR})
#message("${name}_H_INCLUDE \"${filename}\" HINTS \"${${name}_INCDIR}\" = \"${${name}_H_INCLUDE}\"")
if (NOT ${name}_H_INCLUDE)