You've already forked qBittorrent
							
							
				mirror of
				https://github.com/qbittorrent/qBittorrent
				synced 2025-10-30 23:30:54 +01:00 
			
		
		
		
	Compare commits
	
		
			262 Commits
		
	
	
		
			v4_0_x
			...
			release-3.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 0795320086 | ||
|   | bd6877a0bd | ||
|   | b47292c39f | ||
|   | 3d2b1b876b | ||
|   | 843472e663 | ||
|   | e952e3167e | ||
|   | 67f05edf71 | ||
|   | 3ab76cb985 | ||
|   | 509d97b0ad | ||
|   | 67ae08df3c | ||
|   | 38de6b1e41 | ||
|   | 72b179805d | ||
|   | beeda5e0b2 | ||
|   | 356db2f2f7 | ||
|   | 19acbf587f | ||
|   | 5eee3f7357 | ||
|   | 8f990d5d7e | ||
|   | f0ec94c31c | ||
|   | e37dfa96f9 | ||
|   | 4b48db3273 | ||
|   | 545002a809 | ||
|   | e2e9470e10 | ||
|   | 0bf1abba6a | ||
|   | 24165856e9 | ||
|   | 657f0640b9 | ||
|   | faffefc4ff | ||
|   | 0619aacf1f | ||
|   | 9edbbb6473 | ||
|   | 87ee720c0c | ||
|   | b7ca036bc3 | ||
|   | c4442c98b9 | ||
|   | fee8036a7a | ||
|   | 94bd4308c7 | ||
|   | 5e5785435a | ||
|   | d7f02a7ee7 | ||
|   | e6480f9dff | ||
|   | e9f6cfc2e8 | ||
|   | 4f68d263d4 | ||
|   | 6a672472a2 | ||
|   | 3590ac2997 | ||
|   | 98fe5e11dd | ||
|   | 9df5c0292b | ||
|   | 1f2d25a1ff | ||
|   | f1dd7a091c | ||
|   | 5457bde8d0 | ||
|   | 2e325d9506 | ||
|   | 0264a7bf58 | ||
|   | 32fe930b88 | ||
|   | 72883ffb73 | ||
|   | f2c24dd8c3 | ||
|   | 8904139c6d | ||
|   | 571f46886f | ||
|   | 0cd691e167 | ||
|   | 4f65e2d468 | ||
|   | 35981f6ef5 | ||
|   | dc493880f3 | ||
|   | 872e78ca21 | ||
|   | 7b601796d7 | ||
|   | 09ef552aea | ||
|   | b4c9cae0d1 | ||
|   | 6d2a0ae83b | ||
|   | 238a925000 | ||
|   | cce01cfb8e | ||
|   | b2db1972f3 | ||
|   | 8b851fe2b9 | ||
|   | e3c9488fb0 | ||
|   | c27fb110f8 | ||
|   | ec61f24099 | ||
|   | 130ee5a71e | ||
|   | cb3e7e6bd6 | ||
|   | 7fd65d5428 | ||
|   | 442f521bf5 | ||
|   | 016052aea1 | ||
|   | 411982e2b0 | ||
|   | 4b93ccd4e4 | ||
|   | 6603a8947a | ||
|   | 031e354577 | ||
|   | ec7fb331e0 | ||
|   | a232b77104 | ||
|   | 8c11245469 | ||
|   | 60857d3b8e | ||
|   | 2fe6b76968 | ||
|   | 6c7350fce0 | ||
|   | c770f4d0bc | ||
|   | 876e96911f | ||
|   | 5620fd120e | ||
|   | ea7f6046b4 | ||
|   | fddac5d679 | ||
|   | 2c4bc68af1 | ||
|   | 7676f49612 | ||
|   | e879279019 | ||
|   | 84b7680718 | ||
|   | be180140a3 | ||
|   | c051c279d4 | ||
|   | 964dcc4d8a | ||
|   | 64cf93b889 | ||
|   | 365737afe1 | ||
|   | 2cf14f0120 | ||
|   | 46bb25ba9f | ||
|   | ee5a72c570 | ||
|   | 18b56f4d0a | ||
|   | f626276218 | ||
|   | e28554f85c | ||
|   | a0a3447b2e | ||
|   | 4049ca7308 | ||
|   | c28151ba92 | ||
|   | 81e1a050a2 | ||
|   | 34d5824c4a | ||
|   | bb875df400 | ||
|   | 61f47d366a | ||
|   | 8347eb157d | ||
|   | dd22c9b138 | ||
|   | 7f6ad55042 | ||
|   | 55b06ab9ba | ||
|   | 21f0a5eb76 | ||
|   | 16ed11623f | ||
|   | c184cf8d7d | ||
|   | 6a90214eb2 | ||
|   | 226ec0610a | ||
|   | 694bd7cb95 | ||
|   | 9e807e7151 | ||
|   | 78fe7fcf9d | ||
|   | c2465f931e | ||
|   | 8d50325961 | ||
|   | 570a651a59 | ||
|   | 0eaa2aeef2 | ||
|   | 2c7e309493 | ||
|   | ded3cf5798 | ||
|   | 4edac3e974 | ||
|   | 53885fb5e4 | ||
|   | 3942c095f6 | ||
|   | 94be3b930d | ||
|   | 09bc14cc57 | ||
|   | 51b93b4284 | ||
|   | 9c50ea14cb | ||
|   | 42a74ea78e | ||
|   | 1ac68a9192 | ||
|   | 29b5d460ea | ||
|   | a441bca4de | ||
|   | e2da3f2ebd | ||
|   | f235d412f8 | ||
|   | 60b103b062 | ||
|   | 0fdb23098b | ||
|   | 51c296ac69 | ||
|   | a120842ba2 | ||
|   | 8911de9349 | ||
|   | 013a1b8403 | ||
|   | 1492a24391 | ||
|   | bf1559320b | ||
|   | d5648a67ae | ||
|   | a6ec82682d | ||
|   | bd359ad498 | ||
|   | 458f48b290 | ||
|   | a0ae21148a | ||
|   | 5dc9b5c2dd | ||
|   | 48175bbb85 | ||
|   | 3b03bb286e | ||
|   | 23fdf3a0bc | ||
|   | 4cf7618c52 | ||
|   | 6fd9413dae | ||
|   | 120d073a04 | ||
|   | 8fa2adb6fc | ||
|   | 70105d5834 | ||
|   | 05961faf42 | ||
|   | 386706f05b | ||
|   | 1813e96a42 | ||
|   | eaf6e47391 | ||
|   | 8ba82064cd | ||
|   | 5d5a0de694 | ||
|   | 145180c2a1 | ||
|   | 50881b9972 | ||
|   | a115932bc1 | ||
|   | c7fd0fbe45 | ||
|   | d513d002cc | ||
|   | a570bd5e2c | ||
|   | bdacfd540c | ||
|   | c89b9edf27 | ||
|   | 0fdf788624 | ||
|   | f0ae30070b | ||
|   | 8fb8f4b467 | ||
|   | c3a2e50191 | ||
|   | b045b5ebf7 | ||
|   | 6436152c75 | ||
|   | 9c3ae53330 | ||
|   | acd5fcfb00 | ||
|   | 9a6f8ab402 | ||
|   | 0f854014af | ||
|   | a11175afba | ||
|   | c5776c3bf1 | ||
|   | 19d566253f | ||
|   | 0d59d6a03e | ||
|   | c7b2ee367f | ||
|   | 510ec029ea | ||
|   | 1f2daed9d6 | ||
|   | 08b854ce74 | ||
|   | 6b34803c59 | ||
|   | fca224b9d0 | ||
|   | 4f5009351f | ||
|   | c1f77d45ab | ||
|   | 60f0447603 | ||
|   | 6ae208a661 | ||
|   | 781c8034a5 | ||
|   | 4cf8359257 | ||
|   | 3ed4de3043 | ||
|   | a374b99ba2 | ||
|   | 601734a59b | ||
|   | 69cc97c3dd | ||
|   | 226f74a866 | ||
|   | cf35392cd2 | ||
|   | 27319e9e64 | ||
|   | 69b8544e26 | ||
|   | 41e5dc8911 | ||
|   | ba1ffa4e54 | ||
|   | 4edc073373 | ||
|   | 1f00d2e5d7 | ||
|   | d87e42ba00 | ||
|   | 975b1d5257 | ||
|   | 5f84363afb | ||
|   | 545c526e2f | ||
|   | 06fcc57619 | ||
|   | 06c6a444c9 | ||
|   | 8474d0d199 | ||
|   | 0f4610c127 | ||
|   | d753988729 | ||
|   | a6b948077a | ||
|   | 3276cc4987 | ||
|   | 71557fe784 | ||
|   | 29fc5bc80d | ||
|   | db07551e4c | ||
|   | 8f6eb795e3 | ||
|   | 0a37799e6e | ||
|   | 76d6d9a4f9 | ||
|   | 0c8abd0abb | ||
|   | ddc8420810 | ||
|   | a4ff039abc | ||
|   | c8be062e19 | ||
|   | 29443a2c10 | ||
|   | e402556e91 | ||
|   | 4ed4ebcdb7 | ||
|   | a280467270 | ||
|   | 9b1090332b | ||
|   | 18a520c9f9 | ||
|   | af871ef8af | ||
|   | 3af7eb8e03 | ||
|   | 3439300cda | ||
|   | a8027565c9 | ||
|   | 3d4e1a8127 | ||
|   | 7b6a1a1955 | ||
|   | 3f8dc60680 | ||
|   | 9be449dd7f | ||
|   | c46f2ba097 | ||
|   | c2c441ed08 | ||
|   | c1e52fa1cd | ||
|   | fbed5dc606 | ||
|   | 97978068c6 | ||
|   | 006e34880a | ||
|   | 1fd5c5d8b5 | ||
|   | 68ac9fda2d | ||
|   | c5d807ef65 | ||
|   | e17f10ae6b | ||
|   | 78c5d1c12f | ||
|   | 26fb54299b | 
| @@ -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 | ||||
							
								
								
									
										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) | ||||
