From 2f161f08cf14371539623a8d1cfdcb497177e0b7 Mon Sep 17 00:00:00 2001 From: Le Tan Date: Tue, 7 May 2024 22:54:39 +0800 Subject: [PATCH] fix --- src/CMakeLists.txt | 2 +- src/CPackLinuxDeployQt.cmake.in | 11 +++++++---- src/Packaging.cmake | 23 ++++++++++++++++++++--- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 40b4e2ede1..7728addca2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -124,7 +124,7 @@ if (WIN32) DESTINATION ${CMAKE_INSTALL_BINDIR}) elseif(APPLE) -elseif(UNIX) +else() desktop.path = applications desktop.files = data/core/vnote.desktop icon16.path = icons/hicolor/16x16/apps diff --git a/src/CPackLinuxDeployQt.cmake.in b/src/CPackLinuxDeployQt.cmake.in index 5bce0f9a91..47263f471c 100644 --- a/src/CPackLinuxDeployQt.cmake.in +++ b/src/CPackLinuxDeployQt.cmake.in @@ -1,5 +1,8 @@ +set(VX_DEST_DIR "${CPACK_PACKAGE_DIRECTORY}/_CPack_Packages/Linux/External/AppImage") +set(VX_DESKTOP_FILE "${VX_DEST_DIR}${CMAKE_INSTALL_PREFIX}/share/applications/vnote.desktop") execute_process( - COMMAND ${CMAKE_MAKE_PROGRAM} DESTDIR=${CPACK_PACKAGE_DIRECTORY}/_CPack_Packages/Linux/External/AppImage install - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) -execute_process(COMMAND env QMAKE=${qmake_executable} "${LINUXDEPLOY_EXECUTABLE}" --plugin=qt --output=appimage --appdir=${CPACK_PACKAGE_DIRECTORY}/_CPack_Packages/Linux/External/AppImage -e ${CMAKE_BINARY_DIR}/${target} -d ${CPACK_PACKAGE_DIRECTORY}/_CPack_Packages/Linux/External/AppImage${CMAKE_INSTALL_PREFIX}/share/applications/example.desktop - WORKING_DIRECTORY ${CPACK_PACKAGE_DIRECTORY}) + COMMAND ${CMAKE_MAKE_PROGRAM} DESTDIR="${VX_DEST_DIR}" install + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) +execute_process( + COMMAND env QMAKE=${qmake_executable} "${LINUXDEPLOY_EXECUTABLE}" --plugin=qt --output=appimage --appdir="${VX_DEST_DIR}" -e ${CMAKE_BINARY_DIR}/${target} -d "${VX_DESKTOP_FILE}" + WORKING_DIRECTORY ${CPACK_PACKAGE_DIRECTORY}) diff --git a/src/Packaging.cmake b/src/Packaging.cmake index fc2dcb3d86..7cbad623ac 100644 --- a/src/Packaging.cmake +++ b/src/Packaging.cmake @@ -1,5 +1,4 @@ # from: https://github.com/miurahr/cmake-qt-packaging-example - find_package(Qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED COMPONENTS Core) get_target_property(QMAKE_EXECUTABLE Qt::qmake IMPORTED_LOCATION) @@ -17,7 +16,14 @@ find_program(MACDEPLOYQTFIX_EXECUTABLE macdeployqtfix.py HINTS "${QT_BIN_DIR}") find_package(Python) function(linuxdeployqt dest_dir desktop_file) - + add_custom_command( + TARGET pack PRE_BUILD + COMMAND "${CMAKE_MAKE_PROGRAM}" DESTDIR=${dest_dir} install + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) + add_custom_command( + TARGET pack POST_BUILD + COMMAND env QMAKE=${qmake_executable} "${LINUXDEPLOY_EXECUTABLE}" --appdir=${dest_dir} --plugin=qt --output=appimage -e ${CMAKE_BINARY_DIR}/${target} -d ${destdir}/${CMAKE_INSTALL_PREFIX}/${desktopfile} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) endfunction() function(windeployqt target) @@ -110,7 +116,7 @@ add_custom_target(pack DEPENDS vnote) set(CPACK_GENERATOR) -if (WIN32) +if(WIN32) find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${QT_BIN_DIR}" DOC "Path to the windeployqt utility") list(APPEND CPACK_GENERATOR ZIP) @@ -124,6 +130,17 @@ if (WIN32) endif() windeployqt(vnote) +elseif(APPLE) +else() + if(LINUXDEPLOY_EXECUTABLE) + message(STATUS "Package generation - Linux - AppImage") + + set(CPACK_GENERATOR "External;${CPACK_GENERATOR}") + configure_file(${CMAKE_CURRENT_LIST_DIR}/CPackLinuxDeployQt.cmake.in "${CMAKE_BINARY_DIR}/CPackExternal.cmake") + set(CPACK_EXTERNAL_PACKAGE_SCRIPT "${CMAKE_BINARY_DIR}/CPackExternal.cmake") + endif() + + set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_LIST_DIR}/data/core/logo/64x64/vnote.png") endif() include(CPack)