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