|  | ||||
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -17,7 +17,6 @@ Makefile* | ||||
|  | ||||
| # Generated MOC, resource and UI files | ||||
| moc_*.cpp | ||||
| moc_*.h | ||||
| qrc_*.cpp | ||||
| ui_*.h | ||||
| *.moc | ||||
| @@ -31,6 +30,3 @@ src/qbittorrent.app | ||||
| 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 | ||||
|   | ||||
							
								
								
									
										175
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										175
									
								
								.travis.yml
									
									
									
									
									
								
							| @@ -3,26 +3,21 @@ language: cpp | ||||
| os: | ||||
|   - linux | ||||
|   - osx | ||||
| osx_image: xcode7.3 | ||||
| osx_image: xcode7 | ||||
|  | ||||
| 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 | ||||
|     - lt_branch=RC_1_0 qt=5 gui=true | ||||
|     - lt_branch=RC_1_0 qt=5 gui=false | ||||
|     - lt_branch=RC_1_0 qt=4 gui=true | ||||
|     - lt_branch=RC_1_0 qt=4 gui=false | ||||
|   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 | ||||
| @@ -33,15 +28,16 @@ notifications: | ||||
|     on_success: change | ||||
|     on_failure: change | ||||
|  | ||||
| cache: | ||||
|   ccache: true | ||||
|   directories: | ||||
|     - $HOME/hombebrew_cache | ||||
| # container-based builds | ||||
| #sudo: false | ||||
| # TODO: osx builder does not enable cache yet, see: https://github.com/travis-ci/travis-ci/issues/4011 | ||||
| #cache: | ||||
|   #directories: | ||||
|     #- $HOME/.ccache | ||||
|  | ||||
| # opt-in Ubuntu Trusty | ||||
| sudo: required | ||||
| dist: trusty | ||||
| # container-based builds | ||||
| sudo: false | ||||
|  | ||||
| addons: | ||||
|   coverity_scan: | ||||
| @@ -53,150 +49,95 @@ addons: | ||||
|     branch_pattern: $coverity_branch | ||||
|     notification_email: sledgehammer999@qbittorrent.org | ||||
|   apt: | ||||
|     sources: | ||||
|     #sources: | ||||
|     # sources list: https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json | ||||
|       - ubuntu-toolchain-r-test | ||||
|     #- 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] | ||||
|     - autoconf | ||||
|     - automake | ||||
|     - colormake | ||||
|     - libssl-dev | ||||
|       - [libboost-dev, libboost-system-dev] | ||||
|       - libtorrent-rasterbar-dev | ||||
|       - [qt55base, qt55svg, qt55tools] | ||||
|       - [gcc-6, g++-6] | ||||
|     - libboost-dev | ||||
|     - libboost-system-dev | ||||
|     # uncomment when Travis upgraded "Ubuntu 12.04 LTS" to a newer version whose repo will have a more up-to-date libtorrent package | ||||
|     #- libtorrent-rasterbar6 | ||||
|  | ||||
| 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 | ||||
|   - if [ "$TRAVIS_BRANCH" = "$coverity_branch" ] && ! [ "$TRAVIS_OS_NAME" = "linux" -a "$lt_branch" = "RC_1_0" -a "$gui" = true ]; 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" | ||||
|   - | | ||||
|     if [ "$TRAVIS_OS_NAME" = "linux" ]; then | ||||
|       qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH=/opt/qt55/lib/pkgconfig:$PKG_CONFIG_PATH" | ||||
|     else | ||||
|       qbtconf="$qbtconf --prefix="$qbt_path"" | ||||
|     fi | ||||
|   - qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH="$libt_path/lib/pkgconfig":$PKG_CONFIG_PATH" | ||||
|  | ||||
|   # options for specific branches | ||||
|   - if [ "$qt" = 4 ]; then qbtconf="$qbtconf --with-qt4" ; fi | ||||
|   - if [ "$gui" = false ]; then qbtconf="$qbtconf --disable-gui" ; fi | ||||
|   - | | ||||
|     if [ "$TRAVIS_OS_NAME" = "linux" ]; then | ||||
|       # ccache | ||||
|       #if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then | ||||
|         #dpkg-query -L ccache && export PATH="/usr/lib/ccache/:$PATH" && export use_ccache=true ; | ||||
|         #ccache -V && ccache --show-stats && ccache --zero-stats ; | ||||
|       #fi ; | ||||
|  | ||||
|       # 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 | ||||
|   - | | ||||
|     if [ "$TRAVIS_OS_NAME" = "osx" ]; then | ||||
|       qbtconf="$qbtconf --disable-qt-dbus" ; | ||||
|     fi | ||||
|  | ||||
|   # print settings | ||||
|   - echo $lt_branch | ||||
|   - echo $gui | ||||
|   - echo $build_system | ||||
|   - echo $ltconf | ||||
|   - echo $qbtconf | ||||
|  | ||||
| install: | ||||
|   #- | | ||||
|     #if [ "$TRAVIS_OS_NAME" = "linux" ]; then | ||||
|   - | | ||||
|     if [ "$TRAVIS_OS_NAME" = "linux" ]; then | ||||
|       # libtorrent | ||||
|       sudo add-apt-repository --yes ppa:qbittorrent-team/qbittorrent-stable ; | ||||
|       sudo apt-get update -qq ; | ||||
|       sudo apt-get install -qq libtorrent-rasterbar-dev ; | ||||
|  | ||||
|       # 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 | ||||
|         #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 ; | ||||
|  | ||||
|       # Qt | ||||
|       if [ "$qt" = 4 ]; then sudo apt-get -qq install qt4-default libqt4-dev ; fi ; | ||||
|       if [ "$qt" = 5 ]; then sudo apt-get -qq install qt5-default qtbase5-dev qttools5-dev-tools ; 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 | ||||
|       brew update > /dev/null && brew install colormake libtorrent-rasterbar ; | ||||
|  | ||||
|       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.1.6+git20180101.b45acf28a5+patched-configure.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.1.6+git20180101.b45acf28a5+patched-configure.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 | ||||
|       # Qt | ||||
|       if [ "$qt" = 4 ]; then brew install qt ; fi ; | ||||
|       if [ "$qt" = 5 ]; then brew install qt5 && brew link --force qt5 ; fi ; | ||||
|     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 | ||||
|       if [ "$TRAVIS_OS_NAME" = "osx" ]; then | ||||
|         # For some reason for RC_1_1 we need to also specify the OpenSSL compiler/linker flags | ||||
|         # Homebrew doesn't symlink OpenSSL for security reasons | ||||
|         ./bootstrap.sh && ./configure $qbtconf CXXFLAGS="$(PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH" pkg-config --cflags openssl)" LDFLAGS="$(PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH" pkg-config --libs openssl)" | ||||
|         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 | ||||
|       else | ||||
|         ./bootstrap.sh && ./configure $qbtconf | ||||
|       fi | ||||
|       BUILD_TOOL="make" | ||||
|     fi | ||||
|   - $BUILD_TOOL && $BUILD_TOOL install | ||||
|   - cd "$TRAVIS_BUILD_DIR" && ./bootstrap.sh && ./configure $qbtconf | ||||
|   - if [ "$TRAVIS_OS_NAME" = "osx" ]; then sed -i "" -e 's/^\(CXXFLAGS.*\)$/\1 -Wno-unused-local-typedefs/' src/Makefile ; fi | ||||
|   - make && make 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 | ||||
|   - if [ "$TRAVIS_OS_NAME" = "osx" ]; then cd "$TRAVIS_BUILD_DIR/src/$qbt_exe.app/Contents/MacOS" ; fi | ||||
|   - ./$qbt_exe --version | ||||
|  | ||||
| after_script: | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| [main] | ||||
| host = https://www.transifex.com | ||||
|  | ||||
| [qbittorrent.qbittorrent_master] | ||||
| [qbittorrent.qbittorrent_v3_3_x] | ||||
| file_filter = src/lang/qbittorrent_<lang>.ts | ||||
| lang_map = pt: pt_PT | ||||
| source_file = src/lang/qbittorrent_en.ts | ||||
|   | ||||
							
								
								
									
										53
									
								
								520EC6F6.asc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								520EC6F6.asc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| -----BEGIN PGP PUBLIC KEY BLOCK----- | ||||
| Version: GnuPG v2 | ||||
|  | ||||
| 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 | ||||
| x8m1+aYiYlKfcKWm1nKQG0hF04Axq5AYezjKvA== | ||||
| =Zdwm | ||||
| -----END PGP PUBLIC KEY BLOCK----- | ||||
							
								
								
									
										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----- | ||||
							
								
								
									
										16
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								AUTHORS
									
									
									
									
									
								
							| @@ -34,14 +34,6 @@ Code from other projects: | ||||
|   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 | ||||
| @@ -52,10 +44,10 @@ Images Authors: | ||||
|   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/flags/*.png | ||||
|   copyright: Mark James <mjames@gmail.com> | ||||
|   license: Public Domain | ||||
|   url: http://www.famfamfam.com | ||||
|  | ||||
| * files: src/icons/skin/*.png | ||||
|   files: src/menuicons/YYxYY/*.png | ||||
|   | ||||
| @@ -1,14 +1,15 @@ | ||||
| cmake_minimum_required(VERSION 3.5) | ||||
| cmake_policy(VERSION 3.5) | ||||
| cmake_minimum_required(VERSION 3.2) | ||||
| cmake_policy(VERSION 3.2) | ||||
|  | ||||
| list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) | ||||
| include(FunctionReadVersion) | ||||
| project(qBittorrent VERSION 3.4.0.0) | ||||
|  | ||||
| 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(VER_MAJOR ${qBittorrent_VERSION_MAJOR}) | ||||
| set(VER_MINOR ${qBittorrent_VERSION_MINOR}) | ||||
| set(VER_BUGFIX ${qBittorrent_VERSION_PATCH}) | ||||
| set(VER_BUILD ${qBittorrent_VERSION_TWEAK}) | ||||
| set(VER_STATUS "alpha") # Should be empty for stable releases! | ||||
|  | ||||
| # Don't touch the rest part | ||||
| set(PROJECT_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}") | ||||
|  | ||||
| if (NOT VER_BUILD EQUAL 0) | ||||
| @@ -17,14 +18,19 @@ 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(-DVERSION_MAJOR=${VER_MAJOR}) | ||||
| add_definitions(-DVERSION_MINOR=${VER_MINOR}) | ||||
| add_definitions(-DVERSION_BUGFIX=${VER_BUGFIX}) | ||||
| add_definitions(-DVERSION_BUILD=${VER_BUILD}) | ||||
|  | ||||
| add_definitions(-DQBT_VERSION="v${PROJECT_VERSION}") | ||||
| add_definitions(-DQBT_VERSION_2="${PROJECT_VERSION}") | ||||
| # os2 { | ||||
| #     DEFINES += VERSION=\'\"v$${PROJECT_VERSION}\"\' | ||||
| # } else { | ||||
| add_definitions(-DVERSION="v${PROJECT_VERSION}") | ||||
| # } | ||||
| list(APPEND CMAKE_MODULE_PATH ${qBittorrent_SOURCE_DIR}/cmake/Modules) | ||||
|  | ||||
| # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og") | ||||
| if (UNIX AND NOT APPLE) | ||||
|     include(GNUInstallDirs) | ||||
| endif (UNIX AND NOT APPLE) | ||||
| @@ -36,8 +42,11 @@ endif(WIN32) | ||||
| # we need options here, because they are used not only in "src" subdir, but in the "dist" dir too | ||||
| include(CMakeDependentOption) | ||||
|  | ||||
| option(QT5 "Compile using Qt5" ON) | ||||
| option(SYSTEM_QTSINGLEAPPLICATION | ||||
|     "Use the system qtsingleapplication library or shipped one otherwise") | ||||
| cmake_dependent_option(SYSTEM_QJSON | ||||
|     "Use the shipped qjson library or the system one (Qt4 only)" OFF "NOT QT5" OFF) | ||||
|  | ||||
| option(GUI "Allows to disable GUI for headless running. Disables QtDBus and the GeoIP Database" ON) | ||||
|  | ||||
|   | ||||
| @@ -29,10 +29,8 @@ class MyOtherClass | ||||
| { | ||||
| public: | ||||
|     //code | ||||
|  | ||||
| protected: | ||||
|     //code | ||||
|  | ||||
| private: | ||||
|     //code | ||||
| }; | ||||
| @@ -89,14 +87,10 @@ default: | ||||
| } | ||||
| ``` | ||||
|  | ||||
| #### d. Brace enclosed initializers #### | ||||
| Unlike single-line functions, you must not insert spaces between the brackets and concluded expressions.<br/> | ||||
| But you must insert a space between the variable name and initializer. | ||||
| #### d. single-line blocks (lambdas, initializer lists etc.) #### | ||||
| ```c++ | ||||
| Class obj {}; // empty | ||||
| Class obj {expr}; | ||||
| Class obj {expr1, /*...,*/ exprN}; | ||||
| QVariantMap map {{"key1", 5}, {"key2", 10}}; | ||||
|  {} // empty - space before { | ||||
|  { body } // spaces around { and before } | ||||
| ``` | ||||
|  | ||||
| ### 2. If blocks ### | ||||
| @@ -179,11 +173,11 @@ All names should be camelCased. | ||||
| #### a. Type names and namespaces #### | ||||
| Type names and namespaces start with Upper case letter (except POD types). | ||||
| ```c++ | ||||
| class ClassName {}; | ||||
| class ClassName {} | ||||
|  | ||||
| struct StructName {}; | ||||
| struct StructName {} | ||||
|  | ||||
| enum EnumName {}; | ||||
| enum EnumName {} | ||||
|  | ||||
| typedef QList<ClassName> SomeList; | ||||
|  | ||||
| @@ -207,56 +201,7 @@ class MyClass | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ### 8. Header inclusion order. ### | ||||
| The headers should be placed in the following order: | ||||
|  1. Module header (in .cpp) | ||||
|  2. System/Qt/Boost etc. headers (splitted in subcategories if you have many). | ||||
|  3. Application headers, starting from *Base* headers. | ||||
|  | ||||
| The headers should be ordered alphabetically within each group (subgroup).<br/> | ||||
| <br/> | ||||
| Example: | ||||
| ```c++ | ||||
| // examplewidget.cpp | ||||
|  | ||||
| #include "examplewidget.h" | ||||
|  | ||||
| #include <cmath> | ||||
| #include <cstdio> | ||||
|  | ||||
| #include <QDateTime> | ||||
| #include <QList> | ||||
| #include <QString> | ||||
| #include <QUrl> | ||||
|  | ||||
| #include <libtorrent/version.hpp> | ||||
|  | ||||
| #include "base/bittorrent/infohash.h" | ||||
| #include "base/bittorrent/session.h" | ||||
| #include "base/utils/fs.h" | ||||
| #include "base/utils/misc.h" | ||||
| #include "base/utils/string.h" | ||||
| #include "ui_examplewidget.h" | ||||
|  | ||||
| ``` | ||||
|  | ||||
| ### 9. Include guard. ### | ||||
| `#pragma once` should be used instead of "include guard" in new code: | ||||
| ```c++ | ||||
| // examplewidget.h | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| #include <QWidget> | ||||
|  | ||||
| class ExampleWidget : public QWidget | ||||
| { | ||||
|     // (some code omitted) | ||||
| }; | ||||
|  | ||||
| ``` | ||||
|  | ||||
| ### 10. Misc. ### | ||||
| ### 8. Misc.### | ||||
|  | ||||
| * Line breaks for long lines with operation: | ||||
|  | ||||
| @@ -266,18 +211,47 @@ a += "b" | ||||
|   + "d"; | ||||
| ``` | ||||
|  | ||||
| * Initializers | ||||
|  | ||||
| We allow brace enclosed initializers only for aggregates and arrays/containers.<br /> | ||||
| Brace enclosed initializer MUST be used with equality sign if it follows the variable declaration.<br /> | ||||
| Brace enclosed initializer MUST be additionally enclosed in parentheses if it is used in constructor initialization list.<br /> | ||||
| Some valid use cases: | ||||
| ```c++ | ||||
| // aggregate | ||||
| Person john = { "John", "Smith", 21 }; | ||||
| Person *john = new Person { "John", "Smith", 21 }; | ||||
|  | ||||
| // array | ||||
| int array[] = { 1, 2, 3, 4 }; | ||||
|  | ||||
| // container | ||||
| QHash<QString, QString> map = { | ||||
|     { "key1", "value1" }, | ||||
|     { "key2", "value2" } | ||||
| ); | ||||
|  | ||||
| // member array | ||||
| SomeClass::SomeClass(BaseClass *parent) | ||||
|     : BaseClass(parent) | ||||
|     , m_someArrayMember({ 1, 2, 3, 4 }) | ||||
| { | ||||
| } | ||||
|  | ||||
| // return from function | ||||
| Person getPersonByName(const QString &name) | ||||
| { | ||||
|     // do something | ||||
|     return { name, surname, age }; | ||||
| } | ||||
|  | ||||
| // function argument | ||||
| doSomething({ name, surname, age }, someOtherArg); | ||||
| ``` | ||||
|  | ||||
| * **auto** keyword | ||||
|  | ||||
| We allow the use of the **auto** keyword only where it is strictly necessary  | ||||
| (for example, to declare a lambda object, etc.), or where it **enhances** the readability of the code. | ||||
| Declarations for which one can gather enough information about the object interface (type) from its name  | ||||
| or the usage pattern (an iterator or a loop variable are good examples of clear patterns)  | ||||
| or the right part of the expression nicely fit here.<br/> | ||||
| <br/> | ||||
| When weighing whether to use an auto-typed variable please think about potential reviewers of your code,  | ||||
| who will read it as a plain diff (on github.com, for instance). Please make sure that such reviewers can  | ||||
| understand the code completely and without excessive effort.<br/> | ||||
| <br/> | ||||
| We allow the use of the **auto** keyword only where it doesn't break the readability of the code (i.e. either we can gather enough information about the type from the right part of the expression, or we do not need to know the exact type), or where it is strictly necessary (for example, to compute the type of a lambda, etc.).<br /> | ||||
| Some valid use cases: | ||||
| ```c++ | ||||
| template <typename List> | ||||
| @@ -298,32 +272,12 @@ auto spinBox = static_cast<QSpinBox*>(sender()); | ||||
| // we know the variable type based on the right-hand expression | ||||
| ``` | ||||
|  | ||||
| * Notice the spaces in the following specific situations: | ||||
| ```c++ | ||||
| // Before and after the assignment and other binary (and ternary) operators there should be a space | ||||
| // There should not be a space between increment/decrement and its operand | ||||
| a += 20; | ||||
| a = (b <= MAX_B ? b : MAX_B); | ||||
| ++a; | ||||
| --b; | ||||
| * Space around operations eg `a = b + c` or `a=b+c`: | ||||
|  | ||||
| Before and after the assignment there should be a space. One exception could be: for loops. | ||||
| ```c++ | ||||
| for (int a=0; a<b; ++b) { | ||||
| } | ||||
|  | ||||
| // Range-based for loop, spaces before and after the colon | ||||
| for (auto i : container) { | ||||
| } | ||||
|  | ||||
| // Derived class, spaces before and after the colon | ||||
| class Derived : public Base | ||||
| { | ||||
| }; | ||||
| ``` | ||||
|  | ||||
| * Prefer pre-increment, pre-decrement operators | ||||
| ```c++ | ||||
| ++i, --j;  // Yes | ||||
| i++, j--;  // No | ||||
| ``` | ||||
|  | ||||
| * private/public/protected must not be indented | ||||
| @@ -332,5 +286,5 @@ i++, j--;  // No | ||||
|  | ||||
| * Method definitions aren't allowed in header files | ||||
|  | ||||
| ### 10. Not covered above ### | ||||
| ### 9. Not covered above### | ||||
| If something isn't covered above, just follow the same style the file you are editing has. If that particular detail isn't present in the file you are editing, then use whatever the rest of the project uses. | ||||
| @@ -1,4 +1,4 @@ | ||||
| # Filing an issue | ||||
| # 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. | ||||
| @@ -11,6 +11,7 @@ | ||||
| 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) | ||||
|   | ||||
							
								
								
									
										60
									
								
								COPYING
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								COPYING
									
									
									
									
									
								
							| @@ -292,3 +292,63 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||||
