diff --git a/.github/workflows/cmake build check.yml b/.github/workflows/PR-check-cmake.yml similarity index 93% rename from .github/workflows/cmake build check.yml rename to .github/workflows/PR-check-cmake.yml index 071d613e..706f061c 100644 --- a/.github/workflows/cmake build check.yml +++ b/.github/workflows/PR-check-cmake.yml @@ -57,12 +57,12 @@ jobs: - name: Run build-wrapper run: | - cmake . -DWITH_FFMPEG_PLAYER=OFF + cmake . cmake --build . job2: name: windows Build and analyze - runs-on: windows-2019 + runs-on: windows-latest steps: - uses: actions/setup-python@v3 with: @@ -84,7 +84,7 @@ jobs: - name: Run build-wrapper run: | - cmake -S . -DWITH_FFMPEG_PLAYER=OFF + cmake -S . -DWITH_FFMPEG_PLAYER=OFF cmake --build . --config Release job3: name: macos Build and analyze @@ -137,7 +137,6 @@ jobs: brew install icu4c - name: Run build-wrapper run: | - export PKG_CONFIG_PATH=/opt/homebrew/opt/icu4c/lib/pkgconfig:/usr/local/opt/icu4c/lib/pkgconfig:"$PKG_CONFIG_PATH" - cmake . -DWITH_FFMPEG_PLAYER=OFF + cmake . cmake --build . \ No newline at end of file diff --git a/.github/workflows/windows-PR-check.yml b/.github/workflows/PR-check-windows.yml similarity index 98% rename from .github/workflows/windows-PR-check.yml rename to .github/workflows/PR-check-windows.yml index ccc2b9f2..6764d005 100644 --- a/.github/workflows/windows-PR-check.yml +++ b/.github/workflows/PR-check-windows.yml @@ -28,7 +28,7 @@ jobs: strategy: matrix: os: [windows-2019] - qt_ver: [5.15.2,6.6.3] + qt_ver: [6.6.3] qt_arch: [win64_msvc2019_64] steps: - uses: actions/setup-python@v3 diff --git a/.github/workflows/macos-homebrew-PR-check.yml b/.github/workflows/macos-homebrew-PR-check.yml deleted file mode 100644 index 047db2a3..00000000 --- a/.github/workflows/macos-homebrew-PR-check.yml +++ /dev/null @@ -1,80 +0,0 @@ -name: macos-homebrew-PR-check -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true -on: - - workflow_dispatch: - - pull_request: - branches: - - dev - - master - - experimental - - staged - paths-ignore: - - 'docs/**' - # - ".github/**" - - "howto/**" - - "*.md" - - "locale/**" - - "website/**" -jobs: - build: - name: Build - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [macos-12] - qt_ver: [6.6.3] - qt_arch: [clang_64] - env: - targetName: GoldenDict - steps: - - - name: Install Qt - uses: jurplel/install-qt-action@v3 - with: - version: ${{ matrix.qt_ver }} - arch: ${{ matrix.qt_arch }} - - modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtspeech - - uses: actions/checkout@v4 - with: - fetch-depth: 1 - submodules: true - - name: Set outputs - id: githash - run: | - echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - - name: install deps on macos - run: | - export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=TRUE - brew install cmake ninja - brew install automake - brew install autoconf - brew install libtool - brew install opencc - - brew install libao - brew install libiconv - brew install lzo bzip2 - brew install libogg - brew install zstd lzip - brew install libvorbis --force - brew install hunspell - wget ftp://ftp.sra.co.jp/pub/misc/eb/eb-4.4.3.tar.bz2 - tar xvjf eb-4.4.3.tar.bz2 - cd eb-4.4.3 && ./configure && make -j 8 && sudo make install && cd .. - # brew install xz - brew install pkg-config - brew install libiconv - brew install xapian - brew install libzim - - - name: compile - run: | - qmake CONFIG+=release CONFIG+=no_macos_universal CONFIG+=zim_support CONFIG+=use_iconv CONFIG+=use_xapian CONFIG+=no_ffmpeg_player - make - diff --git a/.github/workflows/macos-homebrew-breakpad.yml b/.github/workflows/macos-homebrew-breakpad.yml deleted file mode 100644 index b03dce46..00000000 --- a/.github/workflows/macos-homebrew-breakpad.yml +++ /dev/null @@ -1,224 +0,0 @@ -name: macos-homebrew-breakpad -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true -on: - workflow_dispatch: - #push: - # branches: - # - dev - # - master - # # - staged - # paths-ignore: - # - 'docs/**' - # - ".github/**" - # - "howto/**" - # - "*.md" - # - ".clang-format" -jobs: - build: - name: Build - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [macos-13] - qt_ver: [ 6.6.0 ] - qt_arch: [clang_64] - env: - targetName: GoldenDict - version: 24.05.13 - version-suffix: alpha - prerelease: true - steps: - - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - submodules: true - - name: Set outputs - id: githash - run: | - echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - - name: install deps on macos - run: | - brew install cmake ninja - brew install automake - brew install autoconf - brew install libtool - brew install opencc - brew install speex - brew install wavpack - brew install automake fdk-aac git lame libass libtool libvorbis libvpx opus sdl shtool texi2html theora wget x264 x265 xvid nasm - - brew install libiconv - brew install lzo bzip2 - brew install libogg - brew install zstd lzip - brew install libvorbis - brew install hunspell - git clone https://github.com/xiaoyifang/eb.git - cd eb && ./configure && make -j 8 && sudo make install && cd .. - brew install xz lzo - brew install pkg-config - brew install create-dmg - brew install xapian - brew install libzim - # brew reinstall icu4c - brew install dylibbundler - find /opt -name libicudata.72.dylib - find /usr/local -name libicudata.72.dylib - - name: version-file - shell: bash - env: - VAR_SUFFIX: ${{env.version-suffix}} - VAR_VERSION: ${{env.version}} - run: | - current_tag=$(git rev-parse --short=8 HEAD) - release_date=$(date +'%Y%m%d') - echo "$VAR_VERSION-$VAR_SUFFIX.$release_date.$current_tag">version.txt - cat version.txt - echo "$version" - - - name: vcpkg install - shell: bash - run: | - vcpkg install breakpad - - name: copy vcpkg packages into winlibs - shell: bash - run: | - ls -al /usr/local/share/vcpkg/packages/breakpad* - cp -R /usr/local/share/vcpkg/packages/breakpad*/* thirdparty/breakpad - ls -al thirdparty/breakpad/lib - - - name: Install Qt - uses: jurplel/install-qt-action@v3 - with: - version: ${{ matrix.qt_ver }} - arch: ${{ matrix.qt_arch }} - modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech - - - name: compile - run: | - qmake CONFIG+=release CONFIG+=no_macos_universal CONFIG+=zim_support CONFIG+=use_xapian CONFIG+=use_breakpad CONFIG+=no_ffmpeg_player CONFIG+=no_tts_support - make -j8 - - - name: package - run: | - - macdeployqt ${targetName}.app -no-strip -qmldir=. -verbose=1 - otool -L GoldenDict.app/Contents/MacOS/GoldenDict - ls -al GoldenDict.app/Contents/Frameworks - # otool -L GoldenDict.app/Contents/Frameworks/libicu*.dylib - ls -al /usr/local/Cellar/icu4c/7*/lib/libicudata.*.dylib - # cp -r /usr/local/Cellar/icu4c/7*/lib/libicudata.*.dylib GoldenDict.app/Contents/Frameworks - - codesign --force --deep -s - GoldenDict.app - - ls -al GoldenDict.app/Contents/Frameworks - mkdir tmp - mv ${targetName}.app ./tmp - # --background "installer_background.png" - create-dmg --volname "${targetName} Installer" --volicon "icons/macicon.icns" --window-pos 200 120 --window-size 800 400 --icon-size 100 --icon "${targetName}.app" 200 190 --hide-extension "${targetName}.app" --app-drop-link 600 185 --skip-jenkins "${targetName}.dmg" tmp/ - - name: changelog - id: changelog - run: | - previousTag=$(git tag --sort=-creatordate | grep "^v" | sed -n 2p) - echo "previousTag : $previousTag" - - - echo "prev_tag=$previousTag" >> $GITHUB_OUTPUT - echo "curr_tag=$(git tag --sort=-creatordate | grep "^v" | sed -n 1p)" >> $GITHUB_OUTPUT - - - name: Set outputs - id: vars - run: | - echo "sha_short=$(git rev-parse --short=8 HEAD)" >> $GITHUB_OUTPUT - echo "release_date=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT - echo "release_time=$(date +'%H%M%S')" >> $GITHUB_OUTPUT - echo "release_time_clock=$(date +'%H:%M:%S')" >> $GITHUB_OUTPUT - echo "release_hm=$(date +'%y%m%d')" >> $GITHUB_OUTPUT - - # tag 上传Release - - name: "Build Changelog" - id: build_changelog - uses: mikepenz/release-changelog-builder-action@v3 - with: - commitMode: false - fromTag: ${{ steps.changelog.outputs.prev_tag }} - toTag: "${{ steps.changelog.outputs.curr_tag }}" - configurationJson: | - { - "template": "#{{CHANGELOG}}\n\n
\n🔴 Uncategorized\n\n#{{UNCATEGORIZED}}\n
", - "categories": [ - { - "title": "## 🚀 Features", - "labels": ["feature","feat","opt"] - }, - { - "title": "## 🐛 Fixes", - "labels": ["fix","bug"] - } - , - { - "title": "## 🤖 Github action", - "labels": ["action"] - } - , - { - "title": "## 🧼 Clean Code", - "labels": ["clean"] - } - - ], - "label_extractor": [ - { - "pattern": "([^:]*):.*", - "target": "$1", - "on_property": "title", - "flags": "gu" - } - ] - } - - name: uploadRelease - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.targetName }}.dmg - asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}_${{ matrix.os }}_homebrew_breakpad_${{steps.vars.outputs.release_date}}.dmg - - tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.sha_short }} - overwrite: true - release_name: GoldenDict-ng-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }} - prerelease: ${{env.prerelease}} - body: | - #### Install instructions for Windows, macOS and Linux - - . - - #### Filename pattern (文件名模式): **[Qt version]-GoldenDict-ng-[OS]-[release-date].[ext]** - - Qt6.X is recommended for various enhancements. - - Windows users can use either `****-installer.exe` (for installer) or `****.zip` (unzip and run). - The `goldendict.exe` can be dropped into previous installation's folder (if dependencies aren't changed). - - Linux users can use Flatpak or build from source. - https://flathub.org/apps/io.github.xiaoyifang.goldendict_ng - - macOS users can use `.dmg` installer. - - `6.5.1-GoldenDict.exe_windows-2019_20230701.zip` means built with Qt6.5.1, windows/msvc-2019 at 20230701 as a zip archive. - - #### Build Details - - Flatpak - macOS: macOS-12 and macOS-13 - Windows: Visual studio 2019 - based on: ${{github.ref_name}} - - - - #### Changes - - ${{steps.build_changelog.outputs.changelog}} diff --git a/.github/workflows/AutoTag.yml b/.github/workflows/release-AutoTag.yml similarity index 100% rename from .github/workflows/AutoTag.yml rename to .github/workflows/release-AutoTag.yml diff --git a/.github/workflows/macos-homebrew.yml b/.github/workflows/release-macos-homebrew.yml similarity index 100% rename from .github/workflows/macos-homebrew.yml rename to .github/workflows/release-macos-homebrew.yml diff --git a/.github/workflows/windows-6.x.yml b/.github/workflows/release-windows.yml similarity index 100% rename from .github/workflows/windows-6.x.yml rename to .github/workflows/release-windows.yml diff --git a/.github/workflows/ubuntu-PR-check.yml b/.github/workflows/ubuntu-PR-check.yml deleted file mode 100644 index c6d94438..00000000 --- a/.github/workflows/ubuntu-PR-check.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: Ubuntu-PR-check -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true -on: - - workflow_dispatch: - - pull_request: - branches: - - dev - - master - - experimental - - staged - paths-ignore: - - 'docs/**' - # - ".github/**" - - "howto/**" - - "*.md" - - "locale/**" - - "website/**" - -jobs: - build: - name: Build - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - qt_ver: [5.15.2,6.6.0] - qt_arch: [gcc_64] - - steps: - - name: Install Qt - if: ${{ matrix.qt_ver == '5.15.2' }} - uses: jurplel/install-qt-action@v3 - with: - version: ${{ matrix.qt_ver }} - - modules: qtwebengine - - - name: Install Qt - if: ${{ matrix.qt_ver != '5.15.2' }} - uses: jurplel/install-qt-action@v3 - with: - version: ${{ matrix.qt_ver }} - arch: ${{ matrix.qt_arch }} - - modules: qtwebengine qtwebchannel qtpositioning qt5compat qtmultimedia qtimageformats qtspeech - - - name: ubuntu install thirdparty dependencies - run: | - sudo apt-get install git pkg-config build-essential qt5-qmake - sudo apt-get install libvorbis-dev zlib1g-dev libhunspell-dev x11proto-record-dev - sudo apt-get install qtdeclarative5-dev libxtst-dev liblzo2-dev libbz2-dev - sudo apt-get install libavutil-dev libavformat-dev libeb16-dev - sudo apt-get install libqt5webkit5-dev libqt5svg5-dev libqt5x11extras5-dev qttools5-dev - sudo apt-get install qttools5-dev-tools qtmultimedia5-dev libqt5multimedia5-plugins doxygen libzstd-dev #libopencc-dev - sudo apt-get install libxkbcommon-dev libc6-dev - sudo ln -sf /usr/bin/x86_64-linux-gnu-ld.gold /usr/bin/ld - git clone https://github.com/BYVoid/OpenCC - pwd - cd OpenCC/ - make PREFIX=/usr -j$(nproc) - sudo make install - cd .. - sudo apt install libxapian-dev - sudo apt-get install libzim-dev - - uses: actions/checkout@v4 - with: - fetch-depth: 1 - submodules: true - - - name: build goldendict - run: | - qmake CONFIG+=release PREFIX=/usr CONFIG+=zim_support CONFIG+=chinese_conversion_support CONFIG+=use_iconv CONFIG+=use_xapian - make INSTALL_ROOT=appdir -j`nproc` install; find appdir/ - - #copy missing shared dll to appdir. - mkdir -p appdir/usr/lib - cp $(ldd appdir/usr/bin/goldendict | grep -o '\W/[^ ]*' |grep gobject ) appdir/usr/lib - cp $(ldd appdir/usr/bin/goldendict | grep -o '\W/[^ ]*' |grep libpango ) appdir/usr/lib - - diff --git a/README.md b/README.md index 80a51223..7e612579 100644 --- a/README.md +++ b/README.md @@ -27,12 +27,13 @@ dictionaries. - support >4GB dictionary - support highdpi screen resolution - built with xapian as fulltext engine -- support Qt5.15.2 and higher ,include latest Qt6 +- support latest Qt6 - performance optimization(eg. >10000000 headwords support) - anki integration - dark theme - daily auto release support - lots of bug fixes and improvements +- general code improvements for easier development ## Help GoldenDict's Development