Browse Source

Merge pull request #17125 from sledgehammer999/cmake_lupdate

Use CMake to update translation files
adaptive-webui-19844
sledgehammer999 3 years ago committed by GitHub
parent
commit
56b99f4e19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      .appveyor.yml
  2. 4
      .github/workflows/ci_macos.yaml
  3. 4
      .github/workflows/ci_ubuntu.yaml
  4. 2
      .github/workflows/ci_windows.yaml
  5. 13
      src/app/CMakeLists.txt

10
.appveyor.yml

@ -51,8 +51,14 @@ before_build:
build_script: build_script:
- cd "%REPO_DIR%" - cd "%REPO_DIR%"
# scan only as lupdate is prone to hang # lupdate chokes when it parses headers from system inludes, especially Boost
- lupdate -extensions c,cpp,h,hpp,ui . # it also chokes with the sources from src/app/qtlocalpeer (formerly qtsingleapplication)
# Workaround: temporarily rename them to run lupdate with the .pro file
- RENAME conf.pri conf.pri.temp
- RENAME src\app\qtlocalpeer qtlocalpeer.temp
- lupdate qbittorrent.pro
- RENAME conf.pri.temp conf.pri
- RENAME src\app\qtlocalpeer.temp qtlocalpeer
- qmake qbittorrent.pro && cd src && qmake src.pro - qmake qbittorrent.pro && cd src && qmake src.pro
- jom -j2 -f Makefile.Release - jom -j2 -f Makefile.Release

4
.github/workflows/ci_macos.yaml

@ -80,7 +80,6 @@ jobs:
- name: Build qBittorrent (Qt5) - name: Build qBittorrent (Qt5)
if: ${{ startsWith(matrix.qt_version, 5) }} if: ${{ startsWith(matrix.qt_version, 5) }}
run: | run: |
lupdate -extensions c,cpp,h,hpp,ui ./
cmake \ cmake \
-B build \ -B build \
-G "Ninja" \ -G "Ninja" \
@ -90,12 +89,12 @@ jobs:
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \ -DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \
-DVERBOSE_CONFIGURE=ON \ -DVERBOSE_CONFIGURE=ON \
-D${{ matrix.qbt_gui }} -D${{ matrix.qbt_gui }}
cmake --build build --target qbt_update_translations
cmake --build build cmake --build build
- name: Build qBittorrent (Qt6) - name: Build qBittorrent (Qt6)
if: ${{ startsWith(matrix.qt_version, 6) }} if: ${{ startsWith(matrix.qt_version, 6) }}
run: | run: |
lupdate -extensions c,cpp,h,hpp,ui ./
cmake \ cmake \
-B build \ -B build \
-G "Ninja" \ -G "Ninja" \
@ -106,6 +105,7 @@ jobs:
-DQT6=ON \ -DQT6=ON \
-DVERBOSE_CONFIGURE=ON \ -DVERBOSE_CONFIGURE=ON \
-D${{ matrix.qbt_gui }} -D${{ matrix.qbt_gui }}
cmake --build build --target qbt_update_translations
cmake --build build cmake --build build
- name: Prepare build artifacts - name: Prepare build artifacts

4
.github/workflows/ci_ubuntu.yaml

