mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 05:49:53 +08:00
fix Linux build (#2494)
Fix Linux build TODO: fix application dir path locations with AppImage. Translations and vnote_extra.rcc does not work now.
This commit is contained in:
parent
522b37425f
commit
918aa15e74
93
.github/workflows/ci-linux.yml
vendored
93
.github/workflows/ci-linux.yml
vendored
@ -8,14 +8,21 @@ on:
|
|||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab.
|
# Allows you to run this workflow manually from the Actions tab.
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
debug_enabled:
|
||||||
|
type: boolean
|
||||||
|
description: 'Run the build with tmate debugging enabled'
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
|
||||||
env:
|
env:
|
||||||
VNOTE_VER: 3.17.0
|
VNOTE_VER: 3.17.0
|
||||||
|
CMAKE_VER: 3.24.3
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-linux:
|
build-linux:
|
||||||
name: Build On Ubuntu
|
name: Build On Ubuntu
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 120
|
timeout-minutes: 120
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@ -30,15 +37,27 @@ jobs:
|
|||||||
git submodule sync --recursive
|
git submodule sync --recursive
|
||||||
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
||||||
|
|
||||||
|
- name: Install a Fresh CMake
|
||||||
|
run: |
|
||||||
|
wget --no-verbose https://github.com/Kitware/CMake/releases/download/v${CMAKE_VER}/cmake-${CMAKE_VER}-Linux-x86_64.sh
|
||||||
|
chmod +x cmake-${CMAKE_VER}-Linux-x86_64.sh
|
||||||
|
mkdir ${{runner.workspace}}/cmake
|
||||||
|
sudo ./cmake-${CMAKE_VER}-Linux-x86_64.sh --skip-license --prefix=${{runner.workspace}}/cmake
|
||||||
|
sudo rm -f /usr/local/bin/cmake /usr/local/bin/cpack
|
||||||
|
sudo ln -s ${{runner.workspace}}/cmake/bin/cmake /usr/local/bin/cmake
|
||||||
|
sudo ln -s ${{runner.workspace}}/cmake/bin/cpack /usr/local/bin/cpack
|
||||||
|
|
||||||
- name: Install linuxdeploy
|
- name: Install linuxdeploy
|
||||||
uses: miurahr/install-linuxdeploy-action@v1
|
uses: miurahr/install-linuxdeploy-action@v1
|
||||||
with:
|
with:
|
||||||
plugins: qt appimage
|
plugins: qt appimage
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install Dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo DEBIAN_FRONTEND=noninteractive apt-get update
|
sudo DEBIAN_FRONTEND=noninteractive apt-get update
|
||||||
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libfcitx5-qt-dev tree
|
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libfcitx5-qt-dev fcitx-libs-dev extra-cmake-modules libxkbcommon-dev
|
||||||
|
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tree
|
||||||
|
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y fuse libxcb-cursor-dev
|
||||||
|
|
||||||
- name: Cache Qt
|
- name: Cache Qt
|
||||||
id: cache-qt
|
id: cache-qt
|
||||||
@ -50,15 +69,33 @@ jobs:
|
|||||||
- name: Install Qt
|
- name: Install Qt
|
||||||
uses: jurplel/install-qt-action@v3
|
uses: jurplel/install-qt-action@v3
|
||||||
with:
|
with:
|
||||||
version: 6.5.2
|
version: 6.5.3
|
||||||
target: desktop
|
target: desktop
|
||||||
modules: 'qtwebengine qtwebchannel qtpositioning qtpdf qtimageformats qt5compat'
|
modules: 'qtwebengine qtwebchannel qtpositioning qtpdf qtimageformats qt5compat qtserialport'
|
||||||
|
tools: 'tools_opensslv3_src'
|
||||||
cache: 'true'
|
cache: 'true'
|
||||||
|
|
||||||
|
- name: Compile OpenSSLV3
|
||||||
|
run: |
|
||||||
|
cd ${Qt6_DIR}/../../Tools/OpenSSLv3/src
|
||||||
|
./Configure
|
||||||
|
make -j2
|
||||||
|
sudo make install
|
||||||
|
|
||||||
- name: Create Build Dir
|
- name: Create Build Dir
|
||||||
run: mkdir build
|
run: mkdir build
|
||||||
working-directory: ${{runner.workspace}}
|
working-directory: ${{runner.workspace}}
|
||||||
|
|
||||||
|
- name: Compile fcitxqt5
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/fcitx/fcitx-qt5
|
||||||
|
cd fcitx-qt5
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake -DENABLE_QT5=OFF -DENABLE_QT6=ON ..
|
||||||
|
make -j2
|
||||||
|
sudo make install
|
||||||
|
working-directory: ${{runner.workspace}}/build
|
||||||
|
|
||||||
- name: Compile qt6ct
|
- name: Compile qt6ct
|
||||||
run: |
|
run: |
|
||||||
git clone https://github.com/trialuser02/qt6ct qt6ct.git
|
git clone https://github.com/trialuser02/qt6ct qt6ct.git
|
||||||
@ -70,42 +107,13 @@ jobs:
|
|||||||
- name: Configure Project
|
- name: Configure Project
|
||||||
run: |
|
run: |
|
||||||
qmake -v
|
qmake -v
|
||||||
# TODO: libfcitx5
|
cmake --version
|
||||||
qmake CONFIG+=release -spec linux-g++-64 ${GITHUB_WORKSPACE}/vnote.pro
|
cmake ${GITHUB_WORKSPACE}
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
|
|
||||||
- name: Build Project
|
- name: Build Project
|
||||||
run: make -j$(nproc)
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
|
||||||
|
|
||||||
- name: Install Project
|
|
||||||
run: |
|
run: |
|
||||||
mkdir AppDir
|
cmake --build . --target pack
|
||||||
make install INSTALL_ROOT=${{runner.workspace}}/build/AppDir
|
|
||||||
tree AppDir
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
|
||||||
|
|
||||||
- name: Package Project
|
|
||||||
run: |
|
|
||||||
# Move the lib out to avoid duplication
|
|
||||||
mv AppDir/usr/lib ./
|
|
||||||
LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
|
|
||||||
Qt6_Dir=$QT_HOST_BINS/..
|
|
||||||
tree $Qt6_Dir
|
|
||||||
tree $Qt6_Dir/../..
|
|
||||||
# Copy translations
|
|
||||||
mkdir -p AppDir/usr/translations
|
|
||||||
cp $Qt6_Dir/translations/qt_zh_CN.qm AppDir/usr/translations
|
|
||||||
# Package qt5ct (EXTRA_QT_PLUGINS seems not work)
|
|
||||||
# EXTRA_QT_PLUGINS="platformthemes/libqt5ct.so;styles/libqt5ct-style.so"
|
|
||||||
mkdir -p AppDir/usr/plugins/platformthemes
|
|
||||||
mkdir -p AppDir/usr/plugins/styles
|
|
||||||
cp $Qt6_Dir/plugins/platformthemes/* AppDir/usr/plugins/platformthemes/
|
|
||||||
cp $Qt6_Dir/plugins/styles/* AppDir/usr/plugins/styles/
|
|
||||||
# Package libssl.so and libcrypto.so
|
|
||||||
Qt_Tools=$Qt6_Dir/../../Tools
|
|
||||||
linuxdeploy-x86_64.AppImage --appdir ./AppDir --plugin qt --output appimage -l $Qt_Tools/OpenSSL/binary/lib/libcrypto.so.* -l $Qt_Tools/OpenSSL/binary/lib/
|
|
||||||
tree AppDir
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
|
|
||||||
- name: Fix Package
|
- name: Fix Package
|
||||||
@ -122,15 +130,14 @@ jobs:
|
|||||||
linuxdeploy-plugin-appimage-x86_64.AppImage --appdir=./squashfs-root
|
linuxdeploy-plugin-appimage-x86_64.AppImage --appdir=./squashfs-root
|
||||||
mv VNote*.AppImage ../
|
mv VNote*.AppImage ../
|
||||||
popd
|
popd
|
||||||
mv VNote*.AppImage vnote-linux-x64_v${{env.VNOTE_VER}}.AppImage
|
mv VNote*.AppImage VNote-${{env.VNOTE_VER}}-linux-x64.AppImage
|
||||||
cp vnote-linux-x64_v${{env.VNOTE_VER}}.AppImage vnote-linux-x64.AppImage
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
|
|
||||||
- name: Archive Artifacts
|
- name: Archive Artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: vnote-linux-x64_v${{env.VNOTE_VER}}
|
name: VNote-${{env.VNOTE_VER}}-linux-x64
|
||||||
path: ${{runner.workspace}}/build/vnote-linux-x64_v${{env.VNOTE_VER}}.AppImage
|
path: ${{runner.workspace}}/build/VNote-${{env.VNOTE_VER}}-linux-x64.AppImage
|
||||||
|
|
||||||
- name: Update Tag
|
- name: Update Tag
|
||||||
if: github.ref == 'refs/heads/master'
|
if: github.ref == 'refs/heads/master'
|
||||||
@ -143,7 +150,7 @@ jobs:
|
|||||||
uses: johnwbyrd/update-release@v1.0.0
|
uses: johnwbyrd/update-release@v1.0.0
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
files: ${{runner.workspace}}/build/vnote-linux-x64.AppImage
|
files: ${{runner.workspace}}/build/VNote-${{env.VNOTE_VER}}-linux-x64
|
||||||
release: Continuous Build
|
release: Continuous Build
|
||||||
tag: continuous-build
|
tag: continuous-build
|
||||||
|
|
||||||
@ -152,7 +159,7 @@ jobs:
|
|||||||
uses: ncipollo/release-action@v1.11.0
|
uses: ncipollo/release-action@v1.11.0
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
artifacts: ${{runner.workspace}}/build/vnote-linux-x64_v${{env.VNOTE_VER}}.AppImage
|
artifacts: ${{runner.workspace}}/build/VNote-${{env.VNOTE_VER}}-linux-x64
|
||||||
commit: master
|
commit: master
|
||||||
tag: v${{env.VNOTE_VER}}
|
tag: v${{env.VNOTE_VER}}
|
||||||
allowUpdates: true
|
allowUpdates: true
|
||||||
|
30
.github/workflows/ci-win.yml
vendored
30
.github/workflows/ci-win.yml
vendored
@ -28,24 +28,20 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
config:
|
config:
|
||||||
- {
|
- name: "Build On Win64 Qt 5.15"
|
||||||
name: "Build On Win64 Qt 5.15",
|
arch: win64_msvc2019_64
|
||||||
arch: win64_msvc2019_64,
|
qt: 5.15.2
|
||||||
qt: 5.15.2,
|
qt_modules: qtwebengine
|
||||||
qt_modules: qtwebengine,
|
qt_tools: tools_opensslv3_x64
|
||||||
qt_tools: tools_opensslv3_x64,
|
qt_major: 5
|
||||||
qt_major: 5,
|
|
||||||
suffix: "-windows7"
|
suffix: "-windows7"
|
||||||
}
|
- name: "Build On Win64 Qt 6.5"
|
||||||
- {
|
arch: win64_msvc2019_64
|
||||||
name: "Build On Win64 Qt 6.5",
|
qt: 6.5.3
|
||||||
arch: win64_msvc2019_64,
|
qt_modules: "qtwebengine qtwebchannel qtpositioning qtpdf qtimageformats qt5compat"
|
||||||
qt: 6.5.2,
|
qt_tools: tools_opensslv3_x64
|
||||||
qt_modules: "qtwebengine qtwebchannel qtpositioning qtpdf qtimageformats qt5compat",
|
qt_major: 6
|
||||||
qt_tools: tools_opensslv3_x64,
|
|
||||||
qt_major: 6,
|
|
||||||
suffix: ""
|
suffix: ""
|
||||||
}
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Checks-out your repository under $GITHUB_WORKSPACE.
|
# Checks-out your repository under $GITHUB_WORKSPACE.
|
||||||
@ -101,9 +97,7 @@ jobs:
|
|||||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
|
||||||
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DQT_DEFAULT_MAJOR_VERSION=${{matrix.config.qt_major}} -DOPENSSL_EXTRA_LIB_DIR=${{runner.workspace}}\build\openssl-utils.git\1.1.1j\Win_x64 %GITHUB_WORKSPACE%
|
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DQT_DEFAULT_MAJOR_VERSION=${{matrix.config.qt_major}} -DOPENSSL_EXTRA_LIB_DIR=${{runner.workspace}}\build\openssl-utils.git\1.1.1j\Win_x64 %GITHUB_WORKSPACE%
|
||||||
cmake --build .
|
cmake --build .
|
||||||
cmake --build . --target=deploy
|
|
||||||
cmake --build . --target=pack
|
cmake --build . --target=pack
|
||||||
cmake --build . --target=install
|
|
||||||
7z x VNote*.zip -o*
|
7z x VNote*.zip -o*
|
||||||
dir
|
dir
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required (VERSION 3.12)
|
cmake_minimum_required (VERSION 3.20)
|
||||||
project(VNote
|
project(VNote
|
||||||
VERSION 3.17.0
|
VERSION 3.17.0
|
||||||
DESCRIPTION "A pleasant note-taking platform"
|
DESCRIPTION "A pleasant note-taking platform"
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
add_subdirectory(QHotKey)
|
add_subdirectory(QHotkey)
|
||||||
add_subdirectory(vtextedit)
|
add_subdirectory(vtextedit)
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 20c5615f4576828cb600e922cc8f7871dd53ddf2
|
Subproject commit f2d0cdcf3ca212164ce8b8d6d9fc6a9042dd0a1b
|
@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.20)
|
||||||
|
|
||||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
|
||||||
@ -106,19 +106,46 @@ if((QT_DEFAULT_MAJOR_VERSION GREATER 5))
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Copy the qt.conf on Windows
|
# Copy the qt.conf on Windows
|
||||||
if(MSVC)
|
if(WIN32)
|
||||||
add_custom_command(TARGET vnote POST_BUILD
|
add_custom_command(TARGET vnote POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
"${PROJECT_SOURCE_DIR}/package/qt.conf" $<TARGET_FILE_DIR:vnote>)
|
"${PROJECT_SOURCE_DIR}/package/qt.conf" $<TARGET_FILE_DIR:vnote>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
if (MSVC)
|
install(TARGETS vnote
|
||||||
install(TARGETS vnote
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/vnote_extra.rcc"
|
||||||
|
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
install(FILES "${PROJECT_SOURCE_DIR}/package/qt.conf"
|
install(FILES "${PROJECT_SOURCE_DIR}/package/qt.conf"
|
||||||
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
|
elseif(APPLE)
|
||||||
|
|
||||||
|
else()
|
||||||
|
set(desktop.path applications)
|
||||||
|
set(desktop.files data/core/vnote.desktop)
|
||||||
|
set(icon16.path icons/hicolor/16x16/apps)
|
||||||
|
set(icon16.files data/core/logo/16x16/vnote.png)
|
||||||
|
set(icon32.path icons/hicolor/32x32/apps)
|
||||||
|
set(icon32.files data/core/logo/32x32/vnote.png)
|
||||||
|
set(icon48.path icons/hicolor/48x48/apps)
|
||||||
|
set(icon48.files data/core/logo/48x48/vnote.png)
|
||||||
|
set(icon64.path icons/hicolor/64x64/apps)
|
||||||
|
set(icon64.files data/core/logo/64x64/vnote.png)
|
||||||
|
set(icon128.path icons/hicolor/128x128/apps)
|
||||||
|
set(icon128.files data/core/logo/128x128/vnote.png)
|
||||||
|
set(icon256.path icons/hicolor/256x256/apps)
|
||||||
|
set(icon256.files data/core/logo/256x256/vnote.png)
|
||||||
|
set(iconsvg.path icons/hicolor/scalable/apps)
|
||||||
|
set(iconsvg.files data/core/logo/vnote.svg)
|
||||||
|
foreach(items IN ITEMS desktop icon16 icon32 icon48 icon64 icon128 icon256 iconsvg)
|
||||||
|
install(FILES ${CMAKE_CURRENT_LIST_DIR}/${${items}.files}
|
||||||
|
DESTINATION share/${${items}.path}
|
||||||
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
|
||||||
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/Packaging.cmake)
|
include(${CMAKE_CURRENT_LIST_DIR}/Packaging.cmake)
|
||||||
|
16
src/CPackLinuxDeployQt.cmake.in
Normal file
16
src/CPackLinuxDeployQt.cmake.in
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
message(STATUS "VX_APPIMAGE_DEST_DIR ${VX_APPIMAGE_DEST_DIR}")
|
||||||
|
message(STATUS "VX_APPIMAGE_DESKTOP_FILE ${VX_APPIMAGE_DESKTOP_FILE}")
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_MAKE_PROGRAM} DESTDIR=${VX_APPIMAGE_DEST_DIR} install
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||||
|
execute_process(
|
||||||
|
COMMAND env QMAKE=${QMAKE_EXECUTABLE} LD_LIBRARY_PATH=/usr/local/lib64:$ENV{LD_LIBRARY_PATH} "${LINUXDEPLOY_EXECUTABLE}" --plugin=qt --output=appimage
|
||||||
|
--appdir=${VX_APPIMAGE_DEST_DIR} -e ${CMAKE_CURRENT_BINARY_DIR}/vnote -d ${VX_APPIMAGE_DESKTOP_FILE}
|
||||||
|
-i ${CMAKE_CURRENT_LIST_DIR}/data/core/logo/64x64/vnote.png
|
||||||
|
-l ${QT_PLUGINS_DIR}/platformthemes/libqgtk3.so
|
||||||
|
-l /usr/local/lib64/libcrypto.so.3
|
||||||
|
-l /usr/local/lib64/libssl.so.3
|
||||||
|
# --exclude-library option does not work as expected
|
||||||
|
# --exclude-library=libssl.so.1.1,libcrypto.so.1.1,libnss3.so,libnssutil3.so
|
||||||
|
WORKING_DIRECTORY ${CPACK_PACKAGE_DIRECTORY})
|
@ -1,5 +1,4 @@
|
|||||||
# from: https://github.com/miurahr/cmake-qt-packaging-example
|
# from: https://github.com/miurahr/cmake-qt-packaging-example
|
||||||
|
|
||||||
find_package(Qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED COMPONENTS Core)
|
find_package(Qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED COMPONENTS Core)
|
||||||
|
|
||||||
get_target_property(QMAKE_EXECUTABLE Qt::qmake IMPORTED_LOCATION)
|
get_target_property(QMAKE_EXECUTABLE Qt::qmake IMPORTED_LOCATION)
|
||||||
@ -7,6 +6,10 @@ get_filename_component(QT_BIN_DIR "${QMAKE_EXECUTABLE}" DIRECTORY)
|
|||||||
execute_process(COMMAND ${QMAKE_EXECUTABLE} -query QT_VERSION OUTPUT_VARIABLE QT_VERSION)
|
execute_process(COMMAND ${QMAKE_EXECUTABLE} -query QT_VERSION OUTPUT_VARIABLE QT_VERSION)
|
||||||
|
|
||||||
set(QT_TOOLS_DIR "${QT_BIN_DIR}/../../../Tools")
|
set(QT_TOOLS_DIR "${QT_BIN_DIR}/../../../Tools")
|
||||||
|
cmake_path(NORMAL_PATH QT_TOOLS_DIR OUTPUT_VARIABLE QT_TOOLS_DIR)
|
||||||
|
|
||||||
|
set(QT_PLUGINS_DIR "${QT_BIN_DIR}/../plugins")
|
||||||
|
cmake_path(NORMAL_PATH QT_PLUGINS_DIR OUTPUT_VARIABLE QT_PLUGINS_DIR)
|
||||||
|
|
||||||
# To use the specific version of Qt
|
# To use the specific version of Qt
|
||||||
set(WINDEPLOYQT_EXECUTABLE "${QT_BIN_DIR}/windeployqt.exe")
|
set(WINDEPLOYQT_EXECUTABLE "${QT_BIN_DIR}/windeployqt.exe")
|
||||||
@ -28,8 +31,6 @@ function(windeployqt target)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message(INFO " debug: windeployqt:${WINDEPLOYQT_EXECUTABLE}")
|
|
||||||
|
|
||||||
add_custom_target(deploy
|
add_custom_target(deploy
|
||||||
COMMAND "${CMAKE_COMMAND}" -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/winqt/"
|
COMMAND "${CMAKE_COMMAND}" -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/winqt/"
|
||||||
COMMAND "${CMAKE_COMMAND}" -E
|
COMMAND "${CMAKE_COMMAND}" -E
|
||||||
@ -49,19 +50,19 @@ function(windeployqt target)
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies(deploy lrelease)
|
add_dependencies(deploy lrelease)
|
||||||
|
add_dependencies(pack deploy)
|
||||||
|
|
||||||
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/winqt/" DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL)
|
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/winqt/" DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL)
|
||||||
|
|
||||||
cmake_path(NORMAL_PATH QT_TOOLS_DIR OUTPUT_VARIABLE QT_TOOLS_DIR)
|
|
||||||
set(OPENSSL_ROOT_DIR "${QT_TOOLS_DIR}/OpenSSL/Win_x64" CACHE STRING "OpenSSL dir")
|
set(OPENSSL_ROOT_DIR "${QT_TOOLS_DIR}/OpenSSL/Win_x64" CACHE STRING "OpenSSL dir")
|
||||||
file(GLOB OPENSSL_LIBS_FILES "${OPENSSL_ROOT_DIR}/bin/lib*.dll")
|
file(GLOB OPENSSL_LIBS_FILES "${OPENSSL_ROOT_DIR}/bin/lib*.dll")
|
||||||
cmake_path(NORMAL_PATH OPENSSL_LIBS_FILES OUTPUT_VARIABLE OPENSSL_LIBS_FILES)
|
cmake_path(NORMAL_PATH OPENSSL_LIBS_FILES OUTPUT_VARIABLE OPENSSL_LIBS_FILES)
|
||||||
install(FILES ${OPENSSL_LIBS_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL)
|
install(FILES ${OPENSSL_LIBS_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL)
|
||||||
|
|
||||||
message(INFO " debug: OpenSSLExtraLIBDIR:${OPENSSL_EXTRA_LIB_DIR}")
|
message(STATUS "OpenSSLExtraLIBDIR:${OPENSSL_EXTRA_LIB_DIR}")
|
||||||
file(GLOB OPENSSL_EXTRA_LIB_FILES "${OPENSSL_EXTRA_LIB_DIR}/lib*.dll")
|
file(GLOB OPENSSL_EXTRA_LIB_FILES "${OPENSSL_EXTRA_LIB_DIR}/lib*.dll")
|
||||||
cmake_path(NORMAL_PATH OPENSSL_EXTRA_LIB_FILES OUTPUT_VARIABLE OPENSSL_EXTRA_LIB_FILES)
|
cmake_path(NORMAL_PATH OPENSSL_EXTRA_LIB_FILES OUTPUT_VARIABLE OPENSSL_EXTRA_LIB_FILES)
|
||||||
message(INFO " debug: OpenSSLExtraLibFiles:${OPENSSL_EXTRA_LIB_FILES}")
|
message(STATUS "OpenSSLExtraLibFiles:${OPENSSL_EXTRA_LIB_FILES}")
|
||||||
install(FILES ${OPENSSL_EXTRA_LIB_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL)
|
install(FILES ${OPENSSL_EXTRA_LIB_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL)
|
||||||
|
|
||||||
set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
|
set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
|
||||||
@ -104,9 +105,11 @@ add_custom_target(pack
|
|||||||
COMMAND ${CMAKE_CPACK_COMMAND} "--config" "${CMAKE_BINARY_DIR}/BundleConfig.cmake"
|
COMMAND ${CMAKE_CPACK_COMMAND} "--config" "${CMAKE_BINARY_DIR}/BundleConfig.cmake"
|
||||||
COMMENT "Running CPACK. Please wait..."
|
COMMENT "Running CPACK. Please wait..."
|
||||||
DEPENDS vnote)
|
DEPENDS vnote)
|
||||||
|
add_dependencies(pack lrelease)
|
||||||
|
|
||||||
set(CPACK_GENERATOR)
|
set(CPACK_GENERATOR)
|
||||||
|
|
||||||
if (WIN32)
|
if(WIN32)
|
||||||
find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${QT_BIN_DIR}" DOC "Path to the windeployqt utility")
|
find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${QT_BIN_DIR}" DOC "Path to the windeployqt utility")
|
||||||
|
|
||||||
list(APPEND CPACK_GENERATOR ZIP)
|
list(APPEND CPACK_GENERATOR ZIP)
|
||||||
@ -120,6 +123,20 @@ if (WIN32)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
windeployqt(vnote)
|
windeployqt(vnote)
|
||||||
|
elseif(APPLE)
|
||||||
|
else()
|
||||||
|
message(STATUS "LinuxDeployExecutable: ${LINUXDEPLOY_EXECUTABLE}")
|
||||||
|
if(LINUXDEPLOY_EXECUTABLE)
|
||||||
|
message(STATUS "Package generation - Linux - AppImage")
|
||||||
|
|
||||||
|
set(CPACK_GENERATOR "External;${CPACK_GENERATOR}")
|
||||||
|
set(VX_APPIMAGE_DEST_DIR "${CPACK_PACKAGE_DIRECTORY}/_CPack_Packages/Linux/External/AppImage")
|
||||||
|
set(VX_APPIMAGE_DESKTOP_FILE "${VX_APPIMAGE_DEST_DIR}${CMAKE_INSTALL_PREFIX}/share/applications/vnote.desktop")
|
||||||
|
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()
|
endif()
|
||||||
|
|
||||||
include(CPack)
|
include(CPack)
|
||||||
|
@ -10,4 +10,4 @@ Icon=vnote
|
|||||||
Terminal=false
|
Terminal=false
|
||||||
Exec=vnote %F
|
Exec=vnote %F
|
||||||
MimeType=text/markdown;
|
MimeType=text/markdown;
|
||||||
Categories=Qt;Utility;TextEditor;Office;
|
Categories=Utility
|
||||||
|
Loading…
x
Reference in New Issue
Block a user