mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 13:59:52 +08:00
parent
a04968913c
commit
522b37425f
123
.github/workflows/ci-win.yml
vendored
123
.github/workflows/ci-win.yml
vendored
@ -8,6 +8,12 @@ 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
|
||||||
@ -19,23 +25,26 @@ jobs:
|
|||||||
timeout-minutes: 120
|
timeout-minutes: 120
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
|
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,
|
||||||
platform: x64,
|
|
||||||
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,
|
||||||
|
suffix: "-windows7"
|
||||||
}
|
}
|
||||||
- {
|
- {
|
||||||
name: "Build On Win64 Qt 6.5",
|
name: "Build On Win64 Qt 6.5",
|
||||||
arch: win64_msvc2019_64,
|
arch: win64_msvc2019_64,
|
||||||
platform: x64,
|
|
||||||
qt: 6.5.2,
|
qt: 6.5.2,
|
||||||
qt_modules: "qtwebengine qtwebchannel qtpositioning qtpdf qtimageformats qt5compat",
|
qt_modules: "qtwebengine qtwebchannel qtpositioning qtpdf qtimageformats qt5compat",
|
||||||
qt_tools: tools_opensslv3_x64
|
qt_tools: tools_opensslv3_x64,
|
||||||
|
qt_major: 6,
|
||||||
|
suffix: ""
|
||||||
}
|
}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@ -80,94 +89,44 @@ jobs:
|
|||||||
git clone https://github.com/tamlok/openssl-utils.git openssl-utils.git --depth=1
|
git clone https://github.com/tamlok/openssl-utils.git openssl-utils.git --depth=1
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
|
|
||||||
- name: Download JOM
|
# Enable tmate debugging of manually-triggered workflows if the input option was provided
|
||||||
uses: suisei-cn/actions-download-file@v1
|
- name: Setup tmate session
|
||||||
with:
|
uses: mxschmitt/action-tmate@v3
|
||||||
url: http://download.qt.io/official_releases/jom/jom.zip
|
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }}
|
||||||
target: ${{runner.temp}}\
|
|
||||||
|
|
||||||
- name: Unzip JOM
|
|
||||||
run: |
|
|
||||||
7z x jom.zip -ojom
|
|
||||||
working-directory: ${{runner.temp}}
|
|
||||||
|
|
||||||
- name: Configure and Build Project
|
- name: Configure and Build Project
|
||||||
shell: cmd
|
shell: cmd
|
||||||
run: |
|
run: |
|
||||||
qmake --version
|
cmake --version
|
||||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.config.platform}}
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
|
||||||
qmake -r -spec win32-msvc CONFIG-=debug CONFIG+=release %GITHUB_WORKSPACE%\vnote.pro
|
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%
|
||||||
${{runner.temp}}\jom\jom
|
cmake --build .
|
||||||
|
cmake --build . --target=deploy
|
||||||
|
cmake --build . --target=pack
|
||||||
|
cmake --build . --target=install
|
||||||
|
7z x VNote*.zip -o*
|
||||||
|
dir
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
|
|
||||||
- name: Package Project 1
|
- name: Rename on 5.15
|
||||||
shell: cmd
|
shell: bash
|
||||||
run: |
|
|
||||||
qmake --version
|
|
||||||
mkdir "%DISTRIB_PATH%"
|
|
||||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.config.platform}}
|
|
||||||
windeployqt.exe --dir "%DISTRIB_PATH%" .\src\release\vnote.exe
|
|
||||||
copy .\src\release\vnote.exe "%DISTRIB_PATH%\vnote.exe"
|
|
||||||
copy .\src\release\vnote_extra.rcc "%DISTRIB_PATH%\vnote_extra.rcc"
|
|
||||||
copy .\libs\vtextedit\src\libs\syntax-highlighting\release\VSyntaxHighlighting.dll "%DISTRIB_PATH%\VSyntaxHighlighting.dll"
|
|
||||||
copy .\libs\vtextedit\src\editor\release\VTextEdit.dll "%DISTRIB_PATH%\VTextEdit.dll"
|
|
||||||
copy "%GITHUB_WORKSPACE%\package\qt.conf" "%DISTRIB_PATH%\qt.conf"
|
|
||||||
copy "%GITHUB_WORKSPACE%\README.md" "%DISTRIB_PATH%\README.md"
|
|
||||||
copy "%GITHUB_WORKSPACE%\COPYING.LESSER" "%DISTRIB_PATH%\COPYING.LESSER"
|
|
||||||
echo %GITHUB_SHA% > "%DISTRIB_PATH%\commit"
|
|
||||||
del /F /Q "%DISTRIB_PATH%\translations\qt_*.qm"
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
|
||||||
env:
|
|
||||||
DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote
|
|
||||||
|
|
||||||
- name: "Package Project: Copy OpenSSL on 5.15"
|
|
||||||
shell: cmd
|
|
||||||
if: ${{startsWith(matrix.config.qt, '5.15')}}
|
if: ${{startsWith(matrix.config.qt, '5.15')}}
|
||||||
run: |
|
run: |
|
||||||
set openssl_dir=openssl-utils.git\1.1.1j\Win_${{matrix.config.platform}}
|
mv VNote-${{env.VNOTE_VER}}-win64 VNote-${{env.VNOTE_VER}}-win64${{matrix.config.suffix}}
|
||||||
copy %openssl_dir%\lib*.dll "%DISTRIB_PATH%\"
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
working-directory: ${{runner.workspace}}/build
|
||||||
env:
|
|
||||||
DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote
|
|
||||||
|
|
||||||
- name: Package Project 2
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
7z a vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}.zip "%DISTRIB_PATH%"
|
|
||||||
copy vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}.zip vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.zip
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
|
||||||
env:
|
|
||||||
DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote
|
|
||||||
|
|
||||||
- name: Package Installer
|
|
||||||
if: ${{startsWith(matrix.config.qt, '6.')}}
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
copy "%GITHUB_WORKSPACE%\src\data\core\icons\vnote.ico" "%DISTRIB_PATH%\vnote.ico"
|
|
||||||
git clone https://github.com/vnotex/mkmsi.git mkmsi.git --depth=1
|
|
||||||
python .\mkmsi.git\mkmsi.py --auto-create qt --source-dir "%DISTRIB_PATH%" --wix-root "C:\Program Files (x86)\WiX Toolset v3.11" --merge-module "C:\Program Files (x86)\Common Files\Merge Modules\Microsoft_VC140_CRT_${{matrix.config.platform}}.msm" --add-desktop-shortcut --project-version ${{env.VNOTE_VER}} --license %GITHUB_WORKSPACE%\package\lgpl-3.0.rtf --executable vnote.exe --wix-banner %GITHUB_WORKSPACE%\package\wix_banner.png --wix-dialog %GITHUB_WORKSPACE%\package\wix_dialog.png VNote
|
|
||||||
move VNote.msi .\distrib\VNote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.msi
|
|
||||||
del "%DISTRIB_PATH%\vnote.ico"
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
|
||||||
env:
|
|
||||||
DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote
|
|
||||||
|
|
||||||
- name: Archive Artifacts
|
- name: Archive Artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}
|
name: VNote-${{env.VNOTE_VER}}-win64${{matrix.config.suffix}}
|
||||||
path: ${{env.DISTRIB_PATH}}
|
path: ${{runner.workspace}}/build/VNote-${{env.VNOTE_VER}}-win64${{matrix.config.suffix}}
|
||||||
env:
|
|
||||||
DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote
|
|
||||||
|
|
||||||
- name: Archive Installer
|
- name: Archive Installer
|
||||||
if: ${{startsWith(matrix.config.qt, '6.')}}
|
if: ${{!startsWith(matrix.config.qt, '5.15')}}
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: VNote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.msi
|
name: VNote-${{env.VNOTE_VER}}-win64${{matrix.config.suffix}}.msi
|
||||||
path: ${{runner.workspace}}/build/distrib/VNote*.msi
|
path: ${{runner.workspace}}/build/VNote*.msi
|
||||||
env:
|
|
||||||
DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote
|
|
||||||
|
|
||||||
- name: Update Tag
|
- name: Update Tag
|
||||||
if: github.ref == 'refs/heads/master'
|
if: github.ref == 'refs/heads/master'
|
||||||
@ -181,24 +140,18 @@ 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-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}.zip
|
# glob not supported
|
||||||
|
files: ${{runner.workspace}}/build/VNote-${{env.VNOTE_VER}}-win64${{matrix.config.suffix}}
|
||||||
release: Continuous Build
|
release: Continuous Build
|
||||||
tag: continuous-build
|
tag: continuous-build
|
||||||
|
|
||||||
- name: Test
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
dir .
|
|
||||||
dir .\distrib
|
|
||||||
working-directory: ${{runner.workspace}}/build
|
|
||||||
|
|
||||||
- name: Release
|
- name: Release
|
||||||
if: github.ref == 'refs/heads/master' && startsWith(github.event.head_commit.message, '[Release]')
|
if: github.ref == 'refs/heads/master' && startsWith(github.event.head_commit.message, '[Release]')
|
||||||
uses: ncipollo/release-action@v1.11.0
|
uses: ncipollo/release-action@v1.11.0
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
# We need hard code here.
|
# glob not supported
|
||||||
artifacts: "D:/a/vnote/build/vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.zip"
|
artifacts: ${{runner.workspace}}/build/VNote-${{env.VNOTE_VER}}-win64${{matrix.config.suffix}}
|
||||||
commit: master
|
commit: master
|
||||||
tag: v${{env.VNOTE_VER}}
|
tag: v${{env.VNOTE_VER}}
|
||||||
allowUpdates: true
|
allowUpdates: true
|
||||||
|
@ -2,36 +2,39 @@
|
|||||||
|
|
||||||
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 Qt5::qmake IMPORTED_LOCATION)
|
get_target_property(QMAKE_EXECUTABLE Qt::qmake IMPORTED_LOCATION)
|
||||||
get_filename_component(QT_BIN_DIR "${QMAKE_EXECUTABLE}" DIRECTORY)
|
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")
|
||||||
|
|
||||||
# To use the specific version of Qt
|
# To use the specific version of Qt
|
||||||
set(WINDEPLOYQT_EXECUTABLE "${QT_BIN_DIR}/windeployqt")
|
set(WINDEPLOYQT_EXECUTABLE "${QT_BIN_DIR}/windeployqt.exe")
|
||||||
|
|
||||||
find_program(LINUXDEPLOY_EXECUTABLE linuxdeploy linuxdeploy-x86_64.AppImage HINTS "${QT_BIN_DIR}")
|
find_program(LINUXDEPLOY_EXECUTABLE linuxdeploy linuxdeploy-x86_64.AppImage HINTS "${QT_BIN_DIR}")
|
||||||
find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${QT_BIN_DIR}")
|
find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${QT_BIN_DIR}")
|
||||||
find_program(MACDEPLOYQTFIX_EXECUTABLE macdeployqtfix.py HINTS "${QT_BIN_DIR}")
|
find_program(MACDEPLOYQTFIX_EXECUTABLE macdeployqtfix.py HINTS "${QT_BIN_DIR}")
|
||||||
find_package(Python)
|
find_package(Python)
|
||||||
|
|
||||||
mark_as_advanced(WINDEPLOYQT_EXECUTABLE LINUXDEPLOY_EXECUTABLE MACDEPLOYQT_EXECUTABLE)
|
|
||||||
|
|
||||||
function(windeployqt target)
|
function(windeployqt target)
|
||||||
# Bundle Library Files
|
# Bundle Library Files
|
||||||
string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPER)
|
string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPER)
|
||||||
|
|
||||||
if(CMAKE_BUILD_TYPE_UPPER STREQUAL "DEBUG")
|
if ((QT_DEFAULT_MAJOR_VERSION GREATER 5))
|
||||||
set(WINDEPLOYQT_ARGS --debug)
|
if(CMAKE_BUILD_TYPE_UPPER STREQUAL "DEBUG")
|
||||||
else()
|
set(WINDEPLOYQT_ARGS --debug)
|
||||||
set(WINDEPLOYQT_ARGS --release)
|
else()
|
||||||
|
set(WINDEPLOYQT_ARGS --release)
|
||||||
|
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
|
||||||
env PATH="${QT_BIN_DIR}" "${WINDEPLOYQT_EXECUTABLE}"
|
env PATH="${QT_BIN_DIR}" "${WINDEPLOYQT_EXECUTABLE}"
|
||||||
${WINDEPLOYQT_ARGS}
|
${WINDEPLOYQT_ARGS}
|
||||||
--verbose 0
|
|
||||||
--no-quick-import
|
--no-quick-import
|
||||||
--no-opengl-sw
|
--no-opengl-sw
|
||||||
--no-compiler-runtime
|
--no-compiler-runtime
|
||||||
@ -48,6 +51,19 @@ function(windeployqt target)
|
|||||||
add_dependencies(deploy lrelease)
|
add_dependencies(deploy lrelease)
|
||||||
|
|
||||||
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")
|
||||||
|
file(GLOB OPENSSL_LIBS_FILES "${OPENSSL_ROOT_DIR}/bin/lib*.dll")
|
||||||
|
cmake_path(NORMAL_PATH OPENSSL_LIBS_FILES OUTPUT_VARIABLE OPENSSL_LIBS_FILES)
|
||||||
|
install(FILES ${OPENSSL_LIBS_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL)
|
||||||
|
|
||||||
|
message(INFO " debug: OpenSSLExtraLIBDIR:${OPENSSL_EXTRA_LIB_DIR}")
|
||||||
|
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)
|
||||||
|
message(INFO " debug: OpenSSLExtraLibFiles:${OPENSSL_EXTRA_LIB_FILES}")
|
||||||
|
install(FILES ${OPENSSL_EXTRA_LIB_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL)
|
||||||
|
|
||||||
set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
|
set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
|
||||||
include(InstallRequiredSystemLibraries)
|
include(InstallRequiredSystemLibraries)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user