| POSSIBILITY OF SUCH DAMAGES. | ||||
|  | ||||
| 		     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. | ||||
|   | ||||
| @@ -29,13 +29,12 @@ 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 /> | ||||
| The key currently used is 4096R/[520EC6F6](https://pgp.mit.edu/pks/lookup?op=get&search=0xA1ACCAE4520EC6F6) with fingerprint `F4A5FD201B117B1C2AB590E2A1ACCAE4520EC6F6`.<br /> | ||||
| You can also download it from [here](https://github.com/qbittorrent/qBittorrent/raw/master/520EC6F6.asc).<br /> | ||||
|  | ||||
| ### Misc: | ||||
| For more information please visit: | ||||
| https://www.qbittorrent.org | ||||
| http://www.qbittorrent.org | ||||
|  | ||||
| or our wiki here: | ||||
| http://wiki.qbittorrent.org | ||||
|   | ||||
							
								
								
									
										74
									
								
								README.os2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								README.os2
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| qBittorrent - A BitTorrent client in Qt4 | ||||
| ------------------------------------------ | ||||
|  | ||||
| This is the eComStation (OS/2) qBittorrent part of the readme. See also README for more general information. | ||||
|  | ||||
|  | ||||
| Building qBittorrent | ||||
| ******************** | ||||
|  | ||||
|  | ||||
| Requirements | ||||
| ============ | ||||
|  | ||||
| - gcc based build env (recommended gcc v4.4.2 or greater) | ||||
|    | ||||
| - Qt4 for eCS (OS/2) dev package (see http://svn.netlabs.org/qt4 for more information) | ||||
|  | ||||
| - libtorrent-rasterbar for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information) | ||||
|  | ||||
| - boost for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information) | ||||
|  | ||||
|  | ||||
| How to build | ||||
| ============ | ||||
|  | ||||
| First you need to create the conf.pri file in the same dir as this readme.os2 is. | ||||
| the conf.pri file has the following content: | ||||
|  | ||||
| ##### conf.pri content begin ##### | ||||
| BINDIR = ./bin | ||||
| INCDIR = ./include | ||||
| LIBDIR = ./lib | ||||
| DATADIR = ./share | ||||
|  | ||||
| CONFIG += staticlib | ||||
| INCLUDEPATH += x:/trees/libtorrent/trunk/include | ||||
| LIBS += -Lx:/trees/libtorrent/trunk/src/.libs \ | ||||
|         -Lx:/trees/boost/trunk/stage/lib \ | ||||
|         -Lx:/trees/openssl \ | ||||
| 	-Lx:/extras/lib | ||||
| ##### conf.pri content end ##### | ||||
|  | ||||
| Of course all the above path references have to be adjusted to your build env. | ||||
|  | ||||
| Now you can either do a normal build or a shadow build. A shadow build has the | ||||
| advantage that no created files are in the same dir as the sources are. | ||||
|  | ||||
| For a normal build do the following: | ||||
|  | ||||
| Simply type: | ||||
| $ qmake | ||||
|  | ||||
| Followed by: | ||||
| $ make | ||||
|  | ||||
| For a shadow build do the following: | ||||
| given your sources are in x:\trees\qbittorrent\trunk create a  | ||||
| x:\trees\qbittorrent\build directory | ||||
|  | ||||
| Now switch to the created directory and type: | ||||
| $ qmake ..\trunk | ||||
|  | ||||
| Followed by: | ||||
| $ make | ||||
|  | ||||
| If all works fine you should get a working qbittorrent executable. | ||||
|  | ||||
| If you have any question regarding the eCS (OS/2) port of qBittorrent you can meet me (_diver) on IRC: | ||||
| #netlabs on irc.freenode.net | ||||
|  | ||||
| ------------------------------------------ | ||||
| Silvan Scherrer <silvan.scherrer@aroa.ch> | ||||
|  | ||||
|  | ||||
| @@ -3,18 +3,14 @@ version: '{branch}-{build}' | ||||
| # Do not build on tags (GitHub only) | ||||
| skip_tags: true | ||||
|  | ||||
| image: Visual Studio 2017 | ||||
|  | ||||
| branches: | ||||
|   except:  # blacklist | ||||
|     - coverity_scan | ||||
| os: Visual Studio 2015 | ||||
|  | ||||
| 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 | ||||
|   QBT_VER_URL: http://builds.shiki.hu/appveyor/version | ||||
|   QBT_LIB_URL: http://builds.shiki.hu/appveyor/qbt_libraries.7z | ||||
|  | ||||
| # project directory | ||||
| clone_folder: *REPO_DIR | ||||
| @@ -24,8 +20,6 @@ clone_folder: *REPO_DIR | ||||
| 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" | ||||
| @@ -42,7 +36,7 @@ install: | ||||
|  | ||||
| before_build: | ||||
|   # setup env | ||||
|   - CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" | ||||
|   - CALL "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat" | ||||
|   - SET PATH=%PATH%;c:\qbt\qt5_32\bin;%CACHE_DIR%\jom; | ||||
|   # setup project | ||||
|   - COPY /Y "%CACHE_DIR%\winconf.pri" "%REPO_DIR%" | ||||
| @@ -1,4 +1,4 @@ | ||||
| #!/bin/sh | ||||
| #!/bin/bash | ||||
|  | ||||
| aclocal -I m4 | ||||
| autoconf | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -14,11 +14,6 @@ | ||||
| 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() | ||||
| @@ -67,38 +62,19 @@ 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 | ||||
|         ) | ||||
| if(NOT Boost_SYSTEM_FOUND OR NOT Boost_CHRONO_FOUND OR NOT Boost_RANDOM_FOUND) | ||||
|     find_package(Boost REQUIRED COMPONENTS date_time system chrono random thread) | ||||
|     set(LibtorrentRasterbar_LIBRARIES | ||||
|         ${LibtorrentRasterbar_LIBRARIES} ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) | ||||
|     set(LibtorrentRasterbar_INCLUDE_DIRS | ||||
|         ${LibtorrentRasterbar_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) | ||||
| 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_LIBRARIES ${LibtorrentRasterbar_LIBRARIES} ${OPENSSL_LIBRARIES}) | ||||
|     set(LibtorrentRasterbar_INCLUDE_DIRS ${LibtorrentRasterbar_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIRS}) | ||||
|     set(LibtorrentRasterbar_OPENSSL_ENABLED ON) | ||||
| endif() | ||||
|  | ||||
| @@ -107,21 +83,11 @@ include(FindPackageHandleStandardArgs) | ||||
| # if all listed variables are TRUE | ||||
| find_package_handle_standard_args(LibtorrentRasterbar DEFAULT_MSG | ||||
|                                   LibtorrentRasterbar_LIBRARY | ||||
|                                   LibtorrentRasterbar_INCLUDE_DIR) | ||||
|                                   LibtorrentRasterbar_INCLUDE_DIR | ||||
|                                   Boost_SYSTEM_FOUND | ||||
|                                   Boost_CHRONO_FOUND | ||||
|                                   Boost_RANDOM_FOUND) | ||||
|  | ||||
| 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() | ||||
|   | ||||
| @@ -30,9 +30,9 @@ IF(QT4_FOUND) | ||||
|         NAMES ${QTSINGLEAPPLICATION_NAMES} | ||||
|         PATHS ${QT_LIBRARY_DIR} | ||||
|     ) | ||||
| ELSEIF(Qt5Core_FOUND) | ||||
| ELSEIF(Qt5Widgets_FOUND) | ||||
|     message(STATUS "Looking for Qt5 single application library") | ||||
|     FOREACH(TOP_INCLUDE_PATH in ${Qt5Core_INCLUDE_DIRS} ${FRAMEWORK_INCLUDE_DIR}) | ||||
|     FOREACH(TOP_INCLUDE_PATH in ${Qt5Widgets_INCLUDE_DIRS} ${FRAMEWORK_INCLUDE_DIR}) | ||||
|         FIND_PATH(QTSINGLEAPPLICATION_INCLUDE_DIR QtSingleApplication ${TOP_INCLUDE_PATH}/QtSolutions) | ||||
|  | ||||
|         IF(QTSINGLEAPPLICATION_INCLUDE_DIR) | ||||
| @@ -43,12 +43,12 @@ ELSEIF(Qt5Core_FOUND) | ||||
|     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) | ||||
|     GET_TARGET_PROPERTY(QT5_WIDGETSLIBRARY Qt5::Widgets LOCATION) | ||||
|     GET_FILENAME_COMPONENT(QT5_WIDGETSLIBRARYPATH ${QT5_WIDGETSLIBRARY} PATH) | ||||
|  | ||||
|     FIND_LIBRARY(QTSINGLEAPPLICATION_LIBRARY | ||||
|         NAMES ${QTSINGLEAPPLICATION_NAMES} | ||||
|         PATHS ${_QT5_CORELIBRARYPATH} | ||||
|         PATHS ${QT5_WIDGETSLIBRARYPATH} | ||||
|     ) | ||||
| ENDIF() | ||||
|  | ||||
| @@ -79,16 +79,3 @@ ELSE (QTSINGLEAPPLICATION_FOUND) | ||||
| 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) | ||||
|   | ||||
| @@ -3,9 +3,6 @@ | ||||
| # 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) | ||||
|   | ||||
| @@ -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,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) | ||||
| @@ -5,23 +5,11 @@ | ||||
| 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}) | ||||
|   | ||||
| @@ -1,89 +0,0 @@ | ||||
| # 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 -Werror=return-type -Wno-long-long" | ||||
| #			-fstack-protector-all | ||||
|             "-Werror -Wno-error=deprecated-declarations" | ||||
|         ) | ||||
|         set (_GCC_COMMON_CXX_FLAGS  "-fexceptions -frtti" | ||||
|             "-Woverloaded-virtual -Wold-style-cast -Wstrict-null-sentinel" | ||||
|             "-Wnon-virtual-dtor -Wfloat-equal -Wcast-qual -Wcast-align" | ||||
|             "-Werror=overloaded-virtual" | ||||
|     # 		"-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) | ||||
|  | ||||
|         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) | ||||
|  | ||||
| @@ -1,16 +0,0 @@ | ||||
| # a helper function which appends source to the main qBt target | ||||
| # sources file names are relative to the the ${qBittorrent_SOURCE_DIR} | ||||
|  | ||||
| function (qbt_target_sources) | ||||
|     set (_sources_rel "") | ||||
|     foreach (_source IN ITEMS ${ARGN}) | ||||
|         if (IS_ABSOLUTE "${_source}") | ||||
|             set(source_abs "${_source}") | ||||
|         else() | ||||
|             get_filename_component(_source_abs "${_source}" ABSOLUTE) | ||||
|         endif() | ||||
|         file (RELATIVE_PATH _source_rel "${qbt_executable_SOURCE_DIR}" "${_source_abs}") | ||||
|         list (APPEND _sources_rel "${_source_rel}") | ||||
|     endforeach() | ||||
|     target_sources (qBittorrent PRIVATE "${_sources_rel}") | ||||
| endfunction (qbt_target_sources) | ||||
| @@ -1,21 +0,0 @@ | ||||
| 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}" "" "" "") | ||||
| @@ -1,7 +1,5 @@ | ||||
| # Settings for compiling qBittorrent on Windows | ||||
|  | ||||
| list(APPEND CMAKE_LIBRARY_PATH "$ENV{LIB}") | ||||
|  | ||||
| # We want to link with static version of | ||||
| # libtorrent | ||||
| set(LibtorrentRasterbar_USE_STATIC_LIBS True) | ||||
| @@ -11,21 +9,18 @@ set(LibtorrentRasterbar_CUSTOM_DEFINITIONS | ||||
|     -DBOOST_EXCEPTION_DISABLE | ||||
|     -DBOOST_SYSTEM_STATIC_LINK=1 | ||||
|     -DTORRENT_USE_OPENSSL | ||||
|     -D__USE_W32_SOCKETS | ||||
|     -D_FILE_OFFSET_BITS=64) | ||||
|  | ||||
| add_definitions(-DUNICODE | ||||
|     -DUNICODE | ||||
|     -D_UNICODE | ||||
|     -DWIN32 | ||||
|     -D_WIN32 | ||||
|     -DWIN32_LEAN_AND_MEAN | ||||
|     -DNTDDI_VERSION=0x05010000 | ||||
|     -D_WIN32_WINNT=0x0501 | ||||
|     -D_WIN32_IE=0x0501 | ||||
|     -D_WIN32_IE=0x0500 | ||||
|     -D_CRT_SECURE_NO_DEPRECATE | ||||
|     -D_SCL_SECURE_NO_DEPRECATE | ||||
|     -DNOMINMAX | ||||
| ) | ||||
|     -D__USE_W32_SOCKETS | ||||
|     -D_FILE_OFFSET_BITS=64) | ||||
|  | ||||
| # and boost | ||||
| set(Boost_USE_STATIC_LIBS  True) | ||||
| # set(Boost_USE_STATIC_RUNTIME True) | ||||
| @@ -34,17 +29,16 @@ set(Boost_USE_STATIC_LIBS  True) | ||||
| # with usual unix subdirectories (bin, lib, include) | ||||
| # if so, we just need to set CMAKE_SYSTEM_PREFIX_PATH | ||||
| # If it is not the case, individual paths need to be specified manually (see below) | ||||
| set(COMMON_INSTALL_PREFIX "c:/usr" CACHE PATH "Prefix used to install all the required libraries") | ||||
| set(COMMON_INSTALL_PREFIX "c:/usr") | ||||
| list(APPEND CMAKE_SYSTEM_PREFIX_PATH "${COMMON_INSTALL_PREFIX}") | ||||
|  | ||||
| # If two version of Qt are installed, separate prefixes are needed most likely | ||||
| set(QT4_INSTALL_PREFIX "${COMMON_INSTALL_PREFIX}/lib/qt4" CACHE PATH "Prefix where Qt4 is installed") | ||||
| set(QT5_INSTALL_PREFIX "${COMMON_INSTALL_PREFIX}/lib/qt5" CACHE PATH "Prefix where Qt5 is installed") | ||||
| set(QT4_INSTALL_PREFIX "${COMMON_INSTALL_PREFIX}/lib/qt4") | ||||
| set(QT5_INSTALL_PREFIX "${COMMON_INSTALL_PREFIX}/lib/qt5") | ||||
|  | ||||
| # it is safe to set Qt dirs even if their files are directly in the prefix | ||||
| # Qt4 | ||||
| if(NOT QT5) | ||||
|     # for qt 4 we need qmake, Qt5 provides cmake config files | ||||
|     LIST(APPEND CMAKE_PROGRAM_PATH  "${QT4_INSTALL_PREFIX}/bin/") | ||||
| endif(NOT QT5) | ||||
|  | ||||
|   | ||||
							
								
								
									
										12
									
								
								conf.pri.in
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								conf.pri.in
									
									
									
									
									
								
							| @@ -6,16 +6,8 @@ DATADIR = @EXPAND_DATADIR@ | ||||
