You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-10-14 11:52:15 +02:00
Compare commits
46 Commits
release-4.
...
release-1.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d5b790d240 | ||
![]() |
940a8b28e4 | ||
![]() |
9ee9c7d362 | ||
![]() |
2899494ef3 | ||
![]() |
624e2b287a | ||
![]() |
681d538163 | ||
![]() |
60f1a1989c | ||
![]() |
050dc9de44 | ||
![]() |
d80f94643f | ||
![]() |
1b4bb7655f | ||
![]() |
e8ffaa2f87 | ||
![]() |
a89188acc3 | ||
![]() |
993002a151 | ||
![]() |
8bcaf55439 | ||
![]() |
48aac758c9 | ||
![]() |
4ba2c3d385 | ||
![]() |
d96e21c07f | ||
![]() |
1204cebaa1 | ||
![]() |
1695e85bdf | ||
![]() |
33305cca9f | ||
![]() |
04b683c38c | ||
![]() |
d55cd9aec8 | ||
![]() |
0b5652bd72 | ||
![]() |
878787e965 | ||
![]() |
3536577af6 | ||
![]() |
9f2d9e4d3f | ||
![]() |
efe0dbabaa | ||
![]() |
b1d8fb0f11 | ||
![]() |
78fc5d4865 | ||
![]() |
19996736d6 | ||
![]() |
6f9d22af03 | ||
![]() |
6b6d05a380 | ||
![]() |
df92e3e5e9 | ||
![]() |
26b6c26ea8 | ||
![]() |
1b6183bfa3 | ||
![]() |
7edbaa3847 | ||
![]() |
2ee152a374 | ||
![]() |
bc8ac43a54 | ||
![]() |
5f48a51070 | ||
![]() |
c3a6b24ed1 | ||
![]() |
c3b22c9a01 | ||
![]() |
5d09ace7eb | ||
![]() |
fe37724338 | ||
![]() |
8aaacbe38d | ||
![]() |
edc625c9c9 | ||
![]() |
6ae21c2919 |
@@ -1,58 +0,0 @@
|
|||||||
version: '{branch}-{build}'
|
|
||||||
|
|
||||||
# Do not build on tags (GitHub only)
|
|
||||||
skip_tags: true
|
|
||||||
|
|
||||||
image: Visual Studio 2017
|
|
||||||
|
|
||||||
branches:
|
|
||||||
except: # blacklist
|
|
||||||
- coverity_scan
|
|
||||||
|
|
||||||
environment:
|
|
||||||
REPO_DIR: &REPO_DIR c:\qbittorrent
|
|
||||||
CACHE_DIR: &CACHE_DIR c:\qbt_cache
|
|
||||||
|
|
||||||
QBT_VER_URL: https://builds.shiki.hu/appveyor/version
|
|
||||||
QBT_LIB_URL: https://builds.shiki.hu/appveyor/qbt_libraries.7z
|
|
||||||
|
|
||||||
# project directory
|
|
||||||
clone_folder: *REPO_DIR
|
|
||||||
|
|
||||||
# cache size should < 100MB (after compressing with fastest option):
|
|
||||||
# see: https://www.appveyor.com/docs/build-cache#save-update-cache-before-build-finishes
|
|
||||||
cache:
|
|
||||||
- *CACHE_DIR
|
|
||||||
|
|
||||||
clone_depth: 50
|
|
||||||
|
|
||||||
install:
|
|
||||||
# check if library needs update
|
|
||||||
- appveyor DownloadFile "%QBT_VER_URL%" -FileName "c:\version_new" && SET /P newVersion=<"c:\version_new"
|
|
||||||
- IF EXIST "%CACHE_DIR%\version" (SET /P oldVersion=<"%CACHE_DIR%\version")
|
|
||||||
- IF NOT EXIST "%CACHE_DIR%\version" (SET updateCache=1)
|
|
||||||
- IF NOT "%oldVersion%" == "%newVersion%" (SET updateCache=1)
|
|
||||||
# update library
|
|
||||||
- IF "%updateCache%" == "1" (ECHO "--- Will redownload libraries ---" &&
|
|
||||||
RMDIR /S /Q "%CACHE_DIR%" & MKDIR "%CACHE_DIR%" &&
|
|
||||||
appveyor DownloadFile "%QBT_LIB_URL%" -FileName "c:\qbt_lib.7z" && 7z x "c:\qbt_lib.7z" -o"%CACHE_DIR%" > nul &&
|
|
||||||
COPY "c:\version_new" "%CACHE_DIR%\version")
|
|
||||||
# Qt stay compressed in cache
|
|
||||||
- 7z x "%CACHE_DIR%\qt5_32.7z" -o"c:\qbt" > nul
|
|
||||||
|
|
||||||
before_build:
|
|
||||||
# setup env
|
|
||||||
- CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
|
|
||||||
- SET PATH=%PATH%;c:\qbt\qt5_32\bin;%CACHE_DIR%\jom;
|
|
||||||
# setup project
|
|
||||||
- COPY /Y "%CACHE_DIR%\winconf.pri" "%REPO_DIR%"
|
|
||||||
- COPY /Y "%CACHE_DIR%\winconf-msvc.pri" "%REPO_DIR%"
|
|
||||||
# workarounds
|
|
||||||
- MKLINK /J "c:\qbt\base" "%CACHE_DIR%\base"
|
|
||||||
|
|
||||||
build_script:
|
|
||||||
- cd "%REPO_DIR%"
|
|
||||||
- qmake qbittorrent.pro && cd src && qmake src.pro
|
|
||||||
- jom -j2 -f Makefile.Release
|
|
||||||
|
|
||||||
test: off
|
|
@@ -1,12 +0,0 @@
|
|||||||
# EditorConfig is awesome: http://EditorConfig.org
|
|
||||||
|
|
||||||
root = true
|
|
||||||
|
|
||||||
[*]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
|
||||||
insert_final_newline = true
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
|
|
||||||
[**.yml]
|
|
||||||
indent_size = 2
|
|
7
.gitattributes
vendored
7
.gitattributes
vendored
@@ -1,7 +0,0 @@
|
|||||||
core.eol=lf
|
|
||||||
* text eol=lf
|
|
||||||
*.zip binary
|
|
||||||
*.png binary
|
|
||||||
*.ico binary
|
|
||||||
*.qm binary
|
|
||||||
*.icns binary
|
|
20
.github/ISSUE_TEMPLATE.md
vendored
20
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,20 +0,0 @@
|
|||||||
**Please provide the following information**
|
|
||||||
|
|
||||||
### qBittorrent version and Operating System
|
|
||||||
(type here)
|
|
||||||
|
|
||||||
### If on linux, libtorrent and Qt version
|
|
||||||
(type here)
|
|
||||||
|
|
||||||
### What is the problem
|
|
||||||
(type here)
|
|
||||||
|
|
||||||
### What is the expected behavior
|
|
||||||
(type here)
|
|
||||||
|
|
||||||
### Steps to reproduce
|
|
||||||
(type here)
|
|
||||||
|
|
||||||
### Extra info(if any)
|
|
||||||
(type here)
|
|
||||||
|
|
36
.gitignore
vendored
36
.gitignore
vendored
@@ -1,36 +0,0 @@
|
|||||||
src/gui/geoip/GeoIP.dat
|
|
||||||
src/gui/geoip/GeoIP.dat.gz
|
|
||||||
src/qbittorrent
|
|
||||||
src/qbittorrent-nox
|
|
||||||
src/release
|
|
||||||
src/debug
|
|
||||||
qbittorrent.pro.user*
|
|
||||||
conf.pri
|
|
||||||
Makefile*
|
|
||||||
*.pyc
|
|
||||||
*.log
|
|
||||||
|
|
||||||
# Compiled object files
|
|
||||||
*.o
|
|
||||||
*.pdb
|
|
||||||
*.exe
|
|
||||||
|
|
||||||
# Generated MOC, resource and UI files
|
|
||||||
moc_*.cpp
|
|
||||||
moc_*.h
|
|
||||||
qrc_*.cpp
|
|
||||||
ui_*.h
|
|
||||||
*.moc
|
|
||||||
src/lang/qbittorrent_*.qm
|
|
||||||
.DS_Store
|
|
||||||
.qmake.stash
|
|
||||||
src/qbittorrent.app
|
|
||||||
*.dmg
|
|
||||||
|
|
||||||
#Autotools junk
|
|
||||||
aclocal.m4
|
|
||||||
autom4te.cache/*
|
|
||||||
config.status
|
|
||||||
src/icons/qbt-theme/build-icons/node_modules/
|
|
||||||
src/icons/skin/build-icons/node_modules/
|
|
||||||
src/icons/skin/build-icons/icons/*.png
|
|
196
.travis.yml
196
.travis.yml
@@ -1,196 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
- osx
|
|
||||||
osx_image: xcode7.3
|
|
||||||
|
|
||||||
env:
|
|
||||||
matrix:
|
|
||||||
# Uncomment when Travis upgraded "Ubuntu 12.04 LTS" to a newer version whose repo will have a more up-to-date libtorrent package
|
|
||||||
#- lt_branch=dist gui=true
|
|
||||||
#- lt_branch=dist gui=false
|
|
||||||
- lt_branch=RC_1_0 gui=true build_system=cmake
|
|
||||||
- lt_branch=RC_1_0 gui=false build_system=cmake
|
|
||||||
- lt_branch=RC_1_0 gui=true build_system=qmake
|
|
||||||
- lt_branch=RC_1_0 gui=false build_system=qmake
|
|
||||||
global:
|
|
||||||
- secure: "OI9CUjj4lTb0HwwIZU5PbECU3hLlAL6KC8KsbwohG8/O3j5fLcnmDsK4Ad9us5cC39sS11Jcd1kDP2qRcCuST/glVNhLkcjKkiQerOfd5nQ/qL4JYfz/1mfP5mdpz9jHKzpLUIG+TXkbSTjP6VVmsb5KPT+3pKEdRFZB+Pu9+J8="
|
|
||||||
- coverity_branch: coverity_scan
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
allow_failures:
|
|
||||||
- env: lt_branch=RC_1_0 gui=true build_system=cmake
|
|
||||||
- env: lt_branch=RC_1_0 gui=false build_system=cmake
|
|
||||||
|
|
||||||
branches:
|
|
||||||
except:
|
|
||||||
- search_encoding_windows
|
|
||||||
- v2_9_x
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
email:
|
|
||||||
on_success: change
|
|
||||||
on_failure: change
|
|
||||||
|
|
||||||
cache:
|
|
||||||
ccache: true
|
|
||||||
directories:
|
|
||||||
- $HOME/hombebrew_cache
|
|
||||||
|
|
||||||
# opt-in Ubuntu Trusty
|
|
||||||
dist: trusty
|
|
||||||
# container-based builds
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
addons:
|
|
||||||
coverity_scan:
|
|
||||||
project:
|
|
||||||
name: "qbittorrent/qBittorrent"
|
|
||||||
description: "Build submitted via Travis CI"
|
|
||||||
build_command_prepend: "./bootstrap.sh && ./configure $qbtconf"
|
|
||||||
build_command: make
|
|
||||||
branch_pattern: $coverity_branch
|
|
||||||
notification_email: sledgehammer999@qbittorrent.org
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
# sources list: https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
#- boost-latest
|
|
||||||
- sourceline: 'ppa:qbittorrent-team/qbittorrent-stable'
|
|
||||||
- sourceline: 'ppa:beineri/opt-qt551-trusty'
|
|
||||||
- sourceline: 'ppa:adrozdoff/cmake'
|
|
||||||
packages:
|
|
||||||
# packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
|
|
||||||
- [autoconf, automake, colormake]
|
|
||||||
- [cmake, ninja-build]
|
|
||||||
- libssl-dev
|
|
||||||
- [libboost-dev, libboost-system-dev]
|
|
||||||
- libtorrent-rasterbar-dev
|
|
||||||
- [qt55base, qt55svg, qt55tools]
|
|
||||||
- [gcc-6, g++-6]
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
# only allow specific build for coverity scan, others will stop
|
|
||||||
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ] && ! [ "$TRAVIS_OS_NAME" = "linux" -a "$lt_branch" = "RC_1_0" -a "$gui" = true -a "$build_system" = "qmake" ]; then exit ; fi
|
|
||||||
|
|
||||||
- shopt -s expand_aliases
|
|
||||||
- alias make="colormake -j3" # Using nprocs/2 sometimes may fail (gcc is killed by system)
|
|
||||||
#- libt_path="$HOME/libt_install"
|
|
||||||
#- ltconf="$ltconf --prefix="$libt_path" --disable-geoip"
|
|
||||||
- qbt_path="$HOME/qbt_install"
|
|
||||||
- qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH="$libt_path/lib/pkgconfig":/opt/qt55/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
||||||
|
|
||||||
# options for specific branches
|
|
||||||
- if [ "$gui" = false ]; then qbtconf="$qbtconf --disable-gui" ; fi
|
|
||||||
- |
|
|
||||||
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
|
||||||
# setup virtual display for after_success target
|
|
||||||
if [ "$gui" = true ]; then export "DISPLAY=:99.0" && /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16 ; fi ;
|
|
||||||
|
|
||||||
# Qt 5
|
|
||||||
PATH=/opt/qt55/bin:${PATH}
|
|
||||||
|
|
||||||
if [ "$build_system" = "cmake" ]; then
|
|
||||||
COMPILER_VERSION=6
|
|
||||||
export CXX="${CXX}-${COMPILER_VERSION}" CC="${CC}-${COMPILER_VERSION}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# print settings
|
|
||||||
- echo $lt_branch
|
|
||||||
- echo $gui
|
|
||||||
- echo $build_system
|
|
||||||
- echo $ltconf
|
|
||||||
- echo $qbtconf
|
|
||||||
|
|
||||||
install:
|
|
||||||
#- |
|
|
||||||
#if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
|
||||||
# build libtorrent from source
|
|
||||||
#if [ "$lt_branch" != "dist" ]; then
|
|
||||||
#cd "$HOME" && pwd && git clone --depth 1 https://github.com/arvidn/libtorrent.git --branch $lt_branch
|
|
||||||
#cd libtorrent && ./autotool.sh && ./configure $ltconf && make install
|
|
||||||
#fi
|
|
||||||
#fi
|
|
||||||
- |
|
|
||||||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
||||||
# dependencies
|
|
||||||
brew update > /dev/null
|
|
||||||
brew outdated "pkg-config" || brew upgrade "pkg-config"
|
|
||||||
brew install colormake ccache zlib qt
|
|
||||||
PATH="/usr/local/opt/ccache/libexec:$PATH"
|
|
||||||
brew link --force zlib qt
|
|
||||||
|
|
||||||
wget https://builds.shiki.hu/homebrew/version
|
|
||||||
if ! cmp --quiet "version" "$HOME/hombebrew_cache/version" ; then
|
|
||||||
echo "Cached files are different from server. Downloading new ones."
|
|
||||||
# First delete old files
|
|
||||||
rm -r "$HOME/hombebrew_cache"
|
|
||||||
mkdir "$HOME/hombebrew_cache"
|
|
||||||
cp "version" $HOME/hombebrew_cache
|
|
||||||
cd "$HOME/hombebrew_cache"
|
|
||||||
wget https://builds.shiki.hu/homebrew/libtorrent-rasterbar.rb
|
|
||||||
wget https://builds.shiki.hu/homebrew/libtorrent-rasterbar-1.0.11+git20170910.6d5625e0ea.el_capitan.bottle.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Copy custom libtorrent bottle to homebrew's cache so it can find and install it
|
|
||||||
# Also install our custom libtorrent formula by passing the local path to it
|
|
||||||
# These 2 files are restored from Travis' cache.
|
|
||||||
cp "$HOME/hombebrew_cache/libtorrent-rasterbar-1.0.11+git20170910.6d5625e0ea.el_capitan.bottle.tar.gz" "$(brew --cache)"
|
|
||||||
brew install "$HOME/hombebrew_cache/libtorrent-rasterbar.rb"
|
|
||||||
|
|
||||||
if [ "$build_system" = "cmake" ]; then
|
|
||||||
brew outdated cmake || brew upgrade cmake
|
|
||||||
brew install ninja
|
|
||||||
|
|
||||||
ln -s /usr/local/opt/qt/mkspecs /usr/local/mkspecs
|
|
||||||
ln -s /usr/local/opt/qt/plugins /usr/local/plugins
|
|
||||||
fi
|
|
||||||
|
|
||||||
MY_CMAKE_OPENSSL_HINT="-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl/"
|
|
||||||
fi
|
|
||||||
- |
|
|
||||||
if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then
|
|
||||||
export use_ccache=true
|
|
||||||
ccache -V && ccache --show-stats && ccache --zero-stats
|
|
||||||
fi
|
|
||||||
|
|
||||||
script:
|
|
||||||
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ]; then exit ; fi # skip usual build when running coverity scan
|
|
||||||
- |
|
|
||||||
cd "$TRAVIS_BUILD_DIR"
|
|
||||||
if [ "$build_system" = "cmake" ]; then
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
cmake -DGUI=${gui} -DCMAKE_INSTALL_PREFIX="$qbt_path" "$MY_CMAKE_OPENSSL_HINT" \
|
|
||||||
-G "Ninja" -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE ..
|
|
||||||
BUILD_TOOL="ninja"
|
|
||||||
fi
|
|
||||||
if [ "$build_system" = "qmake" ]; then
|
|
||||||
./bootstrap.sh && ./configure $qbtconf
|
|
||||||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
||||||
sed -i "" -e "s/^\(CC.*&&\).*$/\1 $CC/" src/Makefile # workaround for Qt & ccache: https://bugreports.qt.io/browse/QTBUG-31034
|
|
||||||
sed -i "" -e "s/^\(CXX.*&&\).*$/\1 $CXX/" src/Makefile
|
|
||||||
sed -i "" -e 's/^\(CXXFLAGS.*\)$/\1 -Wno-unused-local-typedefs -Wno-inconsistent-missing-override/' src/Makefile
|
|
||||||
fi
|
|
||||||
BUILD_TOOL="make"
|
|
||||||
fi
|
|
||||||
- $BUILD_TOOL && $BUILD_TOOL install
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- if [ "$gui" = true ]; then qbt_exe="qbittorrent" ; else qbt_exe="qbittorrent-nox" ; fi
|
|
||||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then cd "$qbt_path/bin" ; fi
|
|
||||||
- |
|
|
||||||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
||||||
if [ "$build_system" = "qmake" ]; then
|
|
||||||
macdeployqt "$TRAVIS_BUILD_DIR/src/$qbt_exe.app"
|
|
||||||
cd "$TRAVIS_BUILD_DIR/src/$qbt_exe.app/Contents/MacOS"
|
|
||||||
else
|
|
||||||
cd "$qbt_path/$qbt_exe.app/Contents/MacOS"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
- ./$qbt_exe --version
|
|
||||||
|
|
||||||
after_script:
|
|
||||||
- if [ "$use_ccache" = true ]; then ccache --show-stats ; fi
|
|
19
.tx/config
19
.tx/config
@@ -1,19 +0,0 @@
|
|||||||
[main]
|
|
||||||
host = https://www.transifex.com
|
|
||||||
|
|
||||||
[qbittorrent.qbittorrent_master]
|
|
||||||
file_filter = src/lang/qbittorrent_<lang>.ts
|
|
||||||
lang_map = pt: pt_PT
|
|
||||||
source_file = src/lang/qbittorrent_en.ts
|
|
||||||
source_lang = en
|
|
||||||
type = QT
|
|
||||||
minimum_perc = 23
|
|
||||||
mode = developer
|
|
||||||
|
|
||||||
|
|
||||||
[qbittorrent.qbittorrentdesktop_master]
|
|
||||||
source_file = src/icons/qBittorrent.desktop
|
|
||||||
source_lang = en
|
|
||||||
type = DESKTOP
|
|
||||||
minimum_perc = 23
|
|
||||||
mode = developer
|
|
92
5B7CC9A2.asc
92
5B7CC9A2.asc
@@ -1,92 +0,0 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
Version: GnuPG v2
|
|
||||||
|
|
||||||
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
|
|
||||||
xdpwp07LYo2ilhMI8RnzmtoRmg==
|
|
||||||
=UBeB
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
137
AUTHORS
137
AUTHORS
@@ -1,140 +1,5 @@
|
|||||||
Current maintainer:
|
Author:
|
||||||
* Sledgehammer999 <sledgehammer999@qbittorrent.org>
|
|
||||||
|
|
||||||
Original author:
|
|
||||||
* Christophe Dumez <chris@qbittorrent.org>
|
* Christophe Dumez <chris@qbittorrent.org>
|
||||||
|
|
||||||
Contributors:
|
Contributors:
|
||||||
* Vladimir Golovnev <glassez@yandex.ru>
|
|
||||||
* Stefanos Antaris <santaris@csd.auth.gr>
|
|
||||||
* Mohammad Dib <mdib@qbittorrent.org>
|
|
||||||
* Mirco Chinelli <infinity89@fastwebmail.it>
|
|
||||||
* Ishan Arora <ishan@qbittorrent.org>
|
|
||||||
* Arnaud Demaizière <arnaud@qbittorrent.org>
|
* Arnaud Demaizière <arnaud@qbittorrent.org>
|
||||||
* Grigis Gaëtan <cipher16@gmail.com>
|
|
||||||
* Christian Kandeler <zambesi@users.sourceforge.net>
|
|
||||||
* Silvan Scherrer <silvan.scherrer@aroa.ch>
|
|
||||||
* Nick Tiskov <daymansmail@gmail.com>
|
|
||||||
|
|
||||||
Code from other projects:
|
|
||||||
* files src/qtsingleapplication/* src/lineedit/*
|
|
||||||
copyright: Nokia Corporation
|
|
||||||
license: LGPL
|
|
||||||
|
|
||||||
* files src/ico.cpp src/ico.h
|
|
||||||
copyright: Malte Starostik <malte@kde.org>
|
|
||||||
license: LGPL
|
|
||||||
|
|
||||||
* files src/search_engine/socks.py
|
|
||||||
copyright: Dan Haim <negativeiq@users.sourceforge.net>
|
|
||||||
license: BSD
|
|
||||||
|
|
||||||
* file src/stacktrace_win.h
|
|
||||||
copyright: Quassel Project
|
|
||||||
license: GPLv2/3
|
|
||||||
|
|
||||||
Images Authors:
|
|
||||||
* files: src/icons/skin/qbittorrent-tray.svg (and related pngs)
|
|
||||||
copyright: Provided by HVS <hvs linuxmail org> (raster first proposal) and Atif Afzal(@atfzl github) <atif5801@gmail.com> (vectorized and modified)
|
|
||||||
license: GPLv2+
|
|
||||||
|
|
||||||
* files: src/qbittorrent_file.ico src/icons/fileicon.svg
|
|
||||||
copyright: 'uknown.svg' (LGPLv3+) from Oxygen Icon Theme was used as base which was slightly modified and 'qbittorrent-tray.svg' (GPLv2+) was overlayed above it.
|
|
||||||
license: GPLv3+
|
|
||||||
|
|
||||||
* files: src/icons/*.png
|
|
||||||
copyright: Gnome Icon Theme
|
|
||||||
license: GPLv2
|
|
||||||
url: http://ftp.acc.umu.se/pub/GNOME/sources/gnome-icon-theme
|
|
||||||
|
|
||||||
* files: src/oxygen/*.png
|
|
||||||
copyright: Oxygen Icon Theme (KDE)
|
|
||||||
license: LGPL
|
|
||||||
url: http://www.oxygen-icons.org
|
|
||||||
|
|
||||||
* files: src/icons/flags/*.svg
|
|
||||||
copyright: lipis/flag-icon-css
|
|
||||||
license: MIT
|
|
||||||
url: https://github.com/lipis/flag-icon-css/
|
|
||||||
|
|
||||||
* files: src/icons/skin/*.png
|
|
||||||
files: src/menuicons/YYxYY/*.png
|
|
||||||
copyright: Mateusz Tobola <tobejodok@qbittorrent.org>
|
|
||||||
license: GPLv2
|
|
||||||
|
|
||||||
* file: src/icons/skin/tabs.gif
|
|
||||||
copyright: Greg Houston <gregory.houston@gmail.com>
|
|
||||||
license: MIT
|
|
||||||
|
|
||||||
* file: src/icons/skin/qbittorrent_mono*
|
|
||||||
copyright: Daniel Eguren <deguren@gmail.com>
|
|
||||||
license: LGPL
|
|
||||||
|
|
||||||
* file: src/search_engine/engines/btjunkie.png
|
|
||||||
copyright: Downloaded from btjunkie.org
|
|
||||||
|
|
||||||
* file: src/search_engine/engines/isohunt.png
|
|
||||||
copyright: Downloaded from isohunt.com
|
|
||||||
|
|
||||||
* file: src/search_engine/engines/mininova.png
|
|
||||||
copyright: Downloaded from mininova.org
|
|
||||||
|
|
||||||
* file: src/search_engine/engines/piratebay.png
|
|
||||||
copyright: Downloaded from thepiratebay.org
|
|
||||||
|
|
||||||
* file: src/search_engine/engines/torrentreactor.png
|
|
||||||
copyright: Downloaded from torrentreactor.net
|
|
||||||
|
|
||||||
* file: src/icons/oxygen/checked.png
|
|
||||||
copyright: Victor Buinsky <allok.victor@gmail.com>
|
|
||||||
|
|
||||||
* file: src/icons/skin/ratio.png
|
|
||||||
copyright: Fatcow Web Hosting
|
|
||||||
license: Creative Commons Attribution 3.0 License
|
|
||||||
url: http://www.fatcow.com/free-icons
|
|
||||||
|
|
||||||
Translations authors:
|
|
||||||
* files: src/lang/*.ts
|
|
||||||
* file: src/icons/qBittorrent.desktop
|
|
||||||
copyright:
|
|
||||||
- Arabic: SDERAWI (abz8868@msn.com), sn51234 (nesseyan@gmail.com) and Ibrahim Saed ibraheem_alex(Transifex)
|
|
||||||
- Armenian: Hrant Ohanyan (hrantohanyan@mail.am)
|
|
||||||
- Basque: Xabier Aramendi (azpidatziak@gmail.com)
|
|
||||||
- Belarusian: Mihas Varantsou (meequz@gmail.com)
|
|
||||||
- Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)
|
|
||||||
- Catalan: Francisco Luque Contreras (frannoe@ya.com)
|
|
||||||
- Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com)
|
|
||||||
- Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com) and 冥王歐西里斯 s8321414(Transifex)
|
|
||||||
- Croatian: Oliver Mucafir (oliver.untwist@gmail.com)
|
|
||||||
- Czech: Jirka Vilim (web@tets.cz) and Petr Cernobila abr(Transifex)
|
|
||||||
- Danish: Mathias Nielsen (comoneo@gmail.com)
|
|
||||||
- Dutch: Pieter Heyvaert (pieter_heyvaert@hotmail.com)
|
|
||||||
- English: Christophe Dumez (chris@qbittorrent.org)
|
|
||||||
- English(Australia): Robert Readman readmanr(Transifex)
|
|
||||||
- English(United Kingdom): Robert Readman readmanr(Transifex)
|
|
||||||
- Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net), Pekka Niemi (pekka.niemi@iki.fi) and Jiri Grönroos artnay(Transifex)
|
|
||||||
- French: Christophe Dumez (chris@qbittorrent.org)
|
|
||||||
- Galician: Marcos Lans (marcoslansgarza@gmail.com) and antiparvos(Transifex)
|
|
||||||
- Georgian: Beqa Arabuli (arabulibeqa@yahoo.com)
|
|
||||||
- German: Niels Hoffmann (zentralmaschine@users.sourceforge.net)
|
|
||||||
- Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net), Stephanos Antaris (santaris@csd.auth.gr), sledgehammer999(hammered999@gmail.com) and Γιάννης Ανθυμίδης Evropi(Transifex)
|
|
||||||
- Hebrew: David Deutsch (d.deffo@gmail.com)
|
|
||||||
- Hungarian: Majoros Péter (majoros.j.p@t-online.hu)
|
|
||||||
- Italian: bovirus (bovirus@live.it) and Matteo Sechi (bu17714@gmail.com)
|
|
||||||
- Japanese: Masato Hashimoto (cabezon.hashimoto@gmail.com)
|
|
||||||
- Korean: Jin Woo Sin (jin828sin@users.sourceforge.net)
|
|
||||||
- Lithuanian: Naglis Jonaitis (njonaitis@gmail.com)
|
|
||||||
- Norwegian: Tomaso
|
|
||||||
- Polish: Mariusz Fik (fisiu@opensuse.org)
|
|
||||||
- Portuguese: Sérgio Marques smarquespt(Transifex)
|
|
||||||
- Portuguese(Brazil): Nick Marinho (nickmarinho@gmail.com)
|
|
||||||
- Romanian: Obada Denis (obadadenis@users.sourceforge.net), Adrian Gabor Adriannho(Transifex) and Mihai Coman z0id(Transifex)
|
|
||||||
- Russian: Nick Khazov (m2k3d0n at users.sourceforge.net), Alexey Morsov (samurai@ricom.ru), Nick Tiskov Dayman(daymansmail (at) gmail (dot) com), Dmitry DmitryKX(Transifex) and kraleksandr kraleksandr(Transifex)
|
|
||||||
- Serbian: Anaximandar Milet (anaximandar at operamail.com)
|
|
||||||
- Slovak: helix84
|
|
||||||
- Spanish: Francisco Luque Contreras (frannoe@ya.com), Alfredo Monclus alfrix(Transifex) and José Antonio Moray moray33(Transifex)
|
|
||||||
- Swedish: Daniel Nylander (po@danielnylander.se) and Emil Hammarberg Ooglogput(Transifex)
|
|
||||||
- Turkish: Hasan Yilmaz (iletisim@hedefturkce.com)
|
|
||||||
- Ukrainian: Oleh Prypin (blaxpirit@gmail.com) and zubr139(Transifex)
|
|
||||||
- Vietnamese: Anh Phan ppanhh(Transifex)
|
|
||||||
license: GPLv2
|
|
||||||
|
@@ -1,56 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 3.5)
|
|
||||||
cmake_policy(VERSION 3.5)
|
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
|
|
||||||
include(FunctionReadVersion)
|
|
||||||
|
|
||||||
read_version("${CMAKE_CURRENT_SOURCE_DIR}/version.pri" VER_MAJOR VER_MINOR VER_BUGFIX VER_BUILD VER_STATUS)
|
|
||||||
# message(STATUS "Project version is: ${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}.${VER_BUILD} (${VER_STATUS})")
|
|
||||||
|
|
||||||
project(qBittorrent VERSION ${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}.${VER_BUILD})
|
|
||||||
|
|
||||||
set(PROJECT_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}")
|
|
||||||
|
|
||||||
if (NOT VER_BUILD EQUAL 0)
|
|
||||||
set(PROJECT_VERSION "${PROJECT_VERSION}.${VER_BUILD}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
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}")
|
|
||||||
|
|
||||||
if (UNIX AND NOT APPLE)
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
endif (UNIX AND NOT APPLE)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
include(winconf)
|
|
||||||
endif(WIN32)
|
|
||||||
|
|
||||||
# we need options here, because they are used not only in "src" subdir, but in the "dist" dir too
|
|
||||||
include(CMakeDependentOption)
|
|
||||||
|
|
||||||
option(SYSTEM_QTSINGLEAPPLICATION
|
|
||||||
"Use the system qtsingleapplication library or shipped one otherwise")
|
|
||||||
|
|
||||||
option(GUI "Allows to disable GUI for headless running. Disables QtDBus and the GeoIP Database" ON)
|
|
||||||
|
|
||||||
option(WEBUI "Allows to disable the WebUI." ON)
|
|
||||||
|
|
||||||
if (WIN32)
|
|
||||||
option(STACKTRACE_WIN "")
|
|
||||||
else (WIN32)
|
|
||||||
cmake_dependent_option(SYSTEMD "Install the systemd service file (headless only)" OFF
|
|
||||||
"NOT GUI" OFF)
|
|
||||||
cmake_dependent_option(DBUS "Enable use of QtDBus (GUI only)" ON "GUI" OFF)
|
|
||||||
endif(WIN32)
|
|
||||||
|
|
||||||
|
|
||||||
add_subdirectory(src)
|
|
||||||
add_subdirectory(dist)
|
|
File diff suppressed because it is too large
Load Diff
@@ -1,35 +0,0 @@
|
|||||||
# Filing an issue
|
|
||||||
|
|
||||||
### Must read
|
|
||||||
* If you aren't sure, you can ask on the [**forum**](http://forum.qbittorrent.org) or read our [**wiki**](http://wiki.qbittorrent.org) first.
|
|
||||||
* Do a quick **search**. Others might already reported the issue.
|
|
||||||
* Write in **English**!
|
|
||||||
* Provide **version** information: (You can find version numbers at menu `Help -> About -> Libraries`)
|
|
||||||
```
|
|
||||||
qBittorrent:
|
|
||||||
Qt:
|
|
||||||
libtorrent:
|
|
||||||
boost:
|
|
||||||
OS version:
|
|
||||||
```
|
|
||||||
* Provide **steps** to reproduce the problem, it will be easier to pinpoint the fault.
|
|
||||||
* **Screenshots**! A screenshot is worth a thousand words. just upload it. [(How?)](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests)
|
|
||||||
|
|
||||||
### Good to know
|
|
||||||
* **Be patient**. The dev team is small and resource limited. Devs finding their free time, analyzing the problem and fixing the issue, it all takes time. :clock3:
|
|
||||||
* If you can code, why not become a **contributor** by fixing the issue and open a pull request? :wink:
|
|
||||||
* Harsh words or threats won't help your situation. What's worse, your complain will (very likely) to be **ignored**. :fearful:
|
|
||||||
|
|
||||||
|
|
||||||
# Opening a pull request
|
|
||||||
|
|
||||||
### Must read
|
|
||||||
* Read our [**coding guidelines**](https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md). There are some scripts to help you: [uncrustify script](https://raw.githubusercontent.com/qbittorrent/qBittorrent/master/uncrustify.cfg), [astyle script](https://gist.github.com/Chocobo1/539cee860d1eef0acfa6), [(related thread)](https://github.com/qbittorrent/qBittorrent/issues/2192).
|
|
||||||
* Keep the title **short** and provide a **clear** description about what your pull request does.
|
|
||||||
* Provide **screenshots** for UI related changes.
|
|
||||||
* Keep your git commit history **clean** and **precise**. Commits like `xxx fixup` should not appear.
|
|
||||||
* If your commit fix a reported issue (for example #4134), add the following message to the commit `Closes #4134.`. Example [here](https://github.com/qbittorrent/qBittorrent/commit/a74bac20c4e8de9776bf9bb77fdc7526135d1988).
|
|
||||||
|
|
||||||
### Good to know
|
|
||||||
* **Search** pull request history! Others might already implemented your idea and is waiting to be merged (or got rejected already). Save your precious time by doing a search first.
|
|
||||||
* When resolving merge conflicts, do `git rebase <target_branch_name>`, don't do `git pull`. Then you can start fixing the conflicts. Here is a good explanation: [link](https://www.atlassian.com/git/tutorials/merging-vs-rebasing).
|
|
94
COPYING
94
COPYING
@@ -1,26 +1,12 @@
|
|||||||
qBittorrent is licensed under the GNU General Public License version 2 with the
|
GNU GENERAL PUBLIC LICENSE
|
||||||
addition of the following special exception:
|
Version 2, June 1991
|
||||||
|
|
||||||
In addition, as a special exception, the copyright holders give permission to
|
|
||||||
link this program with the OpenSSL project's "OpenSSL" library (or with
|
|
||||||
modified versions of it that use the same license as the "OpenSSL" library),
|
|
||||||
and distribute the linked executables. You must obey the GNU General Public
|
|
||||||
License in all respects for all of the code used other than "OpenSSL". If you
|
|
||||||
modify file(s), you may extend this exception to your version of the file(s),
|
|
||||||
but you are not obligated to do so. If you do not wish to do so, delete this
|
|
||||||
exception statement from your version.
|
|
||||||
|
|
||||||
----------
|
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 2, June 1991
|
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
Preamble
|
Preamble
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
The licenses for most software are designed to take away your
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
@@ -69,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
|
|||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
The precise terms and conditions for copying, distribution and
|
||||||
modification follow.
|
modification follow.
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
0. This License applies to any program or other work which contains
|
||||||
@@ -124,7 +110,7 @@ above, provided that you also meet all of these conditions:
|
|||||||
License. (Exception: if the Program itself is interactive but
|
License. (Exception: if the Program itself is interactive but
|
||||||
does not normally print such an announcement, your work based on
|
does not normally print such an announcement, your work based on
|
||||||
the Program is not required to print an announcement.)
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
These requirements apply to the modified work as a whole. If
|
||||||
identifiable sections of that work are not derived from the Program,
|
identifiable sections of that work are not derived from the Program,
|
||||||
and can be reasonably considered independent and separate works in
|
and can be reasonably considered independent and separate works in
|
||||||
@@ -182,7 +168,7 @@ access to copy from a designated place, then offering equivalent
|
|||||||
access to copy the source code from the same place counts as
|
access to copy the source code from the same place counts as
|
||||||
distribution of the source code, even though third parties are not
|
distribution of the source code, even though third parties are not
|
||||||
compelled to copy the source along with the object code.
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
except as expressly provided under this License. Any attempt
|
except as expressly provided under this License. Any attempt
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
@@ -239,7 +225,7 @@ impose that choice.
|
|||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
This section is intended to make thoroughly clear what is believed to
|
||||||
be a consequence of the rest of this License.
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
original copyright holder who places the Program under this License
|
original copyright holder who places the Program under this License
|
||||||
@@ -269,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
|
|||||||
of preserving the free status of all derivatives of our free software and
|
of preserving the free status of all derivatives of our free software and
|
||||||
of promoting the sharing and reuse of software generally.
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
NO WARRANTY
|
NO WARRANTY
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
@@ -291,4 +277,64 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
|||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
||||||
|
62
INSTALL
62
INSTALL
@@ -1,51 +1,43 @@
|
|||||||
qBittorrent - A BitTorrent client in C++ / Qt4
|
qBittorrent - A BitTorrent client in C++ / Qt4
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
1) Compile and install qBittorrent with Qt4 Graphical Interface
|
*** Necessary if qt3 is default on your system ***
|
||||||
|
export QTDIR=/usr/include/qt4
|
||||||
|
export PATH=$QTDIR/bin:$PATH
|
||||||
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
|
||||||
|
*** End ***
|
||||||
|
|
||||||
$ ./configure
|
./configure
|
||||||
$ make && make install
|
make && make install
|
||||||
$ qbittorrent
|
qbittorrent
|
||||||
|
|
||||||
will install and execute qBittorrent hopefully without any problems.
|
will install and execute qBittorrent hopefully without any problems.
|
||||||
|
|
||||||
Dependencies:
|
Dependencies:
|
||||||
- Qt >= 4.6.0 (libqtgui, libqtcore, libqtnetwork, libqtxml, libqtdbus/optional)
|
- Qt >= 4.3.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
|
||||||
|
|
||||||
- pkg-config executable
|
- rblibtorrent by Arvid Norberg (>= v0.13 REQUIRED)
|
||||||
|
-> http://www.qbittorrent.org/download.php (advised)
|
||||||
|
-> http://www.libtorrent.net
|
||||||
|
Be careful: another library (the one used by rTorrent) use the same name.
|
||||||
|
These are TWO different libraries and qBittorrent will only work with the one provided
|
||||||
|
on sourceforge (created by Arvid Norberg). The two libraries conflicts with each other.
|
||||||
|
|
||||||
- libtorrent-rasterbar by Arvid Norberg (>= 1.0.6)
|
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
|
||||||
-> http://www.libtorrent.net
|
|
||||||
Be careful: another library (the one used by rTorrent) uses a similar name.
|
|
||||||
|
|
||||||
- libboost >= 1.35.x (libboost-system)
|
- libcurl
|
||||||
|
|
||||||
- python >= 2.3 (needed by search engine)
|
- python >= 2.3 (needed by search engine)
|
||||||
* Run time only dependency
|
|
||||||
|
|
||||||
- geoip-database (optional)
|
- libmagick++ (advised, not required)
|
||||||
* If qBittorrent cannot find this database, it will try to resolve countries using the Internet but it will be a lot slower.
|
* Needed for favicons support (RSS / Search plugins)
|
||||||
* Run time only dependency
|
|
||||||
|
|
||||||
2) Compile and install qBittorrent without Qt4 Graphical interface
|
- libzzip (advised, not required)
|
||||||
|
* Needed for zip support (Search plugins)
|
||||||
$ ./configure --disable-gui
|
|
||||||
$ make && make install
|
|
||||||
$ qbittorrent
|
|
||||||
|
|
||||||
will install and execute qBittorrent hopefully without any problems.
|
|
||||||
|
|
||||||
Dependencies:
|
|
||||||
- Qt >= 4.4.0 (libqt-devel, libqtcore, libqtnetwork)
|
|
||||||
|
|
||||||
- pkg-config executable
|
|
||||||
|
|
||||||
- libtorrent-rasterbar by Arvid Norberg (>= v1.0.6)
|
|
||||||
-> http://www.libtorrent.net
|
|
||||||
Be careful: another library (the one used by rTorrent) uses a similar name.
|
|
||||||
|
|
||||||
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
|
|
||||||
|
|
||||||
|
NOTE FOR NON-KDE USERS:
|
||||||
|
- qt4-qtconfig package is advised when using other systems than KDE.
|
||||||
|
You can also change qBittorrent style to Cleanlooks (GNOME like)
|
||||||
|
|
||||||
DOCUMENTATION:
|
DOCUMENTATION:
|
||||||
Please note that there is a documentation with a "compiling howto" at http://wiki.qbittorrent.org.
|
Please note that there is a documentation with a "compiling howto" at http://wiki.qbittorrent.org.
|
||||||
|
34
README
Normal file
34
README
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
qBittorrent - A BitTorrent client in Qt4
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
Description:
|
||||||
|
********************************
|
||||||
|
qBittorrent is a bittorrent client programmed in C++ / Qt4 that uses
|
||||||
|
libtorrent (sometimes called rblibtorrent) by Arvid Norberg.
|
||||||
|
|
||||||
|
It aims to be a good alternative to all other bittorrent clients
|
||||||
|
out there. qBittorrent is fast, stable and provides unicode
|
||||||
|
support as well as many features.
|
||||||
|
|
||||||
|
Installation:
|
||||||
|
********************************
|
||||||
|
For installation, follow the instructions from INSTALL file, but simple:
|
||||||
|
|
||||||
|
./configure
|
||||||
|
make && make install
|
||||||
|
qbittorrent
|
||||||
|
|
||||||
|
will install and execute qBittorrent hopefully without any problem.
|
||||||
|
|
||||||
|
For more information please visit:
|
||||||
|
http://www.qbittorrent.org
|
||||||
|
|
||||||
|
Please report any bug (or feature request) to:
|
||||||
|
http://bugs.qbittorrent.org
|
||||||
|
|
||||||
|
You can also meet me (chris-qBT) on IRC:
|
||||||
|
#qbittorrent on irc.freenode.net
|
||||||
|
|
||||||
|
------------------------------------------
|
||||||
|
Christophe Dumez <chris@qbittorrent.org>
|
||||||
|
|
53
README.md
53
README.md
@@ -1,53 +0,0 @@
|
|||||||
qBittorrent - A BitTorrent client in Qt
|
|
||||||
------------------------------------------
|
|
||||||
|
|
||||||
[](https://travis-ci.org/qbittorrent/qBittorrent)
|
|
||||||
[](https://ci.appveyor.com/project/qbittorrent/qBittorrent)
|
|
||||||
[](https://scan.coverity.com/projects/5494)
|
|
||||||
********************************
|
|
||||||
### Description:
|
|
||||||
qBittorrent is a bittorrent client programmed in C++ / Qt that uses
|
|
||||||
libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.
|
|
||||||
|
|
||||||
It aims to be a good alternative to all other bittorrent clients
|
|
||||||
out there. qBittorrent is fast, stable and provides unicode
|
|
||||||
support as well as many features.
|
|
||||||
|
|
||||||
This product includes GeoLite data created by MaxMind, available from
|
|
||||||
https://www.maxmind.com/
|
|
||||||
|
|
||||||
### Installation:
|
|
||||||
For installation, follow the instructions from INSTALL file, but simple:
|
|
||||||
|
|
||||||
```
|
|
||||||
./configure
|
|
||||||
make && make install
|
|
||||||
qbittorrent
|
|
||||||
```
|
|
||||||
|
|
||||||
will install and execute qBittorrent hopefully without any problem.
|
|
||||||
|
|
||||||
### Public key:
|
|
||||||
Starting from v3.3.4 all source tarballs and binaries are signed.<br />
|
|
||||||
The key currently used is 4096R/[5B7CC9A2](https://pgp.mit.edu/pks/lookup?op=get&search=0x6E4A2D025B7CC9A2) with fingerprint `D8F3DA77AAC6741053599C136E4A2D025B7CC9A2`.<br />
|
|
||||||
You can also download it from [here](https://github.com/qbittorrent/qBittorrent/raw/master/5B7CC9A2.asc).<br />
|
|
||||||
**PREVIOUSLY** the following key was used to sign the v3.3.4 source tarballs and v3.3.4 Windows installer **only**: 4096R/[520EC6F6](https://pgp.mit.edu/pks/lookup?op=get&search=0xA1ACCAE4520EC6F6) with fingerprint `F4A5FD201B117B1C2AB590E2A1ACCAE4520EC6F6`.<br />
|
|
||||||
|
|
||||||
### Misc:
|
|
||||||
For more information please visit:
|
|
||||||
http://www.qbittorrent.org
|
|
||||||
|
|
||||||
or our wiki here:
|
|
||||||
http://wiki.qbittorrent.org
|
|
||||||
|
|
||||||
Use the forum for troubleshooting before reporting bugs:
|
|
||||||
http://forum.qbittorrent.org
|
|
||||||
|
|
||||||
Please report any bug (or feature request) to:
|
|
||||||
http://bugs.qbittorrent.org
|
|
||||||
|
|
||||||
You can also meet me (sledgehammer_999) on IRC:
|
|
||||||
`#qbittorrent on irc.freenode.net`
|
|
||||||
|
|
||||||
------------------------------------------
|
|
||||||
sledgehammer999 <sledgehammer999@qbittorrent.org>
|
|
64
TODO
64
TODO
@@ -1,2 +1,64 @@
|
|||||||
See https://blueprints.launchpad.net/qbittorrent/
|
// Easy
|
||||||
|
- Translations into as many languages as possible
|
||||||
|
- Use Launchpad/Rosetta for translations once it supports TS files
|
||||||
|
|
||||||
|
// Intermediate
|
||||||
|
- Port on MacOS, Windows (and create an installer for Windows) - Slow progress
|
||||||
|
- Add some transparency (menus,...), improve look / usabilty
|
||||||
|
- Skins support? (contact Mateusz)
|
||||||
|
|
||||||
|
// Harder
|
||||||
|
- Torrent scheduler ala µtorrent/Bitcomet
|
||||||
|
|
||||||
|
// Waiting for libtorrent
|
||||||
|
- Allow to prioritize torrents (may code this in qBittorrent?)
|
||||||
|
|
||||||
|
// Unsure
|
||||||
|
- Display the peers we are connected to for each torrent with infos (like flag, dl/up speeds, ...)
|
||||||
|
- Azureus spoofing to prevent ban from trackers?
|
||||||
|
- Option to shutdown computer when downloads are finished
|
||||||
|
- NAT checker/Tester
|
||||||
|
- Display hard drive space left?
|
||||||
|
- Make use of dbus on Linux for the single instance instead of socket communication?
|
||||||
|
(http://techbase.kde.org/Development/Tutorials/D-Bus/Accessing_Interfaces)
|
||||||
|
- When favicon can't be downloaded, try to parse the webpage for:
|
||||||
|
<link rel="icon" href="http://example.com/favicon.ico" type="image/vnd.microsoft.icon">
|
||||||
|
* Be carefull, the link can be relative
|
||||||
|
|
||||||
|
// in v1.2.0
|
||||||
|
- Allow user to organize the downloads into categories/folders?
|
||||||
|
|
||||||
|
// in v1.1.0
|
||||||
|
- Tabs support in search
|
||||||
|
- Allow to hide columns?
|
||||||
|
- Allow to scan multiple directories? (useful?)
|
||||||
|
- Web interface (turbogears? php? python?)
|
||||||
|
* Webserver? Try to write a webserver as a plugin for qBittorrent in Python
|
||||||
|
* http://fragments.turtlemeat.com/pythonwebserver.php
|
||||||
|
- improve and test tracker authentication code (remember login/pass) (need a tracker to test this)
|
||||||
|
- support zipped torrents? (useful?)
|
||||||
|
- Allow to limit the number of downloading torrents simultaneously (other are paused until a download finishes)
|
||||||
|
- Improve search plugin install (choose in a list taken from plugins.qbittorrent.org)
|
||||||
|
- Display the number of DHT node if possible
|
||||||
|
- When adding a duplicate torrent, check if the trackers are different from the existing one and ask the user if he wants to add them
|
||||||
|
- Display in torrent addition dialog:
|
||||||
|
* free disk space on selected drive
|
||||||
|
* free disk space after torrent download (and/or torrent size)
|
||||||
|
- Start minimized option in program preferences
|
||||||
|
- In finished list, replace "Seeds/Leechs" column by "Leechers" because Seeds are always 0.
|
||||||
|
- Allow to change action on double-click
|
||||||
|
-> in download list
|
||||||
|
-> in seeding list
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
- Check search engine cpu usage
|
||||||
|
|
||||||
|
rc9->rc10 changelog:
|
||||||
|
- FEATURE: Greatly improved ETA calculation algorithm (use GASA)
|
||||||
|
- BUGFIX: Fixed proxy host max length in preferences
|
||||||
|
- BUGFIX: Added a 3 minutes search engine timeout
|
||||||
|
- BUGFIX: Limit search engine plugins to 10 result pages
|
||||||
|
- BUGFIX: Fixed nbResults != 0 when clearing results while a search is running
|
||||||
|
- BUGFIX: Fixed possible problem when closing to systray and cancelling app exit
|
||||||
|
- BUGFIX: Fixed preview when path contains spaces
|
||||||
|
- COSMETIC: Use more skin colors instead of hard coded ones
|
||||||
|
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
aclocal -I m4
|
|
||||||
autoconf
|
|
File diff suppressed because it is too large
Load Diff
1421
build-aux/config.guess
vendored
1421
build-aux/config.guess
vendored
File diff suppressed because it is too large
Load Diff
1807
build-aux/config.sub
vendored
1807
build-aux/config.sub
vendored
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,215 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
# Common wrapper for a few potentially missing GNU programs.
|
|
||||||
|
|
||||||
scriptversion=2013-10-28.13; # UTC
|
|
||||||
|
|
||||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
|
||||||
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
# configuration script generated by Autoconf, you may include it under
|
|
||||||
# the same distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
if test $# -eq 0; then
|
|
||||||
echo 1>&2 "Try '$0 --help' for more information"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
|
|
||||||
--is-lightweight)
|
|
||||||
# Used by our autoconf macros to check whether the available missing
|
|
||||||
# script is modern enough.
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
--run)
|
|
||||||
# Back-compat with the calling convention used by older automake.
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
|
|
||||||
-h|--h|--he|--hel|--help)
|
|
||||||
echo "\
|
|
||||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
|
||||||
|
|
||||||
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
|
|
||||||
to PROGRAM being missing or too old.
|
|
||||||
|
|
||||||
Options:
|
|
||||||
-h, --help display this help and exit
|
|
||||||
-v, --version output version information and exit
|
|
||||||
|
|
||||||
Supported PROGRAM values:
|
|
||||||
aclocal autoconf autoheader autom4te automake makeinfo
|
|
||||||
bison yacc flex lex help2man
|
|
||||||
|
|
||||||
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
|
|
||||||
'g' are ignored when checking the name.
|
|
||||||
|
|
||||||
Send bug reports to <bug-automake@gnu.org>."
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
|
|
||||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
|
||||||
echo "missing $scriptversion (GNU Automake)"
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
|
|
||||||
-*)
|
|
||||||
echo 1>&2 "$0: unknown '$1' option"
|
|
||||||
echo 1>&2 "Try '$0 --help' for more information"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Run the given program, remember its exit status.
|
|
||||||
"$@"; st=$?
|
|
||||||
|
|
||||||
# If it succeeded, we are done.
|
|
||||||
test $st -eq 0 && exit 0
|
|
||||||
|
|
||||||
# Also exit now if we it failed (or wasn't found), and '--version' was
|
|
||||||
# passed; such an option is passed most likely to detect whether the
|
|
||||||
# program is present and works.
|
|
||||||
case $2 in --version|--help) exit $st;; esac
|
|
||||||
|
|
||||||
# Exit code 63 means version mismatch. This often happens when the user
|
|
||||||
# tries to use an ancient version of a tool on a file that requires a
|
|
||||||
# minimum version.
|
|
||||||
if test $st -eq 63; then
|
|
||||||
msg="probably too old"
|
|
||||||
elif test $st -eq 127; then
|
|
||||||
# Program was missing.
|
|
||||||
msg="missing on your system"
|
|
||||||
else
|
|
||||||
# Program was found and executed, but failed. Give up.
|
|
||||||
exit $st
|
|
||||||
fi
|
|
||||||
|
|
||||||
perl_URL=http://www.perl.org/
|
|
||||||
flex_URL=http://flex.sourceforge.net/
|
|
||||||
gnu_software_URL=http://www.gnu.org/software
|
|
||||||
|
|
||||||
program_details ()
|
|
||||||
{
|
|
||||||
case $1 in
|
|
||||||
aclocal|automake)
|
|
||||||
echo "The '$1' program is part of the GNU Automake package:"
|
|
||||||
echo "<$gnu_software_URL/automake>"
|
|
||||||
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
|
|
||||||
echo "<$gnu_software_URL/autoconf>"
|
|
||||||
echo "<$gnu_software_URL/m4/>"
|
|
||||||
echo "<$perl_URL>"
|
|
||||||
;;
|
|
||||||
autoconf|autom4te|autoheader)
|
|
||||||
echo "The '$1' program is part of the GNU Autoconf package:"
|
|
||||||
echo "<$gnu_software_URL/autoconf/>"
|
|
||||||
echo "It also requires GNU m4 and Perl in order to run:"
|
|
||||||
echo "<$gnu_software_URL/m4/>"
|
|
||||||
echo "<$perl_URL>"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
give_advice ()
|
|
||||||
{
|
|
||||||
# Normalize program name to check for.
|
|
||||||
normalized_program=`echo "$1" | sed '
|
|
||||||
s/^gnu-//; t
|
|
||||||
s/^gnu//; t
|
|
||||||
s/^g//; t'`
|
|
||||||
|
|
||||||
printf '%s\n' "'$1' is $msg."
|
|
||||||
|
|
||||||
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
|
|
||||||
case $normalized_program in
|
|
||||||
autoconf*)
|
|
||||||
echo "You should only need it if you modified 'configure.ac',"
|
|
||||||
echo "or m4 files included by it."
|
|
||||||
program_details 'autoconf'
|
|
||||||
;;
|
|
||||||
autoheader*)
|
|
||||||
echo "You should only need it if you modified 'acconfig.h' or"
|
|
||||||
echo "$configure_deps."
|
|
||||||
program_details 'autoheader'
|
|
||||||
;;
|
|
||||||
automake*)
|
|
||||||
echo "You should only need it if you modified 'Makefile.am' or"
|
|
||||||
echo "$configure_deps."
|
|
||||||
program_details 'automake'
|
|
||||||
;;
|
|
||||||
aclocal*)
|
|
||||||
echo "You should only need it if you modified 'acinclude.m4' or"
|
|
||||||
echo "$configure_deps."
|
|
||||||
program_details 'aclocal'
|
|
||||||
;;
|
|
||||||
autom4te*)
|
|
||||||
echo "You might have modified some maintainer files that require"
|
|
||||||
echo "the 'autom4te' program to be rebuilt."
|
|
||||||
program_details 'autom4te'
|
|
||||||
;;
|
|
||||||
bison*|yacc*)
|
|
||||||
echo "You should only need it if you modified a '.y' file."
|
|
||||||
echo "You may want to install the GNU Bison package:"
|
|
||||||
echo "<$gnu_software_URL/bison/>"
|
|
||||||
;;
|
|
||||||
lex*|flex*)
|
|
||||||
echo "You should only need it if you modified a '.l' file."
|
|
||||||
echo "You may want to install the Fast Lexical Analyzer package:"
|
|
||||||
echo "<$flex_URL>"
|
|
||||||
;;
|
|
||||||
help2man*)
|
|
||||||
echo "You should only need it if you modified a dependency" \
|
|
||||||
"of a man page."
|
|
||||||
echo "You may want to install the GNU Help2man package:"
|
|
||||||
echo "<$gnu_software_URL/help2man/>"
|
|
||||||
;;
|
|
||||||
makeinfo*)
|
|
||||||
echo "You should only need it if you modified a '.texi' file, or"
|
|
||||||
echo "any other file indirectly affecting the aspect of the manual."
|
|
||||||
echo "You might want to install the Texinfo package:"
|
|
||||||
echo "<$gnu_software_URL/texinfo/>"
|
|
||||||
echo "The spurious makeinfo call might also be the consequence of"
|
|
||||||
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
|
|
||||||
echo "want to install GNU make:"
|
|
||||||
echo "<$gnu_software_URL/make/>"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "You might have modified some files without having the proper"
|
|
||||||
echo "tools for further handling them. Check the 'README' file, it"
|
|
||||||
echo "often tells you about the needed prerequisites for installing"
|
|
||||||
echo "this package. You may also peek at any GNU archive site, in"
|
|
||||||
echo "case some other package contains this missing '$1' program."
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
give_advice "$1" | sed -e '1s/^/WARNING: /' \
|
|
||||||
-e '2,$s/^/ /' >&2
|
|
||||||
|
|
||||||
# Propagate the correct exit status (expected to be 127 for a program
|
|
||||||
# not found, 63 for a program that failed due to version mismatch).
|
|
||||||
exit $st
|
|
||||||
|
|
||||||
# Local variables:
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
File diff suppressed because it is too large
Load Diff
@@ -1,127 +0,0 @@
|
|||||||
# - 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)
|
|
||||||
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::LibTorrent)
|
|
||||||
add_library(LibtorrentRasterbar::LibTorrent UNKNOWN IMPORTED)
|
|
||||||
|
|
||||||
set_target_properties(LibtorrentRasterbar::LibTorrent 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()
|
|
@@ -1,94 +0,0 @@
|
|||||||
# - 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(QT4_FOUND)
|
|
||||||
message(STATUS "Looking for Qt4 single application library")
|
|
||||||
FIND_PATH(QTSINGLEAPPLICATION_INCLUDE_DIR QtSingleApplication
|
|
||||||
# standard locations
|
|
||||||
/usr/include
|
|
||||||
/usr/include/QtSolutions
|
|
||||||
# qt4 location except mac's frameworks
|
|
||||||
"${QT_INCLUDE_DIR}/QtSolutions"
|
|
||||||
# mac's frameworks
|
|
||||||
${FRAMEWORK_INCLUDE_DIR}/QtSolutions
|
|
||||||
)
|
|
||||||
|
|
||||||
SET(QTSINGLEAPPLICATION_NAMES ${QTSINGLEAPPLICATION_NAMES}
|
|
||||||
QtSolutions_SingleApplication-2.6 libQtSolutions_SingleApplication-2.6)
|
|
||||||
FIND_LIBRARY(QTSINGLEAPPLICATION_LIBRARY
|
|
||||||
NAMES ${QTSINGLEAPPLICATION_NAMES}
|
|
||||||
PATHS ${QT_LIBRARY_DIR}
|
|
||||||
)
|
|
||||||
ELSEIF(Qt5Core_FOUND)
|
|
||||||
message(STATUS "Looking for Qt5 single application library")
|
|
||||||
FOREACH(TOP_INCLUDE_PATH in ${Qt5Core_INCLUDE_DIRS} ${FRAMEWORK_INCLUDE_DIR})
|
|
||||||
FIND_PATH(QTSINGLEAPPLICATION_INCLUDE_DIR QtSingleApplication ${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}
|
|
||||||
)
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
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)
|
|
||||||
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)
|
|
||||||
|
|
||||||
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)
|
|
@@ -1,26 +0,0 @@
|
|||||||
#######
|
|
||||||
# Find systemd service dir
|
|
||||||
# sets variables
|
|
||||||
# SYSTEMD_FOUND
|
|
||||||
# SYSTEMD_SERVICES_INSTALL_DIR
|
|
||||||
|
|
||||||
find_package(PkgConfig QUIET REQUIRED)
|
|
||||||
|
|
||||||
if (NOT SYSTEMD_FOUND)
|
|
||||||
pkg_check_modules(SYSTEMD "systemd")
|
|
||||||
endif(NOT SYSTEMD_FOUND)
|
|
||||||
|
|
||||||
if (SYSTEMD_FOUND AND "${SYSTEMD_SERVICES_INSTALL_DIR}" STREQUAL "")
|
|
||||||
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE}
|
|
||||||
--variable=systemdsystemunitdir systemd
|
|
||||||
OUTPUT_VARIABLE SYSTEMD_SERVICES_INSTALL_DIR)
|
|
||||||
string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_SERVICES_INSTALL_DIR
|
|
||||||
"${SYSTEMD_SERVICES_INSTALL_DIR}")
|
|
||||||
elseif (NOT SYSTEMD_FOUND AND SYSTEMD_SERVICES_INSTALL_DIR)
|
|
||||||
message (FATAL_ERROR "Variable SYSTEMD_SERVICES_INSTALL_DIR is\
|
|
||||||
defined, but we can't find systemd using pkg-config")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (SYSTEMD_FOUND)
|
|
||||||
message(STATUS "systemd services install dir: ${SYSTEMD_SERVICES_INSTALL_DIR}")
|
|
||||||
endif(SYSTEMD_FOUND)
|
|
@@ -1,28 +0,0 @@
|
|||||||
# 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()
|
|
@@ -1,38 +0,0 @@
|
|||||||
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()
|
|
@@ -1,49 +0,0 @@
|
|||||||
###############################################################
|
|
||||||
#
|
|
||||||
# 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)
|
|
@@ -1,28 +0,0 @@
|
|||||||
# - macro similar to target_link_libraries, which links Qt components
|
|
||||||
# names of the components are pased 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()
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user