@ -64,7 +64,6 @@ jobs:
- name: Build qBittorrent (Qt5) - name: Build qBittorrent (Qt5)
if: ${{ startsWith(matrix.qt_version, 5) }} if: ${{ startsWith(matrix.qt_version, 5) }}
run: | run: |
lupdate -extensions c,cpp,h,hpp,ui ./
cmake \ cmake \
-B build \ -B build \
-G "Ninja" \ -G "Ninja" \
@ -73,13 +72,13 @@ jobs:
-DCMAKE_INSTALL_PREFIX="/usr" \ -DCMAKE_INSTALL_PREFIX="/usr" \
-DVERBOSE_CONFIGURE=ON \ -DVERBOSE_CONFIGURE=ON \
-D${{ matrix.qbt_gui }} -D${{ matrix.qbt_gui }}
cmake --build build --target qbt_update_translations
cmake --build build cmake --build build
DESTDIR="qbittorrent" cmake --install build DESTDIR="qbittorrent" cmake --install build
- name: Build qBittorrent (Qt6) - name: Build qBittorrent (Qt6)
if: ${{ startsWith(matrix.qt_version, 6) }} if: ${{ startsWith(matrix.qt_version, 6) }}
run: | run: |
lupdate -extensions c,cpp,h,hpp,ui ./
cmake \ cmake \
-B build \ -B build \
-G "Ninja" \ -G "Ninja" \
@ -89,6 +88,7 @@ jobs:
-DQT6=ON \ -DQT6=ON \
-DVERBOSE_CONFIGURE=ON \ -DVERBOSE_CONFIGURE=ON \
-D${{ matrix.qbt_gui }} -D${{ matrix.qbt_gui }}
cmake --build build --target qbt_update_translations
cmake --build build cmake --build build
DESTDIR="qbittorrent" cmake --install build DESTDIR="qbittorrent" cmake --install build

2
.github/workflows/ci_windows.yaml

@ -105,7 +105,6 @@ jobs:
- name: Build qBittorrent - name: Build qBittorrent
run: | run: |
lupdate -extensions c,cpp,h,hpp,ui .
cmake ` cmake `
-B build ` -B build `
-G "Ninja" ` -G "Ninja" `
@ -119,6 +118,7 @@ jobs:
-DVCPKG_TARGET_TRIPLET=x64-windows-static-release ` -DVCPKG_TARGET_TRIPLET=x64-windows-static-release `
-DVERBOSE_CONFIGURE=ON ` -DVERBOSE_CONFIGURE=ON `
--graphviz=build/target_graph.dot --graphviz=build/target_graph.dot
cmake --build build --target qbt_update_translations
cmake --build build cmake --build build
- name: Prepare build artifacts - name: Prepare build artifacts

13
src/app/CMakeLists.txt

@ -1,8 +1,19 @@
file(GLOB QBT_TS_FILES "${qBittorrent_SOURCE_DIR}/src/lang/*.ts")
# Custom target to update .ts files and include new strings from source files
# Depends on Qt's LinguistTools
get_target_property(QT_LUPDATE_EXECUTABLE Qt::lupdate IMPORTED_LOCATION)
add_custom_target(qbt_update_translations
COMMAND ${QT_LUPDATE_EXECUTABLE} -extensions ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx
${qBittorrent_SOURCE_DIR}
-ts ${QBT_TS_FILES}
WORKING_DIRECTORY "${qBittorrent_SOURCE_DIR}"
VERBATIM
COMMAND_EXPAND_LISTS)
# Generate and configure translation files # Generate and configure translation files
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Based on https://gist.github.com/giraldeau/546ba5512a74dfe9d8ea0862d66db412 # Based on https://gist.github.com/giraldeau/546ba5512a74dfe9d8ea0862d66db412
file(GLOB QBT_TS_FILES "${qBittorrent_SOURCE_DIR}/src/lang/*.ts")
set_source_files_properties(${QBT_TS_FILES} PROPERTIES OUTPUT_LOCATION "${qBittorrent_BINARY_DIR}/src/lang") set_source_files_properties(${QBT_TS_FILES} PROPERTIES OUTPUT_LOCATION "${qBittorrent_BINARY_DIR}/src/lang")
qt_add_translation(QBT_QM_FILES ${QBT_TS_FILES} OPTIONS -silent) qt_add_translation(QBT_QM_FILES ${QBT_TS_FILES} OPTIONS -silent)
configure_file("${qBittorrent_SOURCE_DIR}/src/lang/lang.qrc" "${qBittorrent_BINARY_DIR}/src/lang/lang.qrc" COPYONLY) configure_file("${qBittorrent_SOURCE_DIR}/src/lang/lang.qrc" "${qBittorrent_BINARY_DIR}/src/lang/lang.qrc" COPYONLY)

Loading…
Cancel
Save