From 44a7432caa1dccad31b163c49b533bf2e7c7ee7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Mon, 16 Mar 2020 10:01:54 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@792 a8b55f48-bf90-11e4-a774-851b48703e85 --- qad/CMakeLists.txt | 2 +- qad/QADDeploy.cmake | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 qad/QADDeploy.cmake diff --git a/qad/CMakeLists.txt b/qad/CMakeLists.txt index 084f927..8ce1d17 100644 --- a/qad/CMakeLists.txt +++ b/qad/CMakeLists.txt @@ -51,7 +51,7 @@ if (NOT LIBPROJECT) endif() endif() -set(CMAKES "FindQAD.cmake" "QtWraps.cmake") +set(CMAKES "FindQAD.cmake" "QtWraps.cmake" "QADDeploy.cmake") if (LIB) install(FILES ${CMAKES} DESTINATION ${CMAKE_ROOT}/Modules) diff --git a/qad/QADDeploy.cmake b/qad/QADDeploy.cmake new file mode 100644 index 0000000..50f50a1 --- /dev/null +++ b/qad/QADDeploy.cmake @@ -0,0 +1,37 @@ + +# use "CMAKE_OTOOL" variable +# use "RELEASE_DIR" variable, where .app directory with installed binary +# can use "DEPLOY_ADD_LIBPATH" variable +macro(deploy_target _T full_app_name version icon label copyright info) + get_filename_component(_ICON_NAME "${icon}" NAME) + get_filename_component(_ICON_FN "${icon}" ABSOLUTE BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") + set(_TV "${_T}-${version}") + if (APPLE) + set(MACOSX_BUNDLE_GUI_IDENTIFIER "${full_app_name}") + set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${version}") + set(MACOSX_BUNDLE_LONG_VERSION_STRING "${version}") + set(MACOSX_BUNDLE_ICON_FILE "${_ICON_NAME}") + set(MACOSX_BUNDLE_BUNDLE_NAME "${label}") + set(MACOSX_BUNDLE_COPYRIGHT "${copyright}") + set(MACOSX_BUNDLE_INFO_STRING "${info}") + set(MACOSX_BUNDLE_BUNDLE_VERSION "6.0") + set_target_properties(${_T} PROPERTIES MACOSX_BUNDLE TRUE) + set(_AGD "${RELEASE_DIR}/${_T}.app") + set(_DMG "${CMAKE_CURRENT_BINARY_DIR}/dmg") + add_custom_target(generate_package + # gather .app dir + COMMAND mkdir -p ${_AGD}/Contents/Resources + COMMAND mkdir -p ${_AGD}/Contents/Frameworks + COMMAND cp ${_ICON_FN} ${_AGD}/Contents/Resources + COMMAND deploy_tool -M "${CMAKE_OTOOL}" -P cocoa -S mac -q ${Qt5_ROOT} -s \"${CMAKE_PREFIX_PATH}/lib\;${DEPLOY_ADD_LIBPATH}\" -o ${_AGD}/Contents/Frameworks -p ${_AGD}/Contents/PlugIns ${_AGD}/Contents/MacOS/${_T} + # prepare dmg dir + COMMAND rm -rf ${_DMG} + COMMAND mkdir -p ${_DMG} + COMMAND cp -r ${_AGD} ${_DMG} + COMMAND ln --symbolic /Applications ${_DMG} + # generate dmg + COMMAND genisoimage -quiet -V ${_T} -D -R -apple -no-pad -o ${RELEASE_DIR}/${_TV}.dmg ${_DMG} + COMMENT "Generating ${_TV}.dmg" + ) + endif() +endmacro()