| MANPREFIX = @EXPAND_MANDIR@ | ||||
|  | ||||
| QMAKE_CXXFLAGS += @QBT_CONF_EXTRA_CFLAGS@ | ||||
|  | ||||
| EXTERNAL_INCLUDES = @QBT_CONF_INCLUDES@ | ||||
| EXTERNAL_INCLUDES -= $$QMAKE_DEFAULT_INCDIRS | ||||
| # added /usr/local/include due to Qt 5.7.0 bug on macOS | ||||
| macx: EXTERNAL_INCLUDES += "/usr/local/include" | ||||
| INCLUDEPATH += $$EXTERNAL_INCLUDES | ||||
|  | ||||
| EXTERNAL_LIBS = @LDFLAGS@ @LIBS@ | ||||
| EXTERNAL_LIBS -= $$QMAKE_DEFAULT_LIBDIRS | ||||
| LIBS += $$EXTERNAL_LIBS | ||||
| INCLUDEPATH += @QBT_CONF_INCLUDES@ | ||||
| LIBS += @LDFLAGS@ @LIBS@ | ||||
|  | ||||
| CONFIG += @QBT_ADD_CONFIG@ | ||||
| CONFIG -= @QBT_REMOVE_CONFIG@ | ||||
|   | ||||
| @@ -1,61 +0,0 @@ | ||||
| # Adapt these paths | ||||
| # Point these to the include folders | ||||
| INCLUDEPATH += $$quote(C:/qBittorrent/boost) | ||||
| INCLUDEPATH += $$quote(C:/qBittorrent/libtorrent/include) | ||||
| INCLUDEPATH += $$quote(C:/qBittorrent/zlib/include) | ||||
| INCLUDEPATH += $$quote(C:/qBittorrent/openssl/include) | ||||
| # Point these to the lib folders | ||||
| LIBS += $$quote(-LC:/qBittorrent/boost/stage/lib) | ||||
| LIBS += $$quote(-LC:/qBittorrent/libtorrent/lib) | ||||
| LIBS += $$quote(-LC:/qBittorrent/zlib/lib) | ||||
| LIBS += $$quote(-LC:/qBittorrent/openssl/lib) | ||||
|  | ||||
| # Adapt the lib names/versions accordingly | ||||
| # If you want to use Boost auto-linking then disable | ||||
| # BOOST_ALL_NO_LIB below and omit Boost libraries here | ||||
| CONFIG(debug, debug|release) { | ||||
|     LIBS += libtorrentd.lib \ | ||||
|             libboost_system-vc140-mt-sgd-1_64.lib | ||||
| } | ||||
| else { | ||||
|     LIBS += libtorrent.lib \ | ||||
|             libboost_system-vc140-mt-s-1_64.lib | ||||
| } | ||||
| LIBS += libeay32.lib ssleay32.lib | ||||
| LIBS += zlib.lib | ||||
| # ...or if you use MinGW | ||||
| #CONFIG(debug, debug|release) { | ||||
| #    LIBS += libtorrent-rasterbar \ | ||||
| #            libboost_system-mt | ||||
| #} | ||||
| #else { | ||||
| #    LIBS += libtorrent-rasterbar \ | ||||
| #            libboost_system-mt | ||||
| #} | ||||
| #LIBS += libcrypto libssl | ||||
| #LIBS += libz | ||||
|  | ||||
| DEFINES += NTDDI_VERSION=0x05010000 | ||||
| DEFINES += _WIN32_WINNT=0x0501 | ||||
| DEFINES += _WIN32_IE=0x0501 | ||||
|  | ||||
| # Disable to use Boost auto-linking | ||||
| DEFINES += BOOST_ALL_NO_LIB | ||||
| # Use one of the following options | ||||
| DEFINES += BOOST_SYSTEM_STATIC_LINK | ||||
| #DEFINES += BOOST_SYSTEM_DYN_LINK | ||||
| # Boost 1.60+ defaults to Vista+ support. The define below enables XP support again. | ||||
| DEFINES += BOOST_USE_WINAPI_VERSION=0x0501 | ||||
| # Enable if building against libtorrent 1.0.x (RC_1_0) (static linking) | ||||
| #DEFINES += BOOST_ASIO_SEPARATE_COMPILATION | ||||
| # Enable if building against libtorrent 1.0.x (RC_1_0) (dynamic linking) | ||||
| #DEFINES += BOOST_ASIO_DYN_LINK | ||||
|  | ||||
| # Enable if building against libtorrent 1.1.x (RC_1_1) | ||||
| # built with this flag defined | ||||
| #DEFINES += TORRENT_NO_DEPRECATE | ||||
| # Enable if linking dynamically against libtorrent | ||||
| #DEFINES += TORRENT_LINKING_SHARED | ||||
|  | ||||
| # Enable stack trace support | ||||
| CONFIG += strace_win | ||||
							
								
								
									
										82
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								configure.ac
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| AC_INIT([qbittorrent], [v4.0.4], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/]) | ||||
| AC_INIT([qbittorrent], [v3.2.0alpha], [bugs.qbittorrent.org], [], [http://www.qbittorrent.org/]) | ||||
| AC_CONFIG_AUX_DIR([build-aux]) | ||||
| AC_CONFIG_MACRO_DIR([m4]) | ||||
| AC_PROG_CC | ||||
| @@ -12,12 +12,24 @@ AM_INIT_AUTOMAKE | ||||
|  | ||||
| # Define --wth-* and --enable-* arguments | ||||
|  | ||||
| AC_ARG_WITH(qt4, | ||||
|             [AS_HELP_STRING([--with-qt4], | ||||
|                             [Compile using Qt4 (default=no)])], | ||||
|             [], | ||||
|             [with_qt4=no]) | ||||
|  | ||||
| AC_ARG_WITH(qtsingleapplication, | ||||
|             [AS_HELP_STRING([--with-qtsingleapplication=@<:@system|shipped@:>@], | ||||
|                             [Use the shipped qtsingleapplication library or the system one (default=shipped)])], | ||||
|             [], | ||||
|             [with_qtsingleapplication=shipped]) | ||||
|  | ||||
| AC_ARG_WITH(qjson, | ||||
|             [AS_HELP_STRING([--with-qjson=@<:@system|shipped@:>@], | ||||
|                             [Use the shipped qjson library or the system one (default=shipped) (Qt4 only)])], | ||||
|             [], | ||||
|             [with_qjson=shipped]) | ||||
|  | ||||
| AC_ARG_ENABLE(debug, | ||||
|               [AS_HELP_STRING([--enable-debug], | ||||
|                               [Enable debug build])], | ||||
| @@ -55,12 +67,6 @@ AS_IF([expr "$host_os" : ".*freebsd.*" > /dev/null], | ||||
|       LIBS="-lexecinfo $LIBS"], | ||||
|       [AC_MSG_RESULT([no])]) | ||||
|  | ||||
| AC_MSG_CHECKING([whether OS is macOS]) | ||||
| AS_IF([expr "$host_os" : ".*darwin.*" > /dev/null], | ||||
|       [AC_MSG_RESULT([yes]) | ||||
|       enable_qt_dbus=no], | ||||
|       [AC_MSG_RESULT([no])]) | ||||
|  | ||||
| # Require 0.23 pkg-config | ||||
| PKG_PROG_PKG_CONFIG([0.23]) | ||||
| AS_IF([test "x$PKG_CONFIG" = "x"], | ||||
| @@ -115,13 +121,20 @@ AS_CASE(["x$enable_webui"], | ||||
|         [AC_MSG_RESULT([$enable_webui]) | ||||
|         AC_MSG_ERROR([Unknown option "$enable_webui". Use either "yes" or "no".])]) | ||||
|  | ||||
| FIND_QT5() | ||||
| AC_MSG_CHECKING([whether Qt4 should be enabled]) | ||||
| AS_CASE(["x$with_qt4"], | ||||
|         ["xno"], | ||||
|               [AC_MSG_RESULT([no]) | ||||
|               FIND_QT5()], | ||||
|         ["xyes"], | ||||
|                [AC_MSG_RESULT([yes]) | ||||
|                FIND_QT4()], | ||||
|         [AC_MSG_RESULT([$with_qt4]) | ||||
|         AC_MSG_ERROR([Unknown option "$with_qt4". Use either "yes" or "no".])]) | ||||
| AS_IF([test "x$QT_QMAKE" = "x"], | ||||
|       [AC_MSG_ERROR([Could not find qmake]) | ||||
|       ]) | ||||
| AS_IF([test "x$enable_gui" = "xyes"], | ||||
|       [PKG_CHECK_MODULES(Qt5Svg, [Qt5Svg >= 5.5.1]) | ||||
|       ]) | ||||
|  | ||||
| AC_MSG_CHECKING([whether QtDBus should be enabled]) | ||||
| AS_CASE(["x$enable_qt_dbus"], | ||||
|         ["xyes"], | ||||
| @@ -138,16 +151,22 @@ AS_CASE(["x$enable_qt_dbus"], | ||||
|         AC_MSG_ERROR([Unknown option "$enable_qt_dbus". Use either "yes" or "no".])]) | ||||
|  | ||||
|  | ||||
| AX_BOOST_BASE([1.35], | ||||
|               [AC_MSG_NOTICE([Boost CPPFLAGS: "$BOOST_CPPFLAGS" | ||||
|                 Boost LDFLAGS: "$BOOST_LDFLAGS"])], | ||||
|               [AC_MSG_ERROR([Could not find Boost])]) | ||||
| AX_BOOST_BASE([1.35]) | ||||
| # HAVE_BOOST is set to an empty value when Boost is found. I don't know | ||||
| # how to test for a set vs unset variable. | ||||
| AS_IF([test "x$BOOST_CPPFLAGS" = "x"], | ||||
|       [AC_MSG_ERROR([Could not find Boost])], | ||||
|       [AC_MSG_NOTICE([Boost CPPFLGAS: $BOOST_CPPFLAGS]) | ||||
|       CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS" | ||||
| LDFLAGS="$BOOST_LDFLAGS $LDFLAGS" | ||||
|       LDFLAGS="$BOOST_LDFLAGS $LDFLAGS"]) | ||||
|  | ||||
| AX_BOOST_SYSTEM() | ||||
| AC_MSG_NOTICE([Boost.System LIB: "$BOOST_SYSTEM_LIB"]) | ||||
| LIBS="$BOOST_SYSTEM_LIB $LIBS" | ||||
| # HAVE_BOOST_SYSTEM is set to an empty value when Boost.System is found. | ||||
| # I don't know how to test for a set vs unset variable. | ||||
| AS_IF([test "x$BOOST_SYSTEM_LIB" = "x"], | ||||
|       [AC_MSG_ERROR([Could not find Boost.System])], | ||||
|       [AC_MSG_NOTICE([Boost.System LIB: $BOOST_SYSTEM_LIB]) | ||||
|       LIBS="$BOOST_SYSTEM_LIB $LIBS"]) | ||||
|  | ||||
| AC_MSG_CHECKING([which qtsingleapplication to use]) | ||||
| AS_CASE(["x$with_qtsingleapplication"], | ||||
| @@ -160,13 +179,30 @@ AS_CASE(["x$with_qtsingleapplication"], | ||||
|         [AC_MSG_RESULT([$with_qtsingleapplication]) | ||||
|         AC_MSG_ERROR([Unknown option "$with_qtsingleapplication". Use either "system" or "shipped".])]) | ||||
|  | ||||
| AS_IF([test "x$with_qt4" = "xyes"], | ||||
|       [AC_MSG_CHECKING([which qjson to use]) | ||||
|       AS_CASE(["x$with_qjson"], | ||||
|               ["xshipped"], | ||||
|                          [AC_MSG_RESULT([shipped]) | ||||
|                          QBT_REMOVE_CONFIG="$QBT_REMOVE_CONFIG usesystemqjson"], | ||||
|               ["xsystem"], | ||||
|                          [AC_MSG_RESULT([system]) | ||||
|                          PKG_CHECK_MODULES(qjson, | ||||
|                                           [QJson >= 0.8.1], | ||||
|                                           [CPPFLAGS="$qjson_CFLAGS $CPPFLAGS" | ||||
|                                           LIBS="$qjson_LIBS $LIBS"]) | ||||
|                          QBT_ADD_CONFIG="$QBT_ADD_CONFIG usesystemqjson"], | ||||
|               [AC_MSG_RESULT([$with_qjson]) | ||||
|               AC_MSG_ERROR([Unknown option "$with_qjson". Use either "system" or "shipped".])]) | ||||
|      ]) | ||||
|  | ||||
| PKG_CHECK_MODULES(libtorrent, | ||||
|                   [libtorrent-rasterbar >= 1.0.6], | ||||
|                   [CPPFLAGS="$libtorrent_CFLAGS $CPPFLAGS" | ||||
|                   LIBS="$libtorrent_LIBS $LIBS"]) | ||||
|  | ||||
| PKG_CHECK_MODULES(zlib, | ||||
|                  [zlib >= 1.2.5.2], | ||||
|                  [zlib], | ||||
|                  [CPPFLAGS="$zlib_CFLAGS $CPPFLAGS" | ||||
|                  LIBS="$zlib_LIBS $LIBS"]) | ||||
|  | ||||
| @@ -190,7 +226,7 @@ extract() { | ||||
|   new_line=' | ||||
| ' | ||||
|   # Convert " -" to "\n" if not between quotes and remove possible leading white spaces | ||||
|   string=$(echo " $*" | $SED -e "s: -:\\${new_line}:g" -e 's:"\(.*\)\n\(.*\)":\"\1 -\2":g' -e "s:'\(.*\)\n\(.*\)':\'\1 -\2':g" -e 's/^[[[:space:]]]*//') | ||||
|   string=$(echo " $*" | $SED -e "s: -:\\${new_line}:g" -e 's:"\(.*\)\n\(.*\)":\"\1 -\2":g' -e "s:'\(.*\)\n\(.*\)':\'\1 -\2':g" -e 's/^[[:space:]]*//') | ||||
|   SAVEIFS=$IFS | ||||
|   IFS=$(printf "\n\b") | ||||
|   for i in $string; do | ||||
| @@ -204,8 +240,9 @@ extract() { | ||||
|   IFS=$SAVEIFS | ||||
| } | ||||
|  | ||||
| extract "$CFLAGS $CPPFLAGS $CXXFLAGS" | ||||
| extract $CPPFLAGS | ||||
| QBT_ADD_DEFINES="$QBT_ADD_DEFINES $QBT_CONF_DEFINES" | ||||
| QBT_CONF_EXTRA_CFLAGS="$QBT_CONF_EXTRA_CFLAGS $CXXFLAGS" | ||||
|  | ||||
| # Substitute the values of these vars in conf.pri.in | ||||
| AC_SUBST(QBT_CONF_INCLUDES) | ||||
| @@ -217,7 +254,7 @@ AC_SUBST(QBT_REMOVE_DEFINES) | ||||
|  | ||||
| AC_OUTPUT(conf.pri) | ||||
| AS_IF([test "x$enable_systemd" = "xyes"], | ||||
|       [AC_OUTPUT(dist/unix/systemd/qbittorrent-nox@.service)]) | ||||
|       [AC_OUTPUT(dist/unix/systemd/qbittorrent-nox.service)]) | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -233,3 +270,4 @@ AS_IF([test "x$ret" = "x0"], | ||||
|       [AC_MSG_NOTICE([Good, your configure finished.])], | ||||
|       [AC_MSG_ERROR([Failed running $QT_QMAKE to generate the makefile])]) | ||||
| AS_ECHO() | ||||
|  | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user