diff --git a/cmake/DeployMacros.cmake b/cmake/DeployMacros.cmake index 9c5dbfd6..c2876fc7 100644 --- a/cmake/DeployMacros.cmake +++ b/cmake/DeployMacros.cmake @@ -1,3 +1,9 @@ +# Important! You should include this file +# in your top-level CMakeLists.txt +# +# +# +# # set_version( [MAJOR ] [MINOR ] [REVISION ] [SUFFIX ] [BUILD ] [OUTPUT ]) # # Set target version, optionally creates file @@ -80,6 +86,10 @@ include(TargetArch) if (NOT MY_ARCH) target_architecture(MY_ARCH) endif() +if (NOT _dep_exists) + set(_dep_exists 1) + add_custom_target(deploy COMMENT "Deploy") +endif() macro(set_version _T) @@ -317,6 +327,7 @@ macro(deploy_target _T) endforeach() #message("app depend libpath ${_DEP_LIBPATH}") set(_CMD_RES) + set(_has_deploy 0) if ("x${CMAKE_SYSTEM_NAME}" STREQUAL "xLinux") if (NOT CMAKE_LDD) find_program(CMAKE_LDD ldd) @@ -354,7 +365,7 @@ macro(deploy_target _T) if (_ICON_NAME) set(_CMD_COPY ${_CMD_COPY} COMMAND cp -f ${_ICON_FN} ${_AGD}/usr/share/pixmaps) endif() - add_custom_target(deploy + add_custom_target(deploy_${_T} # gather deb dir COMMAND mkdir -p ${_AGD}/DEBIAN COMMAND mkdir -p ${_AGD}/usr/bin @@ -398,6 +409,7 @@ macro(deploy_target _T) VERBATIM COMMENT "Generating ${_TV}_${_DEB_ARCH}.deb" ) + set(_has_deploy 1) elseif(WIN32) if (NOT CMAKE_OBJDUMP) find_program(CMAKE_OBJDUMP objdump) @@ -431,7 +443,7 @@ macro(deploy_target _T) endif() set(_CMD_RES ${_CMD_RES} COMMAND ${_COPY} "${_wr}*" "\"${_AGD}${_dirname}${_SEP}\"" ${_COPY_SUFFIX}) endforeach() - add_custom_target(deploy + add_custom_target(deploy_${_T} # gather dir COMMAND ${_MKDIR} COMMAND ${_MKDIR_P} @@ -444,6 +456,7 @@ macro(deploy_target _T) COMMAND cd "\"${_DEPLOY_DIR}\"" "&&" zip -r "\"${_DESTINATION}/${_TV}.zip\"" "\"${_TV}_win_${MY_ARCH}\"" COMMENT "Generating ${_TV}.zip" ) + set(_has_deploy 1) elseif (APPLE) set(MACOSX_BUNDLE_GUI_IDENTIFIER "${${_T}_FULLNAME}") set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${${_T}_VERSION}") @@ -465,7 +478,7 @@ macro(deploy_target _T) foreach(_r ${_RES_DIRS}) set(_CMD_RES ${_CMD_RES} COMMAND cp -r "${_r}" "${_AGD}/Contents/Resources") endforeach() - add_custom_target(deploy + add_custom_target(deploy_${_T} # gather .app dir COMMAND mkdir -p ${_AGD}/Contents/Resources COMMAND mkdir -p ${_AGD}/Contents/Frameworks @@ -484,5 +497,9 @@ macro(deploy_target _T) COMMAND genisoimage -quiet -V "${MACOSX_BUNDLE_BUNDLE_NAME}" -D -R -apple -no-pad -o ${_DESTINATION}/${_TV}.dmg ${_DMG} COMMENT "Generating ${_TV}.dmg" ) + set(_has_deploy 1) + endif() + if (_has_deploy) + add_dependencies(deploy deploy_${_T}) endif() endmacro()