git-svn-id: svn://db.shs.com.ru/pip@1011 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -336,6 +336,8 @@ END
|
|||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
|
||||||
|
# Help macros begin
|
||||||
|
|
||||||
macro(__add_file_or_dir _DIR_VAR _FILE_VAR _PATH _RELPATH)
|
macro(__add_file_or_dir _DIR_VAR _FILE_VAR _PATH _RELPATH)
|
||||||
set(_p)
|
set(_p)
|
||||||
if (IS_ABSOLUTE "${_PATH}")
|
if (IS_ABSOLUTE "${_PATH}")
|
||||||
@@ -352,6 +354,64 @@ macro(__add_file_or_dir _DIR_VAR _FILE_VAR _PATH _RELPATH)
|
|||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
set(__win_host 0)
|
||||||
|
if ("x${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "xWindows")
|
||||||
|
set(__win_host 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
macro(__make_win_path _in_path _out_var _is_dir _out_dir)
|
||||||
|
set(_add "")
|
||||||
|
if (${_is_dir})
|
||||||
|
set(_add "/")
|
||||||
|
endif()
|
||||||
|
file(TO_NATIVE_PATH "${_in_path}" ${_out_var})
|
||||||
|
string(REPLACE "//" "/" ${_out_var} "${${_out_var}}${_add}")
|
||||||
|
if (NOT "x${_out_dir}" STREQUAL "x")
|
||||||
|
string(LENGTH "${${_out_var}}" __sl)
|
||||||
|
math(EXPR __sl ${__sl}-1)
|
||||||
|
string(SUBSTRING "${${_out_var}}" 0 ${__sl} __substr)
|
||||||
|
get_filename_component(${_out_dir} "${__substr}" NAME)
|
||||||
|
#message("dirname src=\"${${_out_var}}\", len=${__sl} \"${__substr}\" = \"${${_out_dir}}\"")
|
||||||
|
endif()
|
||||||
|
string(REPLACE "/" "\\" ${_out_var} "${${_out_var}}")
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
macro(__make_dir _cmd _dest)
|
||||||
|
if (__win_host)
|
||||||
|
__make_win_path("${_dest}" __d 1 "")
|
||||||
|
set(${_cmd} ${${_cmd}} COMMAND if not exist "\"${__d}\"" mkdir "\"${__d}\"")
|
||||||
|
else()
|
||||||
|
set(${_cmd} ${${_cmd}} COMMAND mkdir ${_VERB} -p "${_dest}")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
macro(__make_copy _cmd _dirs _files _dest)
|
||||||
|
if (${_dirs} OR ${_files})
|
||||||
|
__make_dir(${_cmd} "${_dest}")
|
||||||
|
endif()
|
||||||
|
if (__win_host)
|
||||||
|
__make_win_path("${_dest}" _wdest 1 "")
|
||||||
|
foreach(_d ${${_dirs}})
|
||||||
|
__make_win_path("${_d}" _wsrc 1 _dirname)
|
||||||
|
__make_dir(${_cmd} "${_dest}/${_dirname}")
|
||||||
|
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r /e "${_wsrc}*" "\"${_wdest}${_dirname}\\\"" ${_WVERB})
|
||||||
|
endforeach()
|
||||||
|
foreach(_f ${${_files}})
|
||||||
|
__make_win_path("${_f}" _wsrc 0 "")
|
||||||
|
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r "\"${_wsrc}\"" "\"${_wdest}\"" ${_WVERB})
|
||||||
|
endforeach()
|
||||||
|
else()
|
||||||
|
foreach(_d ${${_dirs}})
|
||||||
|
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -rf "${_d}" "${_dest}/")
|
||||||
|
endforeach()
|
||||||
|
foreach(_f ${${_files}})
|
||||||
|
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -f "${_f}" "${_dest}/")
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
# Help macros end
|
||||||
|
|
||||||
|
|
||||||
macro(deploy_target _T)
|
macro(deploy_target _T)
|
||||||
set(_DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
set(_DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||||
@@ -414,7 +474,7 @@ macro(deploy_target _T)
|
|||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
#message("app depend libpath ${_DEP_LIBPATH}")
|
#message("app depend libpath ${_DEP_LIBPATH}")
|
||||||
set(_CMD_COPY)
|
set(_CMD_)
|
||||||
set(_has_deploy 0)
|
set(_has_deploy 0)
|
||||||
if ("x${CMAKE_SYSTEM_NAME}" STREQUAL "xLinux")
|
if ("x${CMAKE_SYSTEM_NAME}" STREQUAL "xLinux")
|
||||||
if (NOT CMAKE_LDD)
|
if (NOT CMAKE_LDD)
|
||||||
@@ -444,25 +504,14 @@ macro(deploy_target _T)
|
|||||||
set(_C_echo ">>" "${_AGD}/DEBIAN/control")
|
set(_C_echo ">>" "${_AGD}/DEBIAN/control")
|
||||||
set(_D_echof ">" "${_AGD}/usr/share/applications/${_DEBNAME}.desktop")
|
set(_D_echof ">" "${_AGD}/usr/share/applications/${_DEBNAME}.desktop")
|
||||||
set(_D_echo ">>" "${_AGD}/usr/share/applications/${_DEBNAME}.desktop")
|
set(_D_echo ">>" "${_AGD}/usr/share/applications/${_DEBNAME}.desktop")
|
||||||
macro(__make_copy _cmd _dirs _files _dest)
|
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}/usr/share/${${_T}_COMPANY}/${_T}")
|
||||||
if (${_dirs} OR ${_files})
|
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}/usr/lib/${${_T}_COMPANY}/${_T}")
|
||||||
set(${_cmd} ${${_cmd}} COMMAND mkdir ${_VERB} -p "${_dest}")
|
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}/usr/bin")
|
||||||
endif()
|
|
||||||
foreach(_d ${${_dirs}})
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -rf "${_d}" "${_dest}/")
|
|
||||||
endforeach()
|
|
||||||
foreach(_f ${${_files}})
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -f "${_f}" "${_dest}/")
|
|
||||||
endforeach()
|
|
||||||
endmacro()
|
|
||||||
__make_copy(_CMD_COPY _RES_DIRS _RES_FILES "${_AGD}/usr/share/${${_T}_COMPANY}/${_T}")
|
|
||||||
__make_copy(_CMD_COPY _PLUG_DIRS _PLUG_FILES "${_AGD}/usr/lib/${${_T}_COMPANY}/${_T}")
|
|
||||||
__make_copy(_CMD_COPY _FILE_DIRS _FILE_FILES "${_AGD}/usr/bin")
|
|
||||||
if (_DEP_LIBS)
|
if (_DEP_LIBS)
|
||||||
set(_CMD_COPY ${_CMD_COPY} COMMAND cp ${_VERB} -f ${_DEP_LIBS} ${_AGD}/usr/lib)
|
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_DEP_LIBS} ${_AGD}/usr/lib)
|
||||||
endif()
|
endif()
|
||||||
if (_ICON_NAME)
|
if (_ICON_NAME)
|
||||||
set(_CMD_COPY ${_CMD_COPY} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/usr/share/pixmaps)
|
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/usr/share/pixmaps)
|
||||||
endif()
|
endif()
|
||||||
add_custom_target(deploy_${_T}
|
add_custom_target(deploy_${_T}
|
||||||
# gather deb dir
|
# gather deb dir
|
||||||
@@ -472,7 +521,7 @@ macro(deploy_target _T)
|
|||||||
COMMAND mkdir ${_VERB} -p ${_AGD}/usr/share/pixmaps
|
COMMAND mkdir ${_VERB} -p ${_AGD}/usr/share/pixmaps
|
||||||
COMMAND mkdir ${_VERB} -p ${_AGD}/usr/share/applications
|
COMMAND mkdir ${_VERB} -p ${_AGD}/usr/share/applications
|
||||||
COMMAND cp ${_VERB} -f ${_DEPLOY_DIR}/${_T} ${_AGD}/usr/bin
|
COMMAND cp ${_VERB} -f ${_DEPLOY_DIR}/${_T} ${_AGD}/usr/bin
|
||||||
${_CMD_COPY}
|
${_CMD_}
|
||||||
|
|
||||||
COMMAND echo "Package: ${_DEBNAME}" ${_C_echof}
|
COMMAND echo "Package: ${_DEBNAME}" ${_C_echof}
|
||||||
COMMAND echo "Version: ${_DEBVERSION}" ${_C_echo}
|
COMMAND echo "Version: ${_DEBVERSION}" ${_C_echo}
|
||||||
@@ -512,72 +561,20 @@ macro(deploy_target _T)
|
|||||||
find_program(CMAKE_OBJDUMP objdump)
|
find_program(CMAKE_OBJDUMP objdump)
|
||||||
endif()
|
endif()
|
||||||
set(_AGD "${_DEPLOY_DIR}/${_TV}_win_${MY_ARCH}/")
|
set(_AGD "${_DEPLOY_DIR}/${_TV}_win_${MY_ARCH}/")
|
||||||
set(_win_host 0)
|
if (__win_host)
|
||||||
if ("x${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "xWindows")
|
|
||||||
set(_win_host 1)
|
|
||||||
endif()
|
|
||||||
macro(__make_win_path _in_path _out_var _is_dir _out_dir)
|
|
||||||
set(_add "")
|
|
||||||
if (${_is_dir})
|
|
||||||
set(_add "/")
|
|
||||||
endif()
|
|
||||||
file(TO_NATIVE_PATH "${_in_path}" ${_out_var})
|
|
||||||
string(REPLACE "//" "/" ${_out_var} "${${_out_var}}${_add}")
|
|
||||||
if (NOT "x${_out_dir}" STREQUAL "x")
|
|
||||||
string(LENGTH "${${_out_var}}" __sl)
|
|
||||||
math(EXPR __sl ${__sl}-1)
|
|
||||||
string(SUBSTRING "${${_out_var}}" 0 ${__sl} __substr)
|
|
||||||
get_filename_component(${_out_dir} "${__substr}" NAME)
|
|
||||||
#message("dirname src=\"${${_out_var}}\", len=${__sl} \"${__substr}\" = \"${${_out_dir}}\"")
|
|
||||||
endif()
|
|
||||||
string(REPLACE "/" "\\" ${_out_var} "${${_out_var}}")
|
|
||||||
endmacro()
|
|
||||||
macro(__make_dir _cmd _dest)
|
|
||||||
if (_win_host)
|
|
||||||
__make_win_path("${_dest}" __d 1 "")
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND if not exist "\"${__d}\"" mkdir "\"${__d}\"")
|
|
||||||
else()
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND mkdir ${_VERB} -p "${_dest}")
|
|
||||||
endif()
|
|
||||||
endmacro()
|
|
||||||
macro(__make_copy _cmd _dirs _files _dest)
|
|
||||||
if (${_dirs} OR ${_files})
|
|
||||||
__make_dir(${_cmd} "${_dest}")
|
|
||||||
endif()
|
|
||||||
if (_win_host)
|
|
||||||
__make_win_path("${_dest}" _wdest 1 "")
|
|
||||||
foreach(_d ${${_dirs}})
|
|
||||||
__make_win_path("${_d}" _wsrc 1 _dirname)
|
|
||||||
__make_dir(${_cmd} "${_dest}/${_dirname}")
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r "${_wsrc}*" "\"${_wdest}${_dirname}\\\"" ${_WVERB})
|
|
||||||
endforeach()
|
|
||||||
foreach(_f ${${_files}})
|
|
||||||
__make_win_path("${_f}" _wsrc 0 "")
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND xcopy /y /r "\"${_wsrc}\"" "\"${_wdest}\"" ${_WVERB})
|
|
||||||
endforeach()
|
|
||||||
else()
|
|
||||||
foreach(_d ${${_dirs}})
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -rf "${_d}" "${_dest}/")
|
|
||||||
endforeach()
|
|
||||||
foreach(_f ${${_files}})
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -f "${_f}" "${_dest}/")
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
endmacro()
|
|
||||||
if (_win_host)
|
|
||||||
string(REPLACE "/" "\\" CMAKE_OBJDUMP "${CMAKE_OBJDUMP}")
|
string(REPLACE "/" "\\" CMAKE_OBJDUMP "${CMAKE_OBJDUMP}")
|
||||||
endif()
|
endif()
|
||||||
set(_var_exe "${_DEPLOY_DIR}/${_T}.exe")
|
set(_var_exe "${_DEPLOY_DIR}/${_T}.exe")
|
||||||
set(_var_empty)
|
set(_var_empty)
|
||||||
__make_dir(_CMD_COPY "${_AGD}")
|
__make_dir(_CMD_ "${_AGD}")
|
||||||
__make_dir(_CMD_COPY "${_DESTINATION}")
|
__make_dir(_CMD_ "${_DESTINATION}")
|
||||||
__make_copy(_CMD_COPY _var_empty _var_exe "${_AGD}")
|
__make_copy(_CMD_ _var_empty _var_exe "${_AGD}")
|
||||||
__make_copy(_CMD_COPY _RES_DIRS _RES_FILES "${_AGD}")
|
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}")
|
||||||
__make_copy(_CMD_COPY _PLUG_DIRS _PLUG_FILES "${_AGD}")
|
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}")
|
||||||
__make_copy(_CMD_COPY _FILE_DIRS _FILE_FILES "${_AGD}")
|
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}")
|
||||||
add_custom_target(deploy_${_T}
|
add_custom_target(deploy_${_T}
|
||||||
# gather dir
|
# gather dir
|
||||||
${_CMD_COPY}
|
${_CMD_}
|
||||||
|
|
||||||
COMMAND deploy_tool ${_VERB} ${_OPTIONS} -W "\"${CMAKE_OBJDUMP}\"" -P windows,minimal -S windows -q "\"${Qt5_ROOT}\"" -s "\"${CMAKE_PREFIX_PATH}/bin;${MINGW_BIN};${DEPLOY_ADD_LIBPATH}${_DEP_LIBPATH}\"" -o ${_AGD} -p ${_AGD} "\"${_AGD}${_T}.exe\"" ${_ADD_DEPS}
|
COMMAND deploy_tool ${_VERB} ${_OPTIONS} -W "\"${CMAKE_OBJDUMP}\"" -P windows,minimal -S windows -q "\"${Qt5_ROOT}\"" -s "\"${CMAKE_PREFIX_PATH}/bin;${MINGW_BIN};${DEPLOY_ADD_LIBPATH}${_DEP_LIBPATH}\"" -o ${_AGD} -p ${_AGD} "\"${_AGD}${_T}.exe\"" ${_ADD_DEPS}
|
||||||
# zip
|
# zip
|
||||||
@@ -599,29 +596,18 @@ macro(deploy_target _T)
|
|||||||
set_target_properties(${_T} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_ROOT}/Modules/PIMacOSBundle.plist.in")
|
set_target_properties(${_T} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_ROOT}/Modules/PIMacOSBundle.plist.in")
|
||||||
set(_AGD "${_DEPLOY_DIR}/${_T}.app")
|
set(_AGD "${_DEPLOY_DIR}/${_T}.app")
|
||||||
set(_DMG "${CMAKE_CURRENT_BINARY_DIR}/dmg")
|
set(_DMG "${CMAKE_CURRENT_BINARY_DIR}/dmg")
|
||||||
macro(__make_copy _cmd _dirs _files _dest)
|
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}/Contents/Resources")
|
||||||
if (${_dirs} OR ${_files})
|
__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}/Contents/PlugIns")
|
||||||
set(${_cmd} ${${_cmd}} COMMAND mkdir ${_VERB} -p "${_dest}")
|
__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}/Contents/MacOS")
|
||||||
endif()
|
|
||||||
foreach(_d ${${_dirs}})
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -rf "${_d}" "${_dest}/")
|
|
||||||
endforeach()
|
|
||||||
foreach(_f ${${_files}})
|
|
||||||
set(${_cmd} ${${_cmd}} COMMAND cp ${_VERB} -f "${_f}" "${_dest}/")
|
|
||||||
endforeach()
|
|
||||||
endmacro()
|
|
||||||
__make_copy(_CMD_COPY _RES_DIRS _RES_FILES "${_AGD}/Contents/Resources")
|
|
||||||
__make_copy(_CMD_COPY _PLUG_DIRS _PLUG_FILES "${_AGD}/Contents/PlugIns")
|
|
||||||
__make_copy(_CMD_COPY _FILE_DIRS _FILE_FILES "${_AGD}/Contents/MacOS")
|
|
||||||
if (_ICON_NAME)
|
if (_ICON_NAME)
|
||||||
set(_CMD_COPY ${_CMD_COPY} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/Contents/Resources)
|
set(_CMD_ ${_CMD_} COMMAND cp ${_VERB} -f ${_ICON_FN} ${_AGD}/Contents/Resources)
|
||||||
endif()
|
endif()
|
||||||
add_custom_target(deploy_${_T}
|
add_custom_target(deploy_${_T}
|
||||||
# gather .app dir
|
# gather .app dir
|
||||||
COMMAND mkdir ${_VERB} -p ${_AGD}/Contents/Resources
|
COMMAND mkdir ${_VERB} -p ${_AGD}/Contents/Resources
|
||||||
COMMAND mkdir ${_VERB} -p ${_AGD}/Contents/Frameworks
|
COMMAND mkdir ${_VERB} -p ${_AGD}/Contents/Frameworks
|
||||||
COMMAND mkdir ${_VERB} -p ${_DESTINATION}
|
COMMAND mkdir ${_VERB} -p ${_DESTINATION}
|
||||||
${_CMD_COPY}
|
${_CMD_}
|
||||||
#COMMAND cp ${_ICON_FN} ${_AGD}/Contents/Resources
|
#COMMAND cp ${_ICON_FN} ${_AGD}/Contents/Resources
|
||||||
#COMMAND cp -r ${_DEPLOY_DIR}/lang ${_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;${DEPLOY_ADD_LIBPATH}${_DEP_LIBPATH}\"" -o ${_AGD}/Contents/Frameworks -p ${_AGD}/Contents/PlugIns ${_AGD}/Contents/MacOS/${_T} ${_ADD_DEPS}
|
COMMAND deploy_tool ${_VERB} ${_OPTIONS} -M "${CMAKE_OTOOL}" -P cocoa,minimal -S mac -q ${Qt5_ROOT} -s "\"${CMAKE_PREFIX_PATH}/lib;${DEPLOY_ADD_LIBPATH}${_DEP_LIBPATH}\"" -o ${_AGD}/Contents/Frameworks -p ${_AGD}/Contents/PlugIns ${_AGD}/Contents/MacOS/${_T} ${_ADD_DEPS}
|
||||||
@@ -636,20 +622,77 @@ macro(deploy_target _T)
|
|||||||
)
|
)
|
||||||
set(_has_deploy 1)
|
set(_has_deploy 1)
|
||||||
elseif (DEFINED ANDROID_PLATFORM)
|
elseif (DEFINED ANDROID_PLATFORM)
|
||||||
set(_AT ${_T})
|
set(_AT ${_T}_lib)
|
||||||
get_target_property(_TT ${_T} TYPE)
|
set(_ATA ${_AT}_${ANDROID_ABI})
|
||||||
if (NOT "x${_TT}" STREQUAL "xSHARED_LIBRARY")
|
get_target_property(_sources ${_T} SOURCES)
|
||||||
set(_AT ${_T}_lib)
|
get_target_property(_libs ${_T} LINK_LIBRARIES)
|
||||||
get_target_property(_sources ${_T} SOURCES)
|
get_target_property(_incs ${_T} INCLUDE_DIRECTORIES)
|
||||||
get_target_property(_libs ${_T} LINK_LIBRARIES)
|
add_library(${_ATA} SHARED ${_sources})
|
||||||
get_target_property(_incs ${_T} INCLUDE_DIRECTORIES)
|
target_link_libraries(${_ATA} ${_libs})
|
||||||
add_library(${_AT} SHARED ${_sources})
|
target_include_directories(${_ATA} PRIVATE ${_incs})
|
||||||
target_link_libraries(${_AT} ${_libs})
|
set_target_properties(${_T} PROPERTIES EXCLUDE_FROM_ALL 1)
|
||||||
target_include_directories(${_AT} PRIVATE ${_incs})
|
#message("create new target ${_ATA} ${_sources} ${_libs}")
|
||||||
message("create new target ${_AT} ${_sources} ${_libs}")
|
set(_AGD "${_DEPLOY_DIR}/${_T}.android")
|
||||||
endif()
|
set(_file)
|
||||||
|
__make_dir(_CMD_ "${_AGD}")
|
||||||
|
set(_dir "${CMAKE_BINARY_DIR}/android-build/libs")
|
||||||
|
__make_copy(_CMD_ _dir _file "${_AGD}")
|
||||||
|
set(_dir "${CMAKE_CURRENT_SOURCE_DIR}/android/res")
|
||||||
|
__make_copy(_CMD_ _dir _file "${_AGD}")
|
||||||
|
set(_dir "${CMAKE_CURRENT_SOURCE_DIR}/android/src")
|
||||||
|
__make_copy(_CMD_ _dir _file "${_AGD}")
|
||||||
|
set(_dir)
|
||||||
|
set(_file "${Qt5_ROOT}/src/android/templates/res/values/libs.xml")
|
||||||
|
__make_copy(_CMD_ _dir _file "${_AGD}/res/values")
|
||||||
|
__make_copy(_CMD_ _RES_DIRS _RES_FILES "${_AGD}/res")
|
||||||
|
#__make_copy(_CMD_ _PLUG_DIRS _PLUG_FILES "${_AGD}/")
|
||||||
|
#__make_copy(_CMD_ _FILE_DIRS _FILE_FILES "${_AGD}/Contents/MacOS")
|
||||||
|
message("bindir = ${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
#get_target_property(_LL ${_T} )
|
#get_target_property(_LL ${_T} )
|
||||||
add_custom_target(deploy_${_T})
|
set(__archs "armeabi-v7a" "arm64-v8a" "x86" "x86_64")
|
||||||
|
set(QT_ANDROID_ARCHITECTURES)
|
||||||
|
find_library(_lib_ c++_shared)
|
||||||
|
foreach (_a ${__archs})
|
||||||
|
set(_aname "${_a}")
|
||||||
|
if ("${_a}" STREQUAL "armeabi-v7a")
|
||||||
|
set(_aname "arm")
|
||||||
|
elseif ("${_a}" STREQUAL "arm64-v8a")
|
||||||
|
set(_aname "arm64")
|
||||||
|
endif()
|
||||||
|
set(_exist 0)
|
||||||
|
if ("${_a}" STREQUAL "${ANDROID_ABI}")
|
||||||
|
set(_exist 1)
|
||||||
|
elseif (EXISTS "${CMAKE_BINARY_DIR}/android-build/libs/${_a}")
|
||||||
|
set(_exist 1)
|
||||||
|
endif()
|
||||||
|
if (_exist)
|
||||||
|
string(REPLACE "${ANDROID_ABI}" "${_a}" _a_prefix "${CMAKE_PREFIX_PATH}")
|
||||||
|
string(REPLACE "arch-${ANDROID_ARCH_NAME}" "arch-${_aname}" _a_prefix "${_a_prefix}")
|
||||||
|
list(APPEND QT_ANDROID_ARCHITECTURES " \"${_a}\" : \"${ANDROID_SYSROOT_${_a}}\"")
|
||||||
|
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} -L "\"${CMAKE_READELF}\"" -s "\"${_a_prefix}/lib\"" -o "\"${_AGD}/libs/${_a}\"" --ignore "\"c:m:dl\"" "\"${_AGD}/libs/${_a}/lib${_AT}_${_a}.so\"" ${_ADD_DEPS})
|
||||||
|
#message("c++_${_a} -> ${_lib_${_a}}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
string(REPLACE ";" ",\n" QT_ANDROID_ARCHITECTURES "${QT_ANDROID_ARCHITECTURES}")
|
||||||
|
set(QT_ANDROID_APPLICATION_BINARY ${_AT})
|
||||||
|
set(ANDROID_LABEL "${${_T}_LABEL}")
|
||||||
|
set(ANDROID_ICON "${${_T}_ICON}")
|
||||||
|
set(ANDROID_VERSION "${${_T}_VERSION}")
|
||||||
|
set(ANDROID_BUILD "${${_T}_VERSION_BUILD}")
|
||||||
|
set(ANDROID_PACKAGE "${${_T}_FULLNAME}")
|
||||||
|
set(QT_DIR ${Qt5_ROOT})
|
||||||
|
set(_out_json "${CMAKE_CURRENT_BINARY_DIR}/${_T}_android_deployment_settings.json")
|
||||||
|
configure_file("${CMAKE_BINARY_DIR}/android_deployment_settings.json.in" "${_out_json}")
|
||||||
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/android/AndroidManifest.xml.in" "${_AGD}/AndroidManifest.xml")
|
||||||
|
set(_CMD_ ${_CMD_} COMMAND "${Qt5_BIN}/androiddeployqt" --aux-mode --android-platform ${ANDROID_PLATFORM} --output "\"${_AGD}\"" --input "\"${_out_json}\"")
|
||||||
|
add_custom_target(deploy_${_T}
|
||||||
|
# gather .app dir
|
||||||
|
${_CMD_}
|
||||||
|
COMMENT "Generating ${_TV}.apk/aab"
|
||||||
|
)
|
||||||
set(_has_deploy 1)
|
set(_has_deploy 1)
|
||||||
endif()
|
endif()
|
||||||
if (_has_deploy)
|
if (_has_deploy)
|
||||||
|
|||||||
@@ -43,8 +43,8 @@ void usage() {
|
|||||||
piCout << "\"*=\" disable optional plugins.";
|
piCout << "\"*=\" disable optional plugins.";
|
||||||
piCout << "";
|
piCout << "";
|
||||||
piCout << Green << Bold << "Usage:" << Default << "\"deploy_tool [-hvfC] [--dependencies [--prefix <text>]] "
|
piCout << Green << Bold << "Usage:" << Default << "\"deploy_tool [-hvfC] [--dependencies [--prefix <text>]] "
|
||||||
"[-p <qt_plugins>] [-s <search_path>] [-S <styles>] [-l <ldd>] "
|
"[-p <qt_plugins>] [-s <search_path>] [--ignore <libs>] [-S <styles>] "
|
||||||
"[-D <dpkg>] [-L <readelf> | -W <objdump> | -M <otool>] "
|
"[-l <ldd>] [-D <dpkg>] [-L <readelf> | -W <objdump> | -M <otool>] "
|
||||||
"[-d <depth>] [-q <qtdir>] [-a <add_libs>] [-S <styles>] "
|
"[-d <depth>] [-q <qtdir>] [-a <add_libs>] [-S <styles>] "
|
||||||
"[-P <platforms>] [--qt-plugins <d>] -o <out_path> <file> [<file2> ...]\"" << NewLine;
|
"[-P <platforms>] [--qt-plugins <d>] -o <out_path> <file> [<file2> ...]\"" << NewLine;
|
||||||
piCout << Green << Bold << "Details:";
|
piCout << Green << Bold << "Details:";
|
||||||
@@ -55,6 +55,7 @@ void usage() {
|
|||||||
piCout << Bold << "Processing control";
|
piCout << Bold << "Processing control";
|
||||||
piCout << "-f, --fake " << Green << "- don`t copy, only print";
|
piCout << "-f, --fake " << Green << "- don`t copy, only print";
|
||||||
piCout << "-s <search_path> " << Green << "- set search pathes for system libraries, may be separated by \";\", default \"/usr/lib\"";
|
piCout << "-s <search_path> " << Green << "- set search pathes for system libraries, may be separated by \";\", default \"/usr/lib\"";
|
||||||
|
piCout << "--ignore <libs> " << Green << "- ignore libraries names, may be separated by \":\", default \"\"";
|
||||||
piCout << "-l <ldd> " << Green << "- \"ldd\" path, default \"/usr/bin/ldd\"";
|
piCout << "-l <ldd> " << Green << "- \"ldd\" path, default \"/usr/bin/ldd\"";
|
||||||
piCout << "-L <readelf> " << Green << "- \"readelf\" path, overrides \"ldd\"";
|
piCout << "-L <readelf> " << Green << "- \"readelf\" path, overrides \"ldd\"";
|
||||||
piCout << "-W <objdump> " << Green << "- \"objdump\" path, overrides \"ldd\"";
|
piCout << "-W <objdump> " << Green << "- \"objdump\" path, overrides \"ldd\"";
|
||||||
@@ -107,7 +108,7 @@ int depth = 5;
|
|||||||
bool fake = false, is_ldd = true, is_deps = false, need_qt = false;
|
bool fake = false, is_ldd = true, is_deps = false, need_qt = false;
|
||||||
PIString ldd, readelf, objdump, otool, dpkg, out_dir, qt_dir, out_plugins_dir;
|
PIString ldd, readelf, objdump, otool, dpkg, out_dir, qt_dir, out_plugins_dir;
|
||||||
PIStringList styles, lib_dirs, add_libs, platforms, sqldrivers;
|
PIStringList styles, lib_dirs, add_libs, platforms, sqldrivers;
|
||||||
PISet<PIString> all_libs, miss_libs, all_deps, frameworks, miss_frameworks, qt_plugins;
|
PISet<PIString> all_libs, miss_libs, all_deps, frameworks, miss_frameworks, qt_plugins, ignore_libs;
|
||||||
PIMap<PIString, PIStringList> qt_filters;
|
PIMap<PIString, PIStringList> qt_filters;
|
||||||
|
|
||||||
|
|
||||||
@@ -247,6 +248,12 @@ void procLdd(PIString file, bool ext_lib = false, int cur_depth = 0) {
|
|||||||
if (all_libs[l]) continue;
|
if (all_libs[l]) continue;
|
||||||
PIFile::FileInfo fi;
|
PIFile::FileInfo fi;
|
||||||
fi.path = l;
|
fi.path = l;
|
||||||
|
PIString lname = fi.baseName();
|
||||||
|
if (lname.startsWith("lib")) lname.cutLeft(3);
|
||||||
|
//piCout << "check ignore" << lname << ignore_libs;
|
||||||
|
if (ignore_libs.contains(lname)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
checkQtLib(fi.name().toLowerCase());
|
checkQtLib(fi.name().toLowerCase());
|
||||||
cur_libs << l;
|
cur_libs << l;
|
||||||
all_libs << l;
|
all_libs << l;
|
||||||
@@ -354,6 +361,7 @@ int main(int argc, char * argv[]) {
|
|||||||
cli.addArgument("output", true);
|
cli.addArgument("output", true);
|
||||||
cli.addArgument("pqt_out_plugins", true);
|
cli.addArgument("pqt_out_plugins", true);
|
||||||
cli.addArgument("search_path", true);
|
cli.addArgument("search_path", true);
|
||||||
|
cli.addArgument("ignore", PIChar('\0'), true);
|
||||||
cli.addArgument("Styles", true);
|
cli.addArgument("Styles", true);
|
||||||
cli.addArgument("Platforms", true);
|
cli.addArgument("Platforms", true);
|
||||||
cli.addArgument("qt-plugins", PIChar('\0'), true);
|
cli.addArgument("qt-plugins", PIChar('\0'), true);
|
||||||
@@ -377,12 +385,19 @@ int main(int argc, char * argv[]) {
|
|||||||
out_dir = cli.argumentValue("output");
|
out_dir = cli.argumentValue("output");
|
||||||
lib_dirs = cli.argumentValue("search_path").split(";");
|
lib_dirs = cli.argumentValue("search_path").split(";");
|
||||||
add_libs = cli.argumentValue("add_libs").split(";");
|
add_libs = cli.argumentValue("add_libs").split(";");
|
||||||
|
ignore_libs = cli.argumentValue("ignore").split(":");
|
||||||
qt_dir = cli.argumentValue("qtdir");
|
qt_dir = cli.argumentValue("qtdir");
|
||||||
ldd = cli.argumentValue("ldd");
|
ldd = cli.argumentValue("ldd");
|
||||||
readelf = cli.argumentValue("Lreadelf");
|
readelf = cli.argumentValue("Lreadelf");
|
||||||
objdump = cli.argumentValue("Wobjdump");
|
objdump = cli.argumentValue("Wobjdump");
|
||||||
otool = cli.argumentValue("Motool");
|
otool = cli.argumentValue("Motool");
|
||||||
dpkg = cli.argumentValue("Dpkg");
|
dpkg = cli.argumentValue("Dpkg");
|
||||||
|
#ifdef WINDOWS
|
||||||
|
readelf.replaceAll("/", "\\");
|
||||||
|
objdump.replaceAll("/", "\\");
|
||||||
|
otool.replaceAll("/", "\\");
|
||||||
|
dpkg.replaceAll("/", "\\");
|
||||||
|
#endif
|
||||||
if (dpkg.isEmpty())
|
if (dpkg.isEmpty())
|
||||||
dpkg = "/usr/bin/dpkg";
|
dpkg = "/usr/bin/dpkg";
|
||||||
out_plugins_dir = out_dir;
|
out_plugins_dir = out_dir;
|
||||||
@@ -407,6 +422,7 @@ int main(int argc, char * argv[]) {
|
|||||||
lib_dirs << (qbin + "bin");
|
lib_dirs << (qbin + "bin");
|
||||||
}
|
}
|
||||||
piForeach (PIString & s, lib_dirs) {
|
piForeach (PIString & s, lib_dirs) {
|
||||||
|
s.trim();
|
||||||
if (!s.endsWith("/")) s += "/";
|
if (!s.endsWith("/")) s += "/";
|
||||||
}
|
}
|
||||||
if (out_dir.isEmpty()) out_dir = ".";
|
if (out_dir.isEmpty()) out_dir = ".";
|
||||||
|
|||||||
Reference in New Issue
Block a user