You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-11-04 16:42:38 +01:00
Compare commits
227 Commits
release-4.
...
release-4.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a574c4a70a | ||
|
|
1e367f818d | ||
|
|
00599c8f02 | ||
|
|
332a836746 | ||
|
|
a1992acc16 | ||
|
|
c3f002a544 | ||
|
|
c28cbe0a74 | ||
|
|
435daaceed | ||
|
|
e29ab0087b | ||
|
|
aadd5a3312 | ||
|
|
7e354ffad3 | ||
|
|
ee6a071fb6 | ||
|
|
bc8b838953 | ||
|
|
5251d93b3d | ||
|
|
84f0dbecfe | ||
|
|
bba0c8b2cc | ||
|
|
2f90be8bd2 | ||
|
|
cb6b6296aa | ||
|
|
9d25fdce2a | ||
|
|
12b2732f1a | ||
|
|
8c9ece73ee | ||
|
|
a7db786387 | ||
|
|
e5bf65c9bd | ||
|
|
900e7d3a14 | ||
|
|
f1ff74a926 | ||
|
|
30bc4b837e | ||
|
|
050a4f8b23 | ||
|
|
487103d58f | ||
|
|
eeea69d4c1 | ||
|
|
00360ad418 | ||
|
|
a733253ae5 | ||
|
|
9788ee042b | ||
|
|
e9c9ea3bba | ||
|
|
312dfb989d | ||
|
|
75deafe5b1 | ||
|
|
4ca257a389 | ||
|
|
03375a78f2 | ||
|
|
423c7066d7 | ||
|
|
5cd5cc71a8 | ||
|
|
45d4d22055 | ||
|
|
916a92aa0d | ||
|
|
d1ebbcb35d | ||
|
|
2743d998a8 | ||
|
|
dbbfbaff9f | ||
|
|
0be8439cf6 | ||
|
|
66982c5524 | ||
|
|
85af8547f7 | ||
|
|
e26977ab2c | ||
|
|
ec1cc783a6 | ||
|
|
03b00ec045 | ||
|
|
5e90156e9e | ||
|
|
052206efa1 | ||
|
|
305d73180b | ||
|
|
80000bf0fd | ||
|
|
06ebe756e8 | ||
|
|
5fa3d9f19c | ||
|
|
5b4c6d3665 | ||
|
|
77bd0f17d1 | ||
|
|
03a702cfbd | ||
|
|
a932cd2ec1 | ||
|
|
8e5743380a | ||
|
|
8001eb0368 | ||
|
|
f214dc88fc | ||
|
|
5cff5ab135 | ||
|
|
82ba154b64 | ||
|
|
4ea44bbd2b | ||
|
|
a5e68a8725 | ||
|
|
70291014d1 | ||
|
|
1aabcfc30c | ||
|
|
aba80e2b1c | ||
|
|
be683fbcd3 | ||
|
|
2bcf09cfa5 | ||
|
|
697325af63 | ||
|
|
c21bd77be5 | ||
|
|
d5430adaaa | ||
|
|
9e99a0d3f5 | ||
|
|
d088ab6f43 | ||
|
|
820d510c12 | ||
|
|
676847fcd0 | ||
|
|
0204630ee6 | ||
|
|
b515c7eda4 | ||
|
|
73fcecac76 | ||
|
|
a7b82ebcb5 | ||
|
|
f8598b010d | ||
|
|
93779bcc4b | ||
|
|
938f5b9dd9 | ||
|
|
3b4d9f49d5 | ||
|
|
171c93af50 | ||
|
|
6f81e40106 | ||
|
|
e19b5cb2ce | ||
|
|
2c69faca58 | ||
|
|
9272151d0a | ||
|
|
d45ebf5a43 | ||
|
|
8074be7644 | ||
|
|
c99ac99a99 | ||
|
|
976e2450ec | ||
|
|
7e4db8fafd | ||
|
|
115a409d92 | ||
|
|
c203ab3d16 | ||
|
|
5dff96496d | ||
|
|
f813935011 | ||
|
|
2be719449f | ||
|
|
2094c870d5 | ||
|
|
4fe93ae8b8 | ||
|
|
fff1103cf4 | ||
|
|
8cede43a45 | ||
|
|
9b1fa3a5af | ||
|
|
409e73c074 | ||
|
|
c893729d62 | ||
|
|
945466968c | ||
|
|
54f080b755 | ||
|
|
bfad14d552 | ||
|
|
2972e1596d | ||
|
|
987d2aae88 | ||
|
|
4707d34fad | ||
|
|
2ffc09d097 | ||
|
|
afa8d6bb8f | ||
|
|
a37ead98e8 | ||
|
|
c73cd8d618 | ||
|
|
800a3aa61e | ||
|
|
ebd815be75 | ||
|
|
ef669acf89 | ||
|
|
ac6426eab1 | ||
|
|
b107b745f2 | ||
|
|
3d851a448f | ||
|
|
ce133f01aa | ||
|
|
492d378537 | ||
|
|
7ece484423 | ||
|
|
be5ad63e21 | ||
|
|
bdac8f8db8 | ||
|
|
bb893e70c5 | ||
|
|
57ec9db532 | ||
|
|
0287481001 | ||
|
|
0167496ecb | ||
|
|
d86cf193a0 | ||
|
|
246cad1108 | ||
|
|
23bf86a8a8 | ||
|
|
6ce4c885b9 | ||
|
|
faf84e483a | ||
|
|
576004c840 | ||
|
|
c93b05c293 | ||
|
|
55c3813fac | ||
|
|
725c6857be | ||
|
|
86767c9ab4 | ||
|
|
46aa631d2b | ||
|
|
7c61a937c9 | ||
|
|
b8d65dcc45 | ||
|
|
b9ab83eaf2 | ||
|
|
8b7b563992 | ||
|
|
b813a878d7 | ||
|
|
54e486c389 | ||
|
|
12d0a3acc1 | ||
|
|
6ad2a13386 | ||
|
|
2a9c401db9 | ||
|
|
ea5a29018f | ||
|
|
c8d0a715e8 | ||
|
|
2cfc6514ab | ||
|
|
1d78bc7206 | ||
|
|
e5577e43f8 | ||
|
|
17c0463906 | ||
|
|
4168772904 | ||
|
|
44f2186749 | ||
|
|
0c918bcc3a | ||
|
|
0a8925dc75 | ||
|
|
a446597597 | ||
|
|
54354a2732 | ||
|
|
d94b8f08ab | ||
|
|
0d8189efeb | ||
|
|
00c886e426 | ||
|
|
551fc35439 | ||
|
|
9ff17c8d9d | ||
|
|
ec37732e99 | ||
|
|
8a414f32a8 | ||
|
|
bac06acb49 | ||
|
|
ae1e3c2a81 | ||
|
|
67940eb0f9 | ||
|
|
007aa8480e | ||
|
|
dedec10c58 | ||
|
|
75219e21be | ||
|
|
10f5964f8e | ||
|
|
a4a64d51c0 | ||
|
|
1014313d88 | ||
|
|
e486bb4c29 | ||
|
|
5c3d9ffb46 | ||
|
|
2e474fd8db | ||
|
|
b2b110ae1f | ||
|
|
68a34e0738 | ||
|
|
38fa575958 | ||
|
|
6cfeefe054 | ||
|
|
8007971a53 | ||
|
|
d66bd30fae | ||
|
|
3fa59b1b12 | ||
|
|
20e7aff393 | ||
|
|
4b7ce87f57 | ||
|
|
2075533468 | ||
|
|
a4ad5c8d11 | ||
|
|
35f2f56757 | ||
|
|
e6f4aa6a2f | ||
|
|
92fc62bb0d | ||
|
|
44b57a59f5 | ||
|
|
97b8e02bf5 | ||
|
|
5df42420cb | ||
|
|
0ede11a1b7 | ||
|
|
7d9c282db9 | ||
|
|
bc0e0813a4 | ||
|
|
f3aebb3001 | ||
|
|
800f966df9 | ||
|
|
e33df4dd8c | ||
|
|
96d9d810fd | ||
|
|
8707a1bc86 | ||
|
|
0c988a5fd4 | ||
|
|
b396ca771d | ||
|
|
a37dfcf961 | ||
|
|
31989740cd | ||
|
|
501191289b | ||
|
|
8971e92d78 | ||
|
|
0c96e79d0d | ||
|
|
0704c0f5e6 | ||
|
|
9cb190ebe7 | ||
|
|
667f84995c | ||
|
|
7a93fae6e4 | ||
|
|
0d6deca15c | ||
|
|
f54d7d46f2 | ||
|
|
8cf00ba5e1 | ||
|
|
ecc9c6bbd9 | ||
|
|
e11199f988 | ||
|
|
e9ed621178 |
@@ -51,8 +51,6 @@ before_build:
|
|||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
- cd "%REPO_DIR%"
|
- cd "%REPO_DIR%"
|
||||||
# scan only as lupdate is prone to hang
|
|
||||||
- lupdate -extensions c,cpp,h,hpp,ui .
|
|
||||||
- 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
|
||||||
|
|
||||||
|
|||||||
2
.github/ISSUE_TEMPLATE.md
vendored
2
.github/ISSUE_TEMPLATE.md
vendored
@@ -3,7 +3,7 @@
|
|||||||
### qBittorrent version and Operating System
|
### qBittorrent version and Operating System
|
||||||
(type here)
|
(type here)
|
||||||
|
|
||||||
### If on linux, libtorrent-rasterbar and Qt version
|
### If on linux, libtorrent and Qt version
|
||||||
(type here)
|
(type here)
|
||||||
|
|
||||||
### What is the problem
|
### What is the problem
|
||||||
|
|||||||
244
.github/workflows/ci.yaml
vendored
244
.github/workflows/ci.yaml
vendored
@@ -1,244 +0,0 @@
|
|||||||
name: GitHub Actions CI
|
|
||||||
|
|
||||||
# Cache is used for all Windows and macOS dependencies (size approx. 1230 * 2 + 1850 = 4310 MiB)
|
|
||||||
# Cache is not used for Ubuntu builds, because it already has all dependencies except
|
|
||||||
# the appropriate libtorrent version, which only takes 3-5 minutes to build from source anyway
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ master ]
|
|
||||||
pull_request:
|
|
||||||
types: [edited, opened, reopened, synchronize]
|
|
||||||
branches: [ master ]
|
|
||||||
|
|
||||||
env:
|
|
||||||
# Qt: 5.15.0
|
|
||||||
# libtorrent: RC_1_2 HEAD, 1.2.10
|
|
||||||
VCPKG_COMMIT: 32eccc18191fbb57b159784a1724d2d00613ae82
|
|
||||||
VCPKG_DEST_MACOS: /Users/runner/qbt_tools/vcpkg
|
|
||||||
VCPKG_DEST_WIN: C:\qbt_tools\vcpkg
|
|
||||||
UBUNTU_LIBTORRENT_VERSION: libtorrent-1.2.10
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
|
|
||||||
ci_ubuntu:
|
|
||||||
name: Ubuntu
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os: [ubuntu-20.04, ubuntu-18.04]
|
|
||||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
|
||||||
fail-fast: false
|
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: checkout repository
|
|
||||||
uses: actions/checkout@v2.3.2
|
|
||||||
|
|
||||||
- name: install all build dependencies except libtorrent from Ubuntu repos
|
|
||||||
run: |
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install \
|
|
||||||
build-essential cmake git ninja-build pkg-config \
|
|
||||||
libssl-dev libgeoip-dev zlib1g-dev \
|
|
||||||
libboost-dev libboost-chrono-dev libboost-random-dev libboost-system-dev \
|
|
||||||
libqt5svg5-dev qtbase5-dev qttools5-dev
|
|
||||||
|
|
||||||
- name: install libtorrent from source
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/arvidn/libtorrent && cd libtorrent
|
|
||||||
git checkout ${{ env.UBUNTU_LIBTORRENT_VERSION }}
|
|
||||||
cmake -B cmake-build-dir -G "Ninja" \
|
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
||||||
-Ddeprecated-functions=OFF \
|
|
||||||
--graphviz=cmake-build-dir/target_graph.dot
|
|
||||||
cmake --build cmake-build-dir
|
|
||||||
sudo cmake --install cmake-build-dir --prefix /usr/local
|
|
||||||
|
|
||||||
- name: build qBittorrent
|
|
||||||
run: |
|
|
||||||
cmake -B build -G "Ninja" \
|
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
||||||
-D${{ matrix.qbt_gui }} \
|
|
||||||
-DVERBOSE_CONFIGURE=ON \
|
|
||||||
--graphviz=build/target_graph.dot
|
|
||||||
cmake --build build
|
|
||||||
|
|
||||||
- name: upload artifact as zip
|
|
||||||
uses: actions/upload-artifact@v2.1.3
|
|
||||||
with:
|
|
||||||
name: qBittorrent-CI-Ubuntu_${{ matrix.os }}-${{ matrix.qbt_gui }}
|
|
||||||
path: |
|
|
||||||
build/compile_commands.json
|
|
||||||
build/target_graph.dot
|
|
||||||
build/qbittorrent
|
|
||||||
build/qbittorrent-nox
|
|
||||||
libtorrent/cmake-build-dir/compile_commands.json
|
|
||||||
libtorrent/cmake-build-dir/target_graph.dot
|
|
||||||
|
|
||||||
ci_windows:
|
|
||||||
name: Windows + vcpkg
|
|
||||||
|
|
||||||
runs-on: windows-2019
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: pwsh
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: checkout repository
|
|
||||||
uses: actions/checkout@v2.3.2
|
|
||||||
|
|
||||||
# - ninja is needed for building qBittorrent (because it's preferrable, not a hard requirement)
|
|
||||||
- name: install additional required packages with chocolatey
|
|
||||||
run: |
|
|
||||||
choco install ninja
|
|
||||||
|
|
||||||
- name: setup vcpkg (cached, if possible)
|
|
||||||
uses: lukka/run-vcpkg@v3.3
|
|
||||||
with:
|
|
||||||
vcpkgDirectory: ${{ env.VCPKG_DEST_WIN }}
|
|
||||||
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
|
|
||||||
setupOnly: true
|
|
||||||
|
|
||||||
# Tell vcpkg to only build Release variants of the dependencies
|
|
||||||
- name: configure vcpkg triplet overlay for release builds only
|
|
||||||
run: |
|
|
||||||
New-Item -Path ${{ github.workspace }} -Name "triplets_overlay" -ItemType Directory
|
|
||||||
Copy-Item ${{ env.RUNVCPKG_VCPKG_ROOT }}/triplets/x64-windows-static.cmake `
|
|
||||||
${{ github.workspace }}/triplets_overlay/x64-windows-static-release.cmake
|
|
||||||
Add-Content ${{ github.workspace }}/triplets_overlay/x64-windows-static-release.cmake `
|
|
||||||
-Value "set(VCPKG_BUILD_TYPE release)"
|
|
||||||
|
|
||||||
# clear buildtrees after each package installation to reduce disk space requirements
|
|
||||||
- name: install dependencies via vcpkg
|
|
||||||
run: |
|
|
||||||
$packages = `
|
|
||||||
"boost-circular-buffer:x64-windows-static-release",
|
|
||||||
"libtorrent:x64-windows-static-release",
|
|
||||||
"qt5-base:x64-windows-static-release",
|
|
||||||
"qt5-svg:x64-windows-static-release",
|
|
||||||
"qt5-tools:x64-windows-static-release",
|
|
||||||
"qt5-winextras:x64-windows-static-release"
|
|
||||||
foreach($package in $packages)
|
|
||||||
{
|
|
||||||
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg.exe install $package `
|
|
||||||
--overlay-triplets=${{ github.workspace }}/triplets_overlay `
|
|
||||||
--clean-after-build
|
|
||||||
}
|
|
||||||
|
|
||||||
# NOTE: this is necessary to correctly find and use cl.exe with the Ninja generator for now
|
|
||||||
- name: setup devcmd
|
|
||||||
uses: ilammy/msvc-dev-cmd@v1.3.0
|
|
||||||
|
|
||||||
- name: build qBittorrent
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cmake -B build -G "Ninja" ^
|
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo ^
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_DEST_WIN }}\scripts\buildsystems\vcpkg.cmake ^
|
|
||||||
-DVCPKG_TARGET_TRIPLET=x64-windows-static-release ^
|
|
||||||
-DVERBOSE_CONFIGURE=ON ^
|
|
||||||
-DMSVC_RUNTIME_DYNAMIC=OFF ^
|
|
||||||
--graphviz=build\target_graph.dot
|
|
||||||
cmake --build build
|
|
||||||
|
|
||||||
- name: upload artifact as zip
|
|
||||||
uses: actions/upload-artifact@v2.1.3
|
|
||||||
with:
|
|
||||||
name: qBittorrent-CI-Windows_x64-static-release
|
|
||||||
path: |
|
|
||||||
build/compile_commands.json
|
|
||||||
build/target_graph.dot
|
|
||||||
build/qbittorrent.exe
|
|
||||||
build/qbittorrent.pdb
|
|
||||||
dist/windows/qt.conf
|
|
||||||
|
|
||||||
ci_macos:
|
|
||||||
name: macOS + vcpkg
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
|
||||||
fail-fast: false
|
|
||||||
|
|
||||||
runs-on: macos-10.15
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: pwsh
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: checkout repository
|
|
||||||
uses: actions/checkout@v2.3.2
|
|
||||||
|
|
||||||
# - ninja is needed for building qBittorrent (because it's preferrable, not a hard requirement)
|
|
||||||
# - pkg-config is needed for some vcpkg installations
|
|
||||||
- name: install additional required packages with homebrew
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
brew install ninja pkg-config
|
|
||||||
|
|
||||||
- name: setup vcpkg (cached, if possible)
|
|
||||||
uses: lukka/run-vcpkg@v3.3
|
|
||||||
with:
|
|
||||||
vcpkgDirectory: ${{ env.VCPKG_DEST_MACOS }}
|
|
||||||
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
|
|
||||||
setupOnly: true
|
|
||||||
|
|
||||||
- name: configure vcpkg triplet overlay for release builds only
|
|
||||||
run: |
|
|
||||||
New-Item -Path ${{ github.workspace }} -Name "triplets_overlay" -ItemType Directory
|
|
||||||
Copy-Item ${{ env.RUNVCPKG_VCPKG_ROOT }}/triplets/x64-osx.cmake `
|
|
||||||
${{ github.workspace }}/triplets_overlay/x64-osx-release.cmake
|
|
||||||
Add-Content ${{ github.workspace }}/triplets_overlay/x64-osx-release.cmake `
|
|
||||||
-Value "set(VCPKG_BUILD_TYPE release)"
|
|
||||||
|
|
||||||
# NOTE: Avoids a libtorrent ABI issue. See https://github.com/arvidn/libtorrent/issues/4965
|
|
||||||
- name: force AppleClang to compile libtorrent with C++14
|
|
||||||
run: |
|
|
||||||
(Get-Content -path ${{ env.RUNVCPKG_VCPKG_ROOT }}/ports/libtorrent/portfile.cmake).Replace( `
|
|
||||||
'${FEATURE_OPTIONS}', '${FEATURE_OPTIONS} -DCMAKE_CXX_STANDARD=14') `
|
|
||||||
| Set-Content -Path ${{ env.RUNVCPKG_VCPKG_ROOT }}/ports/libtorrent/portfile.cmake
|
|
||||||
|
|
||||||
- name: install dependencies via vcpkg
|
|
||||||
run: |
|
|
||||||
$packages = `
|
|
||||||
"boost-circular-buffer:x64-osx-release",
|
|
||||||
"libtorrent:x64-osx-release",
|
|
||||||
"qt5-base:x64-osx-release",
|
|
||||||
"qt5-svg:x64-osx-release",
|
|
||||||
"qt5-tools:x64-osx-release",
|
|
||||||
"qt5-macextras:x64-osx-release"
|
|
||||||
foreach($package in $packages)
|
|
||||||
{
|
|
||||||
${{ env.RUNVCPKG_VCPKG_ROOT }}/vcpkg install $package `
|
|
||||||
--overlay-triplets=${{ github.workspace }}/triplets_overlay `
|
|
||||||
--clean-after-build
|
|
||||||
}
|
|
||||||
|
|
||||||
- name: build qBittorrent
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
cmake -B build -G "Ninja" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_DEST_MACOS }}/scripts/buildsystems/vcpkg.cmake \
|
|
||||||
-DVCPKG_TARGET_TRIPLET=x64-osx-release \
|
|
||||||
-D${{ matrix.qbt_gui }} \
|
|
||||||
-DVERBOSE_CONFIGURE=ON \
|
|
||||||
--graphviz=build/target_graph.dot
|
|
||||||
cmake --build build
|
|
||||||
|
|
||||||
- name: upload artifact as zip
|
|
||||||
uses: actions/upload-artifact@v2.1.3
|
|
||||||
with:
|
|
||||||
name: qBittorrent-CI-macOS_x64-static-release_${{ matrix.qbt_gui }}
|
|
||||||
path: |
|
|
||||||
build/compile_commands.json
|
|
||||||
build/target_graph.dot
|
|
||||||
build/qbittorrent.app
|
|
||||||
build/qbittorrent-nox.app
|
|
||||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -4,7 +4,6 @@ src/qbittorrent
|
|||||||
src/qbittorrent-nox
|
src/qbittorrent-nox
|
||||||
src/release
|
src/release
|
||||||
src/debug
|
src/debug
|
||||||
CMakeLists.txt.user*
|
|
||||||
qbittorrent.pro.user*
|
qbittorrent.pro.user*
|
||||||
conf.pri
|
conf.pri
|
||||||
Makefile*
|
Makefile*
|
||||||
@@ -23,7 +22,6 @@ qrc_*.cpp
|
|||||||
ui_*.h
|
ui_*.h
|
||||||
*.moc
|
*.moc
|
||||||
src/lang/qbittorrent_*.qm
|
src/lang/qbittorrent_*.qm
|
||||||
src/webui/www/translations/webui_*.qm
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.qmake.stash
|
.qmake.stash
|
||||||
src/qbittorrent.app
|
src/qbittorrent.app
|
||||||
@@ -36,10 +34,3 @@ config.status
|
|||||||
src/icons/qbt-theme/build-icons/node_modules/
|
src/icons/qbt-theme/build-icons/node_modules/
|
||||||
src/icons/skin/build-icons/node_modules/
|
src/icons/skin/build-icons/node_modules/
|
||||||
src/icons/skin/build-icons/icons/*.png
|
src/icons/skin/build-icons/icons/*.png
|
||||||
|
|
||||||
# CMake build directory
|
|
||||||
build/
|
|
||||||
|
|
||||||
# Web UI tools
|
|
||||||
node_modules
|
|
||||||
package-lock.json
|
|
||||||
|
|||||||
201
.travis.yml
201
.travis.yml
File diff suppressed because it is too large
Load Diff
12
.tx/config
12
.tx/config
@@ -10,18 +10,10 @@ type = QT
|
|||||||
minimum_perc = 23
|
minimum_perc = 23
|
||||||
mode = developer
|
mode = developer
|
||||||
|
|
||||||
|
|
||||||
[qbittorrent.qbittorrentdesktop_master]
|
[qbittorrent.qbittorrentdesktop_master]
|
||||||
source_file = dist/unix/org.qbittorrent.qBittorrent.desktop
|
source_file = dist/unix/qbittorrent.desktop
|
||||||
source_lang = en
|
source_lang = en
|
||||||
type = DESKTOP
|
type = DESKTOP
|
||||||
minimum_perc = 23
|
minimum_perc = 23
|
||||||
mode = developer
|
mode = developer
|
||||||
|
|
||||||
[qbittorrent.qbittorrent_webui]
|
|
||||||
file_filter = src/webui/www/translations/webui_<lang>.ts
|
|
||||||
lang_map = pt: pt_PT
|
|
||||||
source_file = src/webui/www/translations/webui_en.ts
|
|
||||||
source_lang = en
|
|
||||||
type = QT
|
|
||||||
minimum_perc = 23
|
|
||||||
mode = developer
|
|
||||||
|
|||||||
2
AUTHORS
2
AUTHORS
@@ -62,7 +62,7 @@ Images Authors:
|
|||||||
copyright: Mateusz Tobola <tobejodok@qbittorrent.org>
|
copyright: Mateusz Tobola <tobejodok@qbittorrent.org>
|
||||||
license: GPLv2
|
license: GPLv2
|
||||||
|
|
||||||
* file: src/icons/tabs.gif
|
* file: src/icons/skin/tabs.gif
|
||||||
copyright: Greg Houston <gregory.houston@gmail.com>
|
copyright: Greg Houston <gregory.houston@gmail.com>
|
||||||
license: MIT
|
license: MIT
|
||||||
|
|
||||||
|
|||||||
@@ -1,51 +1,54 @@
|
|||||||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR) # Policies <= CMP0097 default to NEW
|
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
|
||||||
|
|
||||||
|
message(WARNING "No official support for cmake build system. If it is broken, please submit patches!")
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
|
||||||
|
include(FunctionReadVersion)
|
||||||
|
|
||||||
project(qBittorrent
|
read_version("${CMAKE_CURRENT_SOURCE_DIR}/version.pri" VER_MAJOR VER_MINOR VER_BUGFIX VER_BUILD VER_STATUS)
|
||||||
VERSION 4.3.0.1
|
# message(STATUS "Project version is: ${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}.${VER_BUILD} (${VER_STATUS})")
|
||||||
DESCRIPTION "The qBittorrent BitTorrent client"
|
|
||||||
HOMEPAGE_URL "https://www.qbittorrent.org/"
|
|
||||||
LANGUAGES CXX
|
|
||||||
)
|
|
||||||
|
|
||||||
# use CONFIG mode first in find_package
|
project(qBittorrent VERSION ${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}.${VER_BUILD})
|
||||||
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
|
|
||||||
# version requirements
|
|
||||||
set(requiredBoostVersion 1.40)
|
|
||||||
set(requiredQtVersion 5.9.0)
|
|
||||||
set(requiredOpenSSLVersion 1.0)
|
|
||||||
set(requiredLibtorrentVersion 1.2.0)
|
|
||||||
set(requiredZlibVersion 1.2.5.2)
|
|
||||||
|
|
||||||
# features (some are platform-specific)
|
set(PROJECT_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}")
|
||||||
include(FeatureSummary)
|
|
||||||
include(FeatureOptionsSetup)
|
if (NOT VER_BUILD EQUAL 0)
|
||||||
feature_option(STACKTRACE "Enable stacktraces" ON)
|
set(PROJECT_VERSION "${PROJECT_VERSION}.${VER_BUILD}")
|
||||||
feature_option(GUI "Build GUI application" ON)
|
|
||||||
feature_option(WEBUI "Enables built-in HTTP server for headless use" ON)
|
|
||||||
feature_option(VERBOSE_CONFIGURE "Show information about PACKAGES_FOUND and PACKAGES_NOT_FOUND in the configure output (only useful for debugging the CMake build scripts)" OFF)
|
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
||||||
feature_option_dependent(DBUS
|
|
||||||
"Enables support for notifications and power-management features on Linux via D-Bus"
|
|
||||||
ON "GUI" OFF
|
|
||||||
)
|
|
||||||
feature_option_dependent(SYSTEMD
|
|
||||||
"Install systemd service file to a directory manually overridable with Systemd_SERVICES_INSTALL_DIR"
|
|
||||||
OFF "NOT GUI" OFF
|
|
||||||
)
|
|
||||||
elseif (MSVC)
|
|
||||||
feature_option(MSVC_RUNTIME_DYNAMIC "Use MSVC dynamic runtime library (-MD) instead of static (-MT)" ON)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(QBT_VER_STATUS "alpha1" CACHE STRING "Project status version. Should be empty for release builds.")
|
set(PROJECT_VERSION "${PROJECT_VERSION}${VER_STATUS}")
|
||||||
|
|
||||||
|
add_definitions(-DQBT_VERSION_MAJOR=${VER_MAJOR})
|
||||||
|
add_definitions(-DQBT_VERSION_MINOR=${VER_MINOR})
|
||||||
|
add_definitions(-DQBT_VERSION_BUGFIX=${VER_BUGFIX})
|
||||||
|
add_definitions(-DQBT_VERSION_BUILD=${VER_BUILD})
|
||||||
|
|
||||||
|
add_definitions(-DQBT_VERSION="v${PROJECT_VERSION}")
|
||||||
|
add_definitions(-DQBT_VERSION_2="${PROJECT_VERSION}")
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
include(FeatureSummary)
|
||||||
|
|
||||||
|
# version requirements
|
||||||
|
set(requiredBoostVersion 1.35)
|
||||||
|
set(requiredQtVersion 5.5.1)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
include(winconf)
|
||||||
|
endif(WIN32)
|
||||||
|
|
||||||
|
|
||||||
|
# we need options here, at the top level, because they are used not only in "src" subdir, but in the "dist" dir too
|
||||||
|
include(CompileFeature)
|
||||||
|
|
||||||
|
optional_compile_definitions(COUNTRIES_RESOLUTION FEATURE DESCRIPTION "Enable resolving peers IP addresses to countries"
|
||||||
|
DEFAULT ON DISABLED DISABLE_COUNTRIES_RESOLUTION)
|
||||||
|
optional_compile_definitions(STACKTRACE FEATURE DESCRIPTION "Enable stacktraces"
|
||||||
|
DEFAULT ON ENABLED STACKTRACE)
|
||||||
|
optional_compile_definitions(WEBUI FEATURE DESCRIPTION "Enables built-in HTTP server for headless use"
|
||||||
|
DEFAULT ON DISABLED DISABLE_WEBUI)
|
||||||
|
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
add_subdirectory(dist)
|
add_subdirectory(dist)
|
||||||
|
|
||||||
if (VERBOSE_CONFIGURE)
|
feature_summary(DESCRIPTION "\nConfiguration results:" WHAT ALL)
|
||||||
feature_summary(WHAT ALL)
|
|
||||||
else()
|
|
||||||
feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
|
|
||||||
endif()
|
|
||||||
|
|||||||
@@ -306,7 +306,7 @@ Example:
|
|||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
|
|
||||||
#ifdef Q_OS_MACOS // conditional
|
#ifdef Q_OS_MAC // conditional
|
||||||
#include <QFont>
|
#include <QFont>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ These are unstable/unsupported platforms, and in all likelihood, whatever the is
|
|||||||
* **For performance-related issues**, include as much profiling data as you can (resource usage graphs, etc).
|
* **For performance-related issues**, include as much profiling data as you can (resource usage graphs, etc).
|
||||||
|
|
||||||
* Paste the **qBittorrent log** (or put the contents of the log in a gist and provide a link to the gist). The log can be viewed in the GUI (View -> Log -> tick all boxes). If you can't do that, the file is at:
|
* Paste the **qBittorrent log** (or put the contents of the log in a gist and provide a link to the gist). The log can be viewed in the GUI (View -> Log -> tick all boxes). If you can't do that, the file is at:
|
||||||
- Linux: `~/.local/share/qBittorrent/logs/qBittorrent.log`
|
- Linux: `~/.local/share/data/qBittorrent/logs/qBittorrent.log`
|
||||||
- Windows: `%LocalAppData%\qBittorrent\logs`
|
- Windows: `%LocalAppData%\qBittorrent\logs`
|
||||||
- macOS: `~/Library/Application Support/qBittorrent/qBittorrent.log`
|
- macOS: `~/Library/Application Support/qBittorrent/qBittorrent.log`
|
||||||
|
|
||||||
|
|||||||
48
INSTALL
48
INSTALL
@@ -1,26 +1,7 @@
|
|||||||
qBittorrent - A BitTorrent client in C++ / Qt
|
qBittorrent - A BitTorrent client in C++ / Qt
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
1) Install these dependencies:
|
1) Compile and install qBittorrent with Qt graphical interface
|
||||||
|
|
||||||
- Boost >= 1.40
|
|
||||||
|
|
||||||
- libtorrent-rasterbar >= 1.2 (by Arvid Norberg)
|
|
||||||
* https://www.libtorrent.org/
|
|
||||||
* Be careful: another library (the one used by rTorrent) uses a similar name
|
|
||||||
|
|
||||||
- OpenSSL >= 1.0
|
|
||||||
|
|
||||||
- Qt >= 5.9.0
|
|
||||||
|
|
||||||
- zlib >= 1.2.5.2
|
|
||||||
|
|
||||||
- pkg-config (compile-time only)
|
|
||||||
|
|
||||||
- Python >= 3.5.0 (optional, runtime only)
|
|
||||||
* Required by the internal search engine
|
|
||||||
|
|
||||||
2a) Compile and install qBittorrent with Qt graphical interface
|
|
||||||
|
|
||||||
$ ./configure
|
$ ./configure
|
||||||
$ make && make install
|
$ make && make install
|
||||||
@@ -28,7 +9,21 @@ qBittorrent - A BitTorrent client in C++ / Qt
|
|||||||
|
|
||||||
will install and execute qBittorrent.
|
will install and execute qBittorrent.
|
||||||
|
|
||||||
2b) Compile and install qBittorrent without Qt graphical interface
|
Dependencies:
|
||||||
|
- Qt >= 5.5.1
|
||||||
|
|
||||||
|
- pkg-config
|
||||||
|
|
||||||
|
- libtorrent-rasterbar >= 1.0.6 (by Arvid Norberg)
|
||||||
|
* https://www.libtorrent.org/
|
||||||
|
* Be careful: another library (the one used by rTorrent) uses a similar name
|
||||||
|
|
||||||
|
- Boost >= 1.35
|
||||||
|
|
||||||
|
- Python >= 2.7.9 / 3.3.0 (optional, runtime only)
|
||||||
|
* Required by the internal search engine
|
||||||
|
|
||||||
|
2) Compile and install qBittorrent without Qt graphical interface
|
||||||
|
|
||||||
$ ./configure --disable-gui
|
$ ./configure --disable-gui
|
||||||
$ make && make install
|
$ make && make install
|
||||||
@@ -36,6 +31,17 @@ qBittorrent - A BitTorrent client in C++ / Qt
|
|||||||
|
|
||||||
will install and execute qBittorrent.
|
will install and execute qBittorrent.
|
||||||
|
|
||||||
|
Dependencies:
|
||||||
|
- Qt >= 5.5.1
|
||||||
|
|
||||||
|
- pkg-config
|
||||||
|
|
||||||
|
- libtorrent-rasterbar >= 1.0.6 (by Arvid Norberg)
|
||||||
|
* https://www.libtorrent.org/
|
||||||
|
* Be careful: another library (the one used by rTorrent) uses a similar name
|
||||||
|
|
||||||
|
- Boost >= 1.35
|
||||||
|
|
||||||
DOCUMENTATION:
|
DOCUMENTATION:
|
||||||
Please note that there is a "Compilation" section at http://wiki.qbittorrent.org.
|
Please note that there is a "Compilation" section at http://wiki.qbittorrent.org.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ qBittorrent - A BitTorrent client in Qt
|
|||||||
|
|
||||||
[](https://travis-ci.org/qbittorrent/qBittorrent)
|
[](https://travis-ci.org/qbittorrent/qBittorrent)
|
||||||
[](https://ci.appveyor.com/project/qbittorrent/qBittorrent)
|
[](https://ci.appveyor.com/project/qbittorrent/qBittorrent)
|
||||||
[](https://github.com/qbittorrent/qBittorrent/actions)
|
|
||||||
[](https://scan.coverity.com/projects/5494)
|
[](https://scan.coverity.com/projects/5494)
|
||||||
********************************
|
********************************
|
||||||
### Description:
|
### Description:
|
||||||
@@ -14,7 +13,8 @@ It aims to be a good alternative to all other bittorrent clients
|
|||||||
out there. qBittorrent is fast, stable and provides unicode
|
out there. qBittorrent is fast, stable and provides unicode
|
||||||
support as well as many features.
|
support as well as many features.
|
||||||
|
|
||||||
The free [IP to Country Lite database](https://db-ip.com/db/download/ip-to-country-lite) by [DB-IP](https://db-ip.com/) is used for resolving the countries of peers. The database is licensed under the [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/).
|
This product includes GeoLite data created by MaxMind, available from
|
||||||
|
https://www.maxmind.com/
|
||||||
|
|
||||||
### Installation:
|
### Installation:
|
||||||
For installation, follow the instructions from INSTALL file, but simple:
|
For installation, follow the instructions from INSTALL file, but simple:
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Wrapper for compilers which do not understand '-c -o'.
|
# Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
|
||||||
scriptversion=2018-03-07.03; # UTC
|
scriptversion=2012-10-14.11; # UTC
|
||||||
|
|
||||||
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
|
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
||||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
@@ -17,7 +17,7 @@ scriptversion=2018-03-07.03; # UTC
|
|||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
# As a special exception to the GNU General Public License, if you
|
||||||
# distribute this file as part of a program that contains a
|
# distribute this file as part of a program that contains a
|
||||||
@@ -255,8 +255,7 @@ EOF
|
|||||||
echo "compile $scriptversion"
|
echo "compile $scriptversion"
|
||||||
exit $?
|
exit $?
|
||||||
;;
|
;;
|
||||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
|
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
||||||
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
|
|
||||||
func_cl_wrapper "$@" # Doesn't return...
|
func_cl_wrapper "$@" # Doesn't return...
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -340,9 +339,9 @@ exit $ret
|
|||||||
# Local Variables:
|
# Local Variables:
|
||||||
# mode: shell-script
|
# mode: shell-script
|
||||||
# sh-indentation: 2
|
# sh-indentation: 2
|
||||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
# time-stamp-start: "scriptversion="
|
# time-stamp-start: "scriptversion="
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
# time-stamp-time-zone: "UTC0"
|
# time-stamp-time-zone: "UTC"
|
||||||
# time-stamp-end: "; # UTC"
|
# time-stamp-end: "; # UTC"
|
||||||
# End:
|
# End:
|
||||||
|
|||||||
966
build-aux/config.guess
vendored
966
build-aux/config.guess
vendored
File diff suppressed because it is too large
Load Diff
2702
build-aux/config.sub
vendored
2702
build-aux/config.sub
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# install - install a program, script, or datafile
|
# install - install a program, script, or datafile
|
||||||
|
|
||||||
scriptversion=2018-03-11.20; # UTC
|
scriptversion=2013-12-25.23; # UTC
|
||||||
|
|
||||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||||
@@ -271,18 +271,15 @@ do
|
|||||||
fi
|
fi
|
||||||
dst=$dst_arg
|
dst=$dst_arg
|
||||||
|
|
||||||
# If destination is a directory, append the input filename.
|
# If destination is a directory, append the input filename; won't work
|
||||||
|
# if double slashes aren't ignored.
|
||||||
if test -d "$dst"; then
|
if test -d "$dst"; then
|
||||||
if test "$is_target_a_directory" = never; then
|
if test "$is_target_a_directory" = never; then
|
||||||
echo "$0: $dst_arg: Is a directory" >&2
|
echo "$0: $dst_arg: Is a directory" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
dstdir=$dst
|
dstdir=$dst
|
||||||
dstbase=`basename "$src"`
|
dst=$dstdir/`basename "$src"`
|
||||||
case $dst in
|
|
||||||
*/) dst=$dst$dstbase;;
|
|
||||||
*) dst=$dst/$dstbase;;
|
|
||||||
esac
|
|
||||||
dstdir_status=0
|
dstdir_status=0
|
||||||
else
|
else
|
||||||
dstdir=`dirname "$dst"`
|
dstdir=`dirname "$dst"`
|
||||||
@@ -291,11 +288,6 @@ do
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case $dstdir in
|
|
||||||
*/) dstdirslash=$dstdir;;
|
|
||||||
*) dstdirslash=$dstdir/;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
obsolete_mkdir_used=false
|
obsolete_mkdir_used=false
|
||||||
|
|
||||||
if test $dstdir_status != 0; then
|
if test $dstdir_status != 0; then
|
||||||
@@ -332,43 +324,34 @@ do
|
|||||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
# Note that $RANDOM variable is not portable (e.g. dash); Use it
|
|
||||||
# here however when possible just to lower collision chance.
|
|
||||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||||
|
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||||
|
|
||||||
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
|
|
||||||
|
|
||||||
# Because "mkdir -p" follows existing symlinks and we likely work
|
|
||||||
# directly in world-writeable /tmp, make sure that the '$tmpdir'
|
|
||||||
# directory is successfully created first before we actually test
|
|
||||||
# 'mkdir -p' feature.
|
|
||||||
if (umask $mkdir_umask &&
|
if (umask $mkdir_umask &&
|
||||||
$mkdirprog $mkdir_mode "$tmpdir" &&
|
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
|
||||||
then
|
then
|
||||||
if test -z "$dir_arg" || {
|
if test -z "$dir_arg" || {
|
||||||
# Check for POSIX incompatibilities with -m.
|
# Check for POSIX incompatibilities with -m.
|
||||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||||
# other-writable bit of parent directory when it shouldn't.
|
# other-writable bit of parent directory when it shouldn't.
|
||||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||||
test_tmpdir="$tmpdir/a"
|
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||||
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
|
|
||||||
case $ls_ld_tmpdir in
|
case $ls_ld_tmpdir in
|
||||||
d????-?r-*) different_mode=700;;
|
d????-?r-*) different_mode=700;;
|
||||||
d????-?--*) different_mode=755;;
|
d????-?--*) different_mode=755;;
|
||||||
*) false;;
|
*) false;;
|
||||||
esac &&
|
esac &&
|
||||||
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
|
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||||
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
|
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
then posix_mkdir=:
|
then posix_mkdir=:
|
||||||
fi
|
fi
|
||||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
|
rmdir "$tmpdir/d" "$tmpdir"
|
||||||
else
|
else
|
||||||
# Remove any dirs left behind by ancient mkdir implementations.
|
# Remove any dirs left behind by ancient mkdir implementations.
|
||||||
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
|
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||||
fi
|
fi
|
||||||
trap '' 0;;
|
trap '' 0;;
|
||||||
esac;;
|
esac;;
|
||||||
@@ -444,8 +427,8 @@ do
|
|||||||
else
|
else
|
||||||
|
|
||||||
# Make a couple of temp file names in the proper directory.
|
# Make a couple of temp file names in the proper directory.
|
||||||
dsttmp=${dstdirslash}_inst.$$_
|
dsttmp=$dstdir/_inst.$$_
|
||||||
rmtmp=${dstdirslash}_rm.$$_
|
rmtmp=$dstdir/_rm.$$_
|
||||||
|
|
||||||
# Trap to clean up those temp files at exit.
|
# Trap to clean up those temp files at exit.
|
||||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||||
@@ -510,9 +493,9 @@ do
|
|||||||
done
|
done
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
# time-stamp-start: "scriptversion="
|
# time-stamp-start: "scriptversion="
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
# time-stamp-time-zone: "UTC0"
|
# time-stamp-time-zone: "UTC"
|
||||||
# time-stamp-end: "; # UTC"
|
# time-stamp-end: "; # UTC"
|
||||||
# End:
|
# End:
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Common wrapper for a few potentially missing GNU programs.
|
# Common wrapper for a few potentially missing GNU programs.
|
||||||
|
|
||||||
scriptversion=2018-03-07.03; # UTC
|
scriptversion=2013-10-28.13; # UTC
|
||||||
|
|
||||||
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||||
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
@@ -17,7 +17,7 @@ scriptversion=2018-03-07.03; # UTC
|
|||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
# As a special exception to the GNU General Public License, if you
|
||||||
# distribute this file as part of a program that contains a
|
# distribute this file as part of a program that contains a
|
||||||
@@ -101,9 +101,9 @@ else
|
|||||||
exit $st
|
exit $st
|
||||||
fi
|
fi
|
||||||
|
|
||||||
perl_URL=https://www.perl.org/
|
perl_URL=http://www.perl.org/
|
||||||
flex_URL=https://github.com/westes/flex
|
flex_URL=http://flex.sourceforge.net/
|
||||||
gnu_software_URL=https://www.gnu.org/software
|
gnu_software_URL=http://www.gnu.org/software
|
||||||
|
|
||||||
program_details ()
|
program_details ()
|
||||||
{
|
{
|
||||||
@@ -207,9 +207,9 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \
|
|||||||
exit $st
|
exit $st
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
# time-stamp-start: "scriptversion="
|
# time-stamp-start: "scriptversion="
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
# time-stamp-time-zone: "UTC0"
|
# time-stamp-time-zone: "UTC"
|
||||||
# time-stamp-end: "; # UTC"
|
# time-stamp-end: "; # UTC"
|
||||||
# End:
|
# End:
|
||||||
|
|||||||
22
cmake/Modules/CompileFeature.cmake
Normal file
22
cmake/Modules/CompileFeature.cmake
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Helper function for coupling add_feature_info(), option(), and add_definitions()
|
||||||
|
|
||||||
|
function(optional_compile_definitions _name)
|
||||||
|
set(options FEATURE)
|
||||||
|
set(oneValueArgs DESCRIPTION DEFAULT)
|
||||||
|
set(multiValueArgs ENABLED DISABLED)
|
||||||
|
cmake_parse_arguments(OCD "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
|
option(${_name} "${OCD_DESCRIPTION}" ${OCD_DEFAULT})
|
||||||
|
if (${${_name}})
|
||||||
|
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY COMPILE_DEFINITIONS ${OCD_ENABLED})
|
||||||
|
else()
|
||||||
|
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY COMPILE_DEFINITIONS ${OCD_DISABLED})
|
||||||
|
endif()
|
||||||
|
if(${OCD_FEATURE})
|
||||||
|
add_feature_info(${_name} ${_name} "${OCD_DESCRIPTION}")
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
macro(feature_option _name _description _default)
|
||||||
|
option(${_name} "${_description}" ${_default})
|
||||||
|
add_feature_info(${_name} ${_name} "${_description}")
|
||||||
|
endmacro()
|
||||||
355
cmake/Modules/DeployQt5.cmake
Normal file
355
cmake/Modules/DeployQt5.cmake
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,14 +0,0 @@
|
|||||||
# Helper functions for coupling add_feature_info() or CMAKE_DEPENDENT_OPTION() and option()
|
|
||||||
|
|
||||||
function(feature_option _name _description _default)
|
|
||||||
string(CONCAT _desc "${_description} (default: ${_default})")
|
|
||||||
option("${_name}" "${_desc}" "${_default}")
|
|
||||||
add_feature_info("${_name}" "${_name}" "${_desc}")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
include(CMakeDependentOption)
|
|
||||||
function(feature_option_dependent _name _description _default_opt _dependency _default_dep_not_sat)
|
|
||||||
string(CONCAT _desc "${_description} (default: ${_default_opt}; depends on condition: ${_dependency})")
|
|
||||||
CMAKE_DEPENDENT_OPTION("${_name}" "${_desc}" "${_default_opt}" "${_dependency}" "${_default_dep_not_sat}")
|
|
||||||
add_feature_info("${_name}" "${_name}" "${_desc}")
|
|
||||||
endfunction()
|
|
||||||
128
cmake/Modules/FindLibtorrentRasterbar.cmake
Normal file
128
cmake/Modules/FindLibtorrentRasterbar.cmake
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
# - Try to find libtorrent-rasterbar
|
||||||
|
#
|
||||||
|
# If not using pkg-config, you can pre-set LibtorrentRasterbar_CUSTOM_DEFINITIONS
|
||||||
|
# for definitions unrelated to Boost's separate compilation (which are already
|
||||||
|
# decided by the LibtorrentRasterbar_USE_STATIC_LIBS variable).
|
||||||
|
#
|
||||||
|
# Once done this will define
|
||||||
|
# LibtorrentRasterbar_FOUND - System has libtorrent-rasterbar
|
||||||
|
# LibtorrentRasterbar_INCLUDE_DIRS - The libtorrent-rasterbar include directories
|
||||||
|
# LibtorrentRasterbar_LIBRARIES - The libraries needed to use libtorrent-rasterbar
|
||||||
|
# LibtorrentRasterbar_DEFINITIONS - Compiler switches required for using libtorrent-rasterbar
|
||||||
|
# LibtorrentRasterbar_OPENSSL_ENABLED - libtorrent-rasterbar uses and links against OpenSSL
|
||||||
|
|
||||||
|
find_package(Threads REQUIRED)
|
||||||
|
find_package(PkgConfig QUIET)
|
||||||
|
|
||||||
|
macro(_detect_boost_components _outComponets librariesList)
|
||||||
|
string(REGEX MATCHALL "boost_[a-z_]+[-a-z]*" _boost_libraries "${librariesList}")
|
||||||
|
string(REGEX REPLACE "boost_([a-z_]+)[-a-z]*" "\\1" ${_outComponets} "${_boost_libraries}")
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
if(PKG_CONFIG_FOUND)
|
||||||
|
pkg_check_modules(PC_LIBTORRENT_RASTERBAR QUIET libtorrent-rasterbar)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(LibtorrentRasterbar_USE_STATIC_LIBS)
|
||||||
|
set(LibtorrentRasterbar_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||||
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PC_LIBTORRENT_RASTERBAR_FOUND)
|
||||||
|
set(LibtorrentRasterbar_DEFINITIONS ${PC_LIBTORRENT_RASTERBAR_CFLAGS})
|
||||||
|
else()
|
||||||
|
if(LibtorrentRasterbar_CUSTOM_DEFINITIONS)
|
||||||
|
set(LibtorrentRasterbar_DEFINITIONS ${LibtorrentRasterbar_CUSTOM_DEFINITIONS})
|
||||||
|
else()
|
||||||
|
# Without pkg-config, we can't possibly figure out the correct build flags.
|
||||||
|
# libtorrent is very picky about those. Let's take a set of defaults and
|
||||||
|
# hope that they apply. If not, you the user are on your own.
|
||||||
|
set(LibtorrentRasterbar_DEFINITIONS
|
||||||
|
-DTORRENT_USE_OPENSSL
|
||||||
|
-DTORRENT_DISABLE_GEO_IP
|
||||||
|
-DBOOST_ASIO_ENABLE_CANCELIO
|
||||||
|
-DUNICODE -D_UNICODE -D_FILE_OFFSET_BITS=64)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT LibtorrentRasterbar_USE_STATIC_LIBS)
|
||||||
|
list(APPEND LibtorrentRasterbar_DEFINITIONS
|
||||||
|
-DTORRENT_LINKING_SHARED
|
||||||
|
-DBOOST_SYSTEM_DYN_LINK -DBOOST_CHRONO_DYN_LINK)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "libtorrent definitions: ${LibtorrentRasterbar_DEFINITIONS}")
|
||||||
|
|
||||||
|
find_path(LibtorrentRasterbar_INCLUDE_DIR libtorrent
|
||||||
|
HINTS ${PC_LIBTORRENT_RASTERBAR_INCLUDEDIR} ${PC_LIBTORRENT_RASTERBAR_INCLUDE_DIRS}
|
||||||
|
PATH_SUFFIXES libtorrent-rasterbar)
|
||||||
|
|
||||||
|
find_library(LibtorrentRasterbar_LIBRARY NAMES torrent-rasterbar libtorrent
|
||||||
|
HINTS ${PC_LIBTORRENT_RASTERBAR_LIBDIR} ${PC_LIBTORRENT_RASTERBAR_LIBRARY_DIRS})
|
||||||
|
|
||||||
|
if(LibtorrentRasterbar_USE_STATIC_LIBS)
|
||||||
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ${LibtorrentRasterbar_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
set(LibtorrentRasterbar_INCLUDE_DIRS ${LibtorrentRasterbar_INCLUDE_DIR})
|
||||||
|
|
||||||
|
# Without pkg-config, we can't possibly figure out the correct boost dependencies
|
||||||
|
if (LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES)
|
||||||
|
set(_boost_components "${LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES}")
|
||||||
|
else(LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES)
|
||||||
|
if(PC_LIBTORRENT_RASTERBAR_FOUND)
|
||||||
|
_detect_boost_components(_boost_components "${PC_LIBTORRENT_RASTERBAR_LIBRARIES}")
|
||||||
|
else()
|
||||||
|
# all possible boost dependencies
|
||||||
|
set(_boost_components
|
||||||
|
date_time
|
||||||
|
system
|
||||||
|
chrono
|
||||||
|
random
|
||||||
|
thread
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif(LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES)
|
||||||
|
|
||||||
|
list(SORT _boost_components)
|
||||||
|
message(STATUS "Libtorrent Boost dependencies: ${_boost_components}")
|
||||||
|
find_package(Boost REQUIRED COMPONENTS ${_boost_components})
|
||||||
|
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
foreach(_boost_cmpnt IN LISTS _boost_components)
|
||||||
|
list(APPEND LibtorrentRasterbar_LIBRARIES "Boost::${_boost_cmpnt}")
|
||||||
|
endforeach(_boost_cmpnt)
|
||||||
|
|
||||||
|
set(LibtorrentRasterbar_INCLUDE_DIRS ${LibtorrentRasterbar_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
list(FIND LibtorrentRasterbar_DEFINITIONS -DTORRENT_USE_OPENSSL LibtorrentRasterbar_ENCRYPTION_INDEX)
|
||||||
|
if(LibtorrentRasterbar_ENCRYPTION_INDEX GREATER -1)
|
||||||
|
find_package(OpenSSL REQUIRED)
|
||||||
|
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto)
|
||||||
|
list(APPEND LibtorrentRasterbar_INCLUDE_DIRS "${OPENSSL_INCLUDE_DIR}")
|
||||||
|
set(LibtorrentRasterbar_OPENSSL_ENABLED ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
# handle the QUIETLY and REQUIRED arguments and set LibtorrentRasterbar_FOUND to TRUE
|
||||||
|
# if all listed variables are TRUE
|
||||||
|
find_package_handle_standard_args(LibtorrentRasterbar DEFAULT_MSG
|
||||||
|
LibtorrentRasterbar_LIBRARY
|
||||||
|
LibtorrentRasterbar_INCLUDE_DIR)
|
||||||
|
|
||||||
|
mark_as_advanced(LibtorrentRasterbar_INCLUDE_DIR LibtorrentRasterbar_LIBRARY
|
||||||
|
LibtorrentRasterbar_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
|
LibtorrentRasterbar_ENCRYPTION_INDEX)
|
||||||
|
|
||||||
|
if (LibtorrentRasterbar_FOUND AND NOT TARGET LibtorrentRasterbar::torrent-rasterbar)
|
||||||
|
add_library(LibtorrentRasterbar::torrent-rasterbar UNKNOWN IMPORTED)
|
||||||
|
|
||||||
|
set_target_properties(LibtorrentRasterbar::torrent-rasterbar PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||||
|
IMPORTED_LOCATION "${LibtorrentRasterbar_LIBRARY}"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${LibtorrentRasterbar_INCLUDE_DIRS}"
|
||||||
|
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${LibtorrentRasterbar_INCLUDE_DIRS}"
|
||||||
|
INTERFACE_LINK_LIBRARIES "${LibtorrentRasterbar_LIBRARIES}"
|
||||||
|
INTERFACE_COMPILE_OPTIONS "${LibtorrentRasterbar_DEFINITIONS}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
79
cmake/Modules/FindQtSingleApplication.cmake
Normal file
79
cmake/Modules/FindQtSingleApplication.cmake
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# - Try to find the QtSingleApplication includes and library
|
||||||
|
# which defines
|
||||||
|
#
|
||||||
|
# QtSingleApplication_FOUND - system has QtSingleApplication
|
||||||
|
# QtSingleApplication_INCLUDE_DIR - where to find header QtSingleApplication
|
||||||
|
# QtSingleApplication_LIBRARIES - the libraries to link against to use QtSingleApplication
|
||||||
|
# QtSingleApplication_LIBRARY - where to find the QtSingleApplication library (not for general use)
|
||||||
|
|
||||||
|
# copyright (c) 2013 TI_Eugene ti.eugene@gmail.com
|
||||||
|
#
|
||||||
|
# Redistribution and use is allowed according to the terms of the FreeBSD license.
|
||||||
|
|
||||||
|
SET(QtSingleApplication_FOUND FALSE)
|
||||||
|
|
||||||
|
if (Qt5Widgets_FOUND)
|
||||||
|
set(_includeFileName qtsingleapplication.h)
|
||||||
|
else()
|
||||||
|
set(_includeFileName qtsinglecoreapplication.h)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
FOREACH(TOP_INCLUDE_PATH in ${Qt5Core_INCLUDE_DIRS} ${FRAMEWORK_INCLUDE_DIR})
|
||||||
|
FIND_PATH(QtSingleApplication_INCLUDE_DIR ${_includeFileName} ${TOP_INCLUDE_PATH}/QtSolutions)
|
||||||
|
|
||||||
|
IF(QtSingleApplication_INCLUDE_DIR)
|
||||||
|
BREAK()
|
||||||
|
ENDIF()
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
SET(QtSingleApplication_NAMES ${QtSingleApplication_NAMES}
|
||||||
|
Qt5Solutions_SingleApplication-2.6 libQt5Solutions_SingleApplication-2.6
|
||||||
|
QtSolutions_SingleApplication-2.6 libQtSolutions_SingleApplication-2.6)
|
||||||
|
GET_TARGET_PROPERTY(_QT5_CORELIBRARY Qt5::Core LOCATION)
|
||||||
|
GET_FILENAME_COMPONENT(_QT5_CORELIBRARYPATH ${_QT5_CORELIBRARY} PATH)
|
||||||
|
|
||||||
|
FIND_LIBRARY(QtSingleApplication_LIBRARY
|
||||||
|
NAMES ${QtSingleApplication_NAMES}
|
||||||
|
PATHS ${_QT5_CORELIBRARYPATH}
|
||||||
|
)
|
||||||
|
|
||||||
|
IF (QtSingleApplication_LIBRARY AND QtSingleApplication_INCLUDE_DIR)
|
||||||
|
|
||||||
|
SET(QtSingleApplication_LIBRARIES ${QtSingleApplication_LIBRARY})
|
||||||
|
SET(QtSingleApplication_FOUND TRUE)
|
||||||
|
|
||||||
|
IF (CYGWIN)
|
||||||
|
IF(BUILD_SHARED_LIBS)
|
||||||
|
# No need to define QtSingleApplication_USE_DLL here, because it's default for Cygwin.
|
||||||
|
ELSE(BUILD_SHARED_LIBS)
|
||||||
|
SET (QtSingleApplication_DEFINITIONS -DQTSINGLEAPPLICATION_STATIC)
|
||||||
|
ENDIF(BUILD_SHARED_LIBS)
|
||||||
|
ENDIF (CYGWIN)
|
||||||
|
|
||||||
|
ENDIF (QtSingleApplication_LIBRARY AND QtSingleApplication_INCLUDE_DIR)
|
||||||
|
|
||||||
|
IF (QtSingleApplication_FOUND)
|
||||||
|
IF (NOT QtSingleApplication_FIND_QUIETLY)
|
||||||
|
MESSAGE(STATUS "Found QtSingleApplication: ${QtSingleApplication_LIBRARY}")
|
||||||
|
MESSAGE(STATUS " includes: ${QtSingleApplication_INCLUDE_DIR}")
|
||||||
|
ENDIF (NOT QtSingleApplication_FIND_QUIETLY)
|
||||||
|
if(NOT TARGET QtSingleApplication::QtSingleApplication)
|
||||||
|
add_library(QtSingleApplication::QtSingleApplication UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(QtSingleApplication::QtSingleApplication PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${QtSingleApplication_INCLUDE_DIR}"
|
||||||
|
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${QtSingleApplication_INCLUDE_DIR}"
|
||||||
|
)
|
||||||
|
if(EXISTS "${QtSingleApplication_LIBRARY}")
|
||||||
|
set_target_properties(QtSingleApplication::QtSingleApplication PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||||
|
IMPORTED_LOCATION "${QtSingleApplication_LIBRARY}")
|
||||||
|
endif()
|
||||||
|
endif(NOT TARGET QtSingleApplication::QtSingleApplication)
|
||||||
|
|
||||||
|
ELSE (QtSingleApplication_FOUND)
|
||||||
|
IF (QtSingleApplication_FIND_REQUIRED)
|
||||||
|
MESSAGE(FATAL_ERROR "Could not find QtSingleApplication library")
|
||||||
|
ENDIF (QtSingleApplication_FIND_REQUIRED)
|
||||||
|
ENDIF (QtSingleApplication_FOUND)
|
||||||
|
|
||||||
|
MARK_AS_ADVANCED(QtSingleApplication_INCLUDE_DIR QtSingleApplication_LIBRARY)
|
||||||
@@ -8,7 +8,7 @@ find_package(PkgConfig QUIET REQUIRED)
|
|||||||
|
|
||||||
if (NOT SYSTEMD_FOUND)
|
if (NOT SYSTEMD_FOUND)
|
||||||
pkg_check_modules(SYSTEMD "systemd")
|
pkg_check_modules(SYSTEMD "systemd")
|
||||||
endif()
|
endif(NOT SYSTEMD_FOUND)
|
||||||
|
|
||||||
if (SYSTEMD_FOUND AND "${SYSTEMD_SERVICES_INSTALL_DIR}" STREQUAL "")
|
if (SYSTEMD_FOUND AND "${SYSTEMD_SERVICES_INSTALL_DIR}" STREQUAL "")
|
||||||
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE}
|
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE}
|
||||||
@@ -23,4 +23,4 @@ endif()
|
|||||||
|
|
||||||
if (SYSTEMD_FOUND)
|
if (SYSTEMD_FOUND)
|
||||||
message(STATUS "systemd services install dir: ${SYSTEMD_SERVICES_INSTALL_DIR}")
|
message(STATUS "systemd services install dir: ${SYSTEMD_SERVICES_INSTALL_DIR}")
|
||||||
endif()
|
endif(SYSTEMD_FOUND)
|
||||||
|
|||||||
28
cmake/Modules/FunctionReadVersion.cmake
Normal file
28
cmake/Modules/FunctionReadVersion.cmake
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# function for parsing version variables that are set in version.pri file
|
||||||
|
# the version identifiers there are defined as follows:
|
||||||
|
# VER_MAJOR = 3
|
||||||
|
# VER_MINOR = 4
|
||||||
|
# VER_BUGFIX = 0
|
||||||
|
# VER_BUILD = 0
|
||||||
|
# VER_STATUS = alpha
|
||||||
|
|
||||||
|
function(read_version priFile outMajor outMinor outBugfix outBuild outStatus)
|
||||||
|
file(STRINGS ${priFile} _priFileContents REGEX "^VER_.+")
|
||||||
|
# message(STATUS "version.pri version contents: ${_priFileContents}")
|
||||||
|
# the _priFileContents variable contains something like the following:
|
||||||
|
# VER_MAJOR = 3;VER_MINOR = 4;VER_BUGFIX = 0;VER_BUILD = 0;VER_STATUS = alpha # Should be empty for stable releases!
|
||||||
|
set(_regex "VER_MAJOR += +([0-9]+);VER_MINOR += +([0-9]+);VER_BUGFIX += +([0-9]+);VER_BUILD += +([0-9]+);VER_STATUS += +([0-9A-Za-z]+)?")
|
||||||
|
# note quotes around _regex, they are needed because the variable contains semicolons
|
||||||
|
string(REGEX MATCH "${_regex}" _tmp "${_priFileContents}")
|
||||||
|
if (NOT _tmp)
|
||||||
|
message(FATAL_ERROR "Could not detect project version number from ${priFile}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# message(STATUS "Matched version string: ${_tmp}")
|
||||||
|
|
||||||
|
set(${outMajor} ${CMAKE_MATCH_1} PARENT_SCOPE)
|
||||||
|
set(${outMinor} ${CMAKE_MATCH_2} PARENT_SCOPE)
|
||||||
|
set(${outBugfix} ${CMAKE_MATCH_3} PARENT_SCOPE)
|
||||||
|
set(${outBuild} ${CMAKE_MATCH_4} PARENT_SCOPE)
|
||||||
|
set(${outStatus} ${CMAKE_MATCH_5} PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
38
cmake/Modules/MacroConfigureMSVCRuntime.cmake
Normal file
38
cmake/Modules/MacroConfigureMSVCRuntime.cmake
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
macro(configure_msvc_runtime)
|
||||||
|
if(MSVC)
|
||||||
|
# Default to statically-linked runtime.
|
||||||
|
if("${MSVC_RUNTIME}" STREQUAL "")
|
||||||
|
set(MSVC_RUNTIME "static")
|
||||||
|
endif()
|
||||||
|
# Set compiler options.
|
||||||
|
set(variables
|
||||||
|
CMAKE_C_FLAGS_DEBUG
|
||||||
|
CMAKE_C_FLAGS_MINSIZEREL
|
||||||
|
CMAKE_C_FLAGS_RELEASE
|
||||||
|
CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||||
|
CMAKE_CXX_FLAGS_DEBUG
|
||||||
|
CMAKE_CXX_FLAGS_MINSIZEREL
|
||||||
|
CMAKE_CXX_FLAGS_RELEASE
|
||||||
|
CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||||
|
)
|
||||||
|
if(${MSVC_RUNTIME} STREQUAL "static")
|
||||||
|
message(STATUS
|
||||||
|
"MSVC -> forcing use of statically-linked runtime."
|
||||||
|
)
|
||||||
|
foreach(variable ${variables})
|
||||||
|
if(${variable} MATCHES "/MD")
|
||||||
|
string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
else()
|
||||||
|
message(STATUS
|
||||||
|
"MSVC -> forcing use of dynamically-linked runtime."
|
||||||
|
)
|
||||||
|
foreach(variable ${variables})
|
||||||
|
if(${variable} MATCHES "/MT")
|
||||||
|
string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
49
cmake/Modules/MacroGlibcDetect.cmake
Normal file
49
cmake/Modules/MacroGlibcDetect.cmake
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
###############################################################
|
||||||
|
#
|
||||||
|
# Copyright 2011 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
||||||
|
# may not use this file except in compliance with the License. You may
|
||||||
|
# obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
MACRO (GLIBC_DETECT _VERSION)
|
||||||
|
|
||||||
|
# there are multiple ways to detect glibc, but given nmi's
|
||||||
|
# cons'd up paths I will trust only gcc. I guess I could also use
|
||||||
|
# ldd --version to detect.
|
||||||
|
|
||||||
|
set(_GLIB_SOURCE_DETECT "
|
||||||
|
#include <limits.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
printf(\"%d%d\",__GLIBC__, __GLIBC_MINOR__);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
")
|
||||||
|
|
||||||
|
file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/build/cmake/glibc.cpp "${_GLIB_SOURCE_DETECT}\n")
|
||||||
|
|
||||||
|
try_run(POST26_GLIBC_DETECTED
|
||||||
|
POST26_GLIBC_COMPILE
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/build/cmake
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/build/cmake/glibc.cpp
|
||||||
|
RUN_OUTPUT_VARIABLE GLIBC_VERSION )
|
||||||
|
|
||||||
|
if (GLIBC_VERSION AND POST26_GLIBC_COMPILE )
|
||||||
|
set(${_VERSION} ${GLIBC_VERSION})
|
||||||
|
else()
|
||||||
|
message(STATUS "NOTE: Could not detect GLIBC_VERSION from compiler")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
ENDMACRO (GLIBC_DETECT)
|
||||||
28
cmake/Modules/MacroLinkQtComponents.cmake
Normal file
28
cmake/Modules/MacroLinkQtComponents.cmake
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# - macro similar to target_link_libraries, which links Qt components
|
||||||
|
# names of the components are passed in Qt4/Qt5 agnostic way (Core, DBus, Xml...)
|
||||||
|
# and the macro links Qt4 ones if QT4_FOUND is set or Qt5 ones if not
|
||||||
|
|
||||||
|
macro (target_link_qt_components target)
|
||||||
|
if (QT4_FOUND)
|
||||||
|
foreach(_cmp ${ARGN})
|
||||||
|
if ("${_cmp}" STREQUAL "PRIVATE" OR
|
||||||
|
"${_cmp}" STREQUAL "PUBLIC" OR
|
||||||
|
"${_cmp}" STREQUAL "INTERFACE")
|
||||||
|
list(APPEND _QT_CMPNTS "${_cmp}")
|
||||||
|
else()
|
||||||
|
list(APPEND _QT_CMPNTS "Qt4::Qt${_cmp}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
else (QT4_FOUND)
|
||||||
|
foreach(_cmp ${ARGN})
|
||||||
|
if ("${_cmp}" STREQUAL "PRIVATE" OR
|
||||||
|
"${_cmp}" STREQUAL "PUBLIC" OR
|
||||||
|
"${_cmp}" STREQUAL "INTERFACE")
|
||||||
|
list(APPEND _QT_CMPNTS "${_cmp}")
|
||||||
|
else()
|
||||||
|
list(APPEND _QT_CMPNTS "Qt5::${_cmp}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endif (QT4_FOUND)
|
||||||
|
target_link_libraries(${target} ${_QT_CMPNTS})
|
||||||
|
endmacro()
|
||||||
@@ -1,112 +0,0 @@
|
|||||||
# Set common variables and create some interface-only library targets
|
|
||||||
# that some or all other targets will link to, either directly or transitively,
|
|
||||||
# to consume common compile options/definitions
|
|
||||||
|
|
||||||
macro(qbt_common_config)
|
|
||||||
|
|
||||||
# treat value specified by the CXX_STANDARD target property as a requirement by default
|
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
||||||
|
|
||||||
# these definitions are only needed for calls to
|
|
||||||
# lt::generate_fingerprint and for the qbittorrent.rc file on Windows
|
|
||||||
add_library(qbt_version_definitions INTERFACE)
|
|
||||||
|
|
||||||
target_compile_definitions(qbt_version_definitions INTERFACE
|
|
||||||
QBT_VERSION_MAJOR=${qBittorrent_VERSION_MAJOR}
|
|
||||||
QBT_VERSION_MINOR=${qBittorrent_VERSION_MINOR}
|
|
||||||
QBT_VERSION_BUGFIX=${qBittorrent_VERSION_PATCH}
|
|
||||||
QBT_VERSION_BUILD=${qBittorrent_VERSION_TWEAK}
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(qbt_common_cfg INTERFACE)
|
|
||||||
|
|
||||||
# Full C++ 14 support is required
|
|
||||||
# See also https://cmake.org/cmake/help/latest/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html
|
|
||||||
# for a breakdown of the features that CMake recognizes for each C++ standard
|
|
||||||
target_compile_features(qbt_common_cfg INTERFACE
|
|
||||||
cxx_std_14
|
|
||||||
cxx_aggregate_default_initializers
|
|
||||||
cxx_attribute_deprecated
|
|
||||||
cxx_binary_literals
|
|
||||||
cxx_contextual_conversions
|
|
||||||
cxx_decltype_auto
|
|
||||||
cxx_digit_separators
|
|
||||||
cxx_generic_lambdas
|
|
||||||
cxx_lambda_init_captures
|
|
||||||
cxx_relaxed_constexpr
|
|
||||||
cxx_return_type_deduction
|
|
||||||
cxx_variable_templates
|
|
||||||
)
|
|
||||||
|
|
||||||
set(QBT_PROJECT_VERSION "${qBittorrent_VERSION_MAJOR}.${qBittorrent_VERSION_MINOR}.${qBittorrent_VERSION_PATCH}")
|
|
||||||
if (NOT ${qBittorrent_VERSION_TWEAK} EQUAL 0)
|
|
||||||
set(QBT_PROJECT_VERSION "${QBT_PROJECT_VERSION}.${qBittorrent_VERSION_TWEAK}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(QBT_FULL_VERSION "${QBT_PROJECT_VERSION}${QBT_VER_STATUS}")
|
|
||||||
|
|
||||||
target_compile_definitions(qbt_common_cfg INTERFACE
|
|
||||||
QBT_VERSION="v${QBT_FULL_VERSION}"
|
|
||||||
QBT_VERSION_2="${QBT_FULL_VERSION}"
|
|
||||||
QT_DEPRECATED_WARNINGS
|
|
||||||
QT_NO_CAST_TO_ASCII
|
|
||||||
QT_NO_CAST_FROM_BYTEARRAY
|
|
||||||
QT_USE_QSTRINGBUILDER
|
|
||||||
QT_STRICT_ITERATORS
|
|
||||||
$<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG_OUTPUT>
|
|
||||||
)
|
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
||||||
target_compile_definitions(qbt_common_cfg INTERFACE
|
|
||||||
NTDDI_VERSION=0x06010000
|
|
||||||
_WIN32_WINNT=0x0601
|
|
||||||
_WIN32_IE=0x0601
|
|
||||||
WIN32_LEAN_AND_MEAN
|
|
||||||
NOMINMAX
|
|
||||||
UNICODE
|
|
||||||
_UNICODE
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if ((CXX_COMPILER_ID STREQUAL "GNU") OR (CXX_COMPILER_ID STREQUAL "Clang") OR (CXX_COMPILER_ID STREQUAL "AppleClang"))
|
|
||||||
target_compile_options(qbt_common_cfg INTERFACE
|
|
||||||
-Wall
|
|
||||||
-Wextra
|
|
||||||
-Wcast-qual
|
|
||||||
-Wcast-align
|
|
||||||
-Winvalid-pch
|
|
||||||
-Woverloaded-virtual
|
|
||||||
-Wold-style-cast
|
|
||||||
-Wnon-virtual-dtor
|
|
||||||
-pedantic
|
|
||||||
-pedantic-errors
|
|
||||||
)
|
|
||||||
|
|
||||||
# Clang 11 still doesn't support -Wstrict-null-sentinel
|
|
||||||
include(CheckCXXCompilerFlag)
|
|
||||||
check_cxx_compiler_flag(-Wstrict-null-sentinel SNS_SUPPORT)
|
|
||||||
if (SNS_SUPPORT)
|
|
||||||
target_compile_options(qbt_common_cfg INTERFACE -Wstrict-null-sentinel)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (MINGW)
|
|
||||||
target_link_options(qbt_common_cfg INTERFACE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:LINKER:--dynamicbase>)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (MSVC_RUNTIME_DYNAMIC)
|
|
||||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
|
||||||
else()
|
|
||||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (MSVC)
|
|
||||||
target_compile_options(qbt_common_cfg INTERFACE /guard:cf)
|
|
||||||
target_link_options(qbt_common_cfg INTERFACE /guard:cf
|
|
||||||
$<$<NOT:$<CONFIG:Debug>>:/OPT:REF /OPT:ICF>
|
|
||||||
# suppress linking warning due to /INCREMENTAL and /OPT:ICF being both ON
|
|
||||||
$<$<CONFIG:RelWithDebInfo>:/INCREMENTAL:NO>
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
endmacro(qbt_common_config)
|
|
||||||
102
cmake/Modules/MacroQbtCompilerSettings.cmake
Normal file
102
cmake/Modules/MacroQbtCompilerSettings.cmake
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
# Sets cache variable QBT_ADDITONAL_FLAGS and QBT_ADDITONAL_CXX_FLAGS to list of additional
|
||||||
|
# compiler flags for C and C++ (QBT_ADDITONAL_FLAGS) and for C++ only (QBT_ADDITONAL_CXX_FLAGS)
|
||||||
|
# and appends them to CMAKE_XXX_FLAGS variables.
|
||||||
|
|
||||||
|
# It could use add_compile_options(), but then it is needed to use generator expressions,
|
||||||
|
# and most interesting of them are not compatible with Visual Studio :(
|
||||||
|
|
||||||
|
macro(qbt_set_compiler_options)
|
||||||
|
# if (NOT QBT_ADDITONAL_FLAGS)
|
||||||
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
#-Wshadow -Wconversion ?
|
||||||
|
set(_GCC_COMMON_C_AND_CXX_FLAGS "-Wall -Wextra"
|
||||||
|
"-Wfloat-equal -Wcast-qual -Wcast-align"
|
||||||
|
"-Wsign-conversion -Winvalid-pch -Wno-long-long"
|
||||||
|
#"-fstack-protector-all"
|
||||||
|
#"-Werror -Wno-error=deprecated-declarations"
|
||||||
|
)
|
||||||
|
set(_GCC_COMMON_CXX_FLAGS "-fexceptions -frtti"
|
||||||
|
"-Woverloaded-virtual -Wold-style-cast"
|
||||||
|
"-Wnon-virtual-dtor -Wfloat-equal -Wcast-qual -Wcast-align"
|
||||||
|
#"-Weffc++"
|
||||||
|
#"-Werror -Wno-error=cpp"
|
||||||
|
# we should modify code to make these ones obsolete
|
||||||
|
#"-Wno-error=sign-conversion -Wno-error=float-equal"
|
||||||
|
)
|
||||||
|
|
||||||
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
|
||||||
|
# GCC 4.8 has problems with std::array and its initialization
|
||||||
|
list(APPEND _GCC_COMMON_CXX_FLAGS "-Wno-error=missing-field-initializers")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(CheckCXXCompilerFlag)
|
||||||
|
# check for -pedantic
|
||||||
|
check_cxx_compiler_flag(-pedantic _PEDANTIC_IS_SUPPORTED)
|
||||||
|
if (_PEDANTIC_IS_SUPPORTED)
|
||||||
|
list(APPEND _GCC_COMMON_CXX_FLAGS "-pedantic -pedantic-errors")
|
||||||
|
else (_PEDANTIC_IS_SUPPORTED)
|
||||||
|
list(APPEND _GCC_COMMON_CXX_FLAGS "-Wpedantic")
|
||||||
|
endif (_PEDANTIC_IS_SUPPORTED)
|
||||||
|
|
||||||
|
if (CMAKE_SYSTEM_NAME MATCHES Linux)
|
||||||
|
# if Glibc version is 2.20 or higher, set -D_DEFAULT_SOURCE
|
||||||
|
include(MacroGlibcDetect)
|
||||||
|
message(STATUS "Detecting Glibc version...")
|
||||||
|
glibc_detect(GLIBC_VERSION)
|
||||||
|
if(${GLIBC_VERSION})
|
||||||
|
if(GLIBC_VERSION LESS "220")
|
||||||
|
message(STATUS "Glibc version is ${GLIBC_VERSION}")
|
||||||
|
else(GLIBC_VERSION LESS "220")
|
||||||
|
message(STATUS "Glibc version is ${GLIBC_VERSION}, adding -D_DEFAULT_SOURCE")
|
||||||
|
add_definitions(-D_DEFAULT_SOURCE)
|
||||||
|
endif(GLIBC_VERSION LESS "220")
|
||||||
|
endif(${GLIBC_VERSION})
|
||||||
|
endif (CMAKE_SYSTEM_NAME MATCHES Linux)
|
||||||
|
|
||||||
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
# Clang 5.0 still doesn't support -Wstrict-null-sentinel
|
||||||
|
check_cxx_compiler_flag(-Wstrict-null-sentinel _STRICT_NULL_SENTINEL_IS_SUPPORTED)
|
||||||
|
if (_STRICT_NULL_SENTINEL_IS_SUPPORTED)
|
||||||
|
list(APPEND _GCC_COMMON_CXX_FLAGS "-Wstrict-null-sentinel")
|
||||||
|
endif (_STRICT_NULL_SENTINEL_IS_SUPPORTED)
|
||||||
|
|
||||||
|
# Code should be improved to render this not needed
|
||||||
|
list(APPEND _GCC_COMMON_CXX_FLAGS "-Wno-error=unused-function -Wno-error=inconsistent-missing-override")
|
||||||
|
else ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
# GCC supports it
|
||||||
|
list(APPEND _GCC_COMMON_CXX_FLAGS "-Wstrict-null-sentinel")
|
||||||
|
endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
|
||||||
|
string(REPLACE ";" " " _GCC_COMMON_C_AND_CXX_FLAGS_STRING "${_GCC_COMMON_C_AND_CXX_FLAGS}")
|
||||||
|
string(REPLACE ";" " " _GCC_COMMON_CXX_FLAGS_STRING "${_GCC_COMMON_CXX_FLAGS}")
|
||||||
|
|
||||||
|
string(APPEND CMAKE_C_FLAGS " ${_GCC_COMMON_C_AND_CXX_FLAGS_STRING}")
|
||||||
|
string(APPEND CMAKE_CXX_FLAGS " ${_GCC_COMMON_C_AND_CXX_FLAGS_STRING} ${_GCC_COMMON_CXX_FLAGS_STRING}")
|
||||||
|
|
||||||
|
set(QBT_ADDITONAL_FLAGS "${_GCC_COMMON_C_AND_CXX_FLAGS_STRING}" CACHE STRING
|
||||||
|
"Additional qBittorent compile flags" FORCE)
|
||||||
|
set(QBT_ADDITONAL_CXX_FLAGS "${_GCC_COMMON_CXX_FLAGS_STRING}" CACHE STRING
|
||||||
|
"Additional qBittorent C++ compile flags" FORCE)
|
||||||
|
|
||||||
|
# check whether we can enable -Og optimization for debug build
|
||||||
|
# also let's enable -march=native for debug builds
|
||||||
|
check_cxx_compiler_flag(-Og _DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
|
||||||
|
|
||||||
|
if (_DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
|
||||||
|
string(APPEND CMAKE_C_FLAGS_DEBUG " -Og -g3 -march=native -pipe" )
|
||||||
|
string(APPEND CMAKE_CXX_FLAGS_DEBUG " -Og -g3 -march=native -pipe" )
|
||||||
|
else(_DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
|
||||||
|
string(APPEND CMAKE_C_FLAGS_DEBUG " -O0 -g3 -march=native -pipe" )
|
||||||
|
string(APPEND CMAKE_CXX_FLAGS_DEBUG " -O0 -g3 -march=native -pipe" )
|
||||||
|
endif (_DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
|
||||||
|
endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
|
||||||
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||||
|
set(QBT_ADDITONAL_FLAGS "-wd4290 -wd4275 -wd4251 /W4" CACHE STRING "Additional qBittorent compile flags")
|
||||||
|
string(APPEND CMAKE_C_FLAGS " ${QBT_ADDITONAL_FLAGS}")
|
||||||
|
string(APPEND CMAKE_CXX_FLAGS " ${QBT_ADDITONAL_FLAGS}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# endif (NOT QBT_ADDITONAL_FLAGS)
|
||||||
|
endmacro(qbt_set_compiler_options)
|
||||||
|
|
||||||
17
cmake/Modules/QbtTargetSources.cmake
Normal file
17
cmake/Modules/QbtTargetSources.cmake
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# a helper function which appends source to the target
|
||||||
|
# sources file names are relative to the the target source dir
|
||||||
|
|
||||||
|
function (qbt_target_sources _target _scope)
|
||||||
|
get_target_property(targetSourceDir ${_target} SOURCE_DIR)
|
||||||
|
set(sourcesRelative "")
|
||||||
|
foreach(source IN ITEMS ${ARGN})
|
||||||
|
if(IS_ABSOLUTE "${source}")
|
||||||
|
set(sourceAbsolutePath "${source}")
|
||||||
|
else()
|
||||||
|
get_filename_component(sourceAbsolutePath "${source}" ABSOLUTE)
|
||||||
|
endif()
|
||||||
|
file(RELATIVE_PATH sourceRelativePath "${targetSourceDir}" "${sourceAbsolutePath}")
|
||||||
|
list(APPEND sourcesRelative "${sourceRelativePath}")
|
||||||
|
endforeach()
|
||||||
|
target_sources(${_target} ${_scope} "${sourcesRelative}")
|
||||||
|
endfunction(qbt_target_sources)
|
||||||
21
cmake/Modules/bundle.cmake
Normal file
21
cmake/Modules/bundle.cmake
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
set(BU_CHMOD_BUNDLE_ITEMS ON)
|
||||||
|
include(DeployQt5)
|
||||||
|
|
||||||
|
set(plugins "")
|
||||||
|
|
||||||
|
get_property(svgIconPluginLocation TARGET Qt5::QSvgIconPlugin
|
||||||
|
PROPERTY LOCATION_RELEASE)
|
||||||
|
list(APPEND plugins "${svgIconPluginLocation}")
|
||||||
|
get_property(svgPluginLocation TARGET Qt5::QSvgPlugin
|
||||||
|
PROPERTY LOCATION_RELEASE)
|
||||||
|
list(APPEND plugins "${svgPluginLocation}")
|
||||||
|
|
||||||
|
set(sfx "")
|
||||||
|
if(APPLE)
|
||||||
|
set(sfx ".app")
|
||||||
|
elseif(WIN32)
|
||||||
|
set(sfx "${CMAKE_EXECUTABLE_SUFFIX}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
get_target_property(exe qBittorrent OUTPUT_NAME)
|
||||||
|
install_qt5_executable("${exe}${sfx}" "${plugins}" "" "" "")
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user