mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-10-22 02:36:15 +03:00
Use consistent line ending character LF
parent
35fe9c3296
commit
2427b4eaf7
1 changed files with 326 additions and 326 deletions
|
@ -1,326 +1,326 @@
|
||||||
This page describes the process of building qBittorrent on Windows targeting x86\_64 (aka x64 aka AMD64 aka 64-bit) architecture. Building for x86\_64 arch is only supported by Visual Studio Professional or better, Express edition won't do.
|
This page describes the process of building qBittorrent on Windows targeting x86\_64 (aka x64 aka AMD64 aka 64-bit) architecture. Building for x86\_64 arch is only supported by Visual Studio Professional or better, Express edition won't do.
|
||||||
|
|
||||||
> Note: Even though this article tries to be as full as possible, it is not recommended for users without basic knowledge in programming and windows shell scripting.
|
> Note: Even though this article tries to be as full as possible, it is not recommended for users without basic knowledge in programming and windows shell scripting.
|
||||||
>
|
>
|
||||||
> Final note: Resulting binary will not support Windows XP 64-bit Edition and Windows Server 2003 64-bit Edition unless you follow special notes describing how to make it compatible with those systems.
|
> Final note: Resulting binary will not support Windows XP 64-bit Edition and Windows Server 2003 64-bit Edition unless you follow special notes describing how to make it compatible with those systems.
|
||||||
|
|
||||||
# Table of Contents #
|
# Table of Contents #
|
||||||
|
|
||||||
1. [Software Requirements](#software-requirements)
|
1. [Software Requirements](#software-requirements)
|
||||||
1. [Source Requirements](#source-requirements)
|
1. [Source Requirements](#source-requirements)
|
||||||
1. [Preparing Directory Structure](#preparing-directory-structure)
|
1. [Preparing Directory Structure](#preparing-directory-structure)
|
||||||
1. [Build Zlib](#build-zlib)
|
1. [Build Zlib](#build-zlib)
|
||||||
1. [Build OpenSSL](#build-openssl)
|
1. [Build OpenSSL](#build-openssl)
|
||||||
1. [Build Boost](#build-boost)
|
1. [Build Boost](#build-boost)
|
||||||
1. [Build libtorrent](#build-libtorrent)
|
1. [Build libtorrent](#build-libtorrent)
|
||||||
1. [Build Qt](#build-qt)
|
1. [Build Qt](#build-qt)
|
||||||
1. [Build qBittorrent](#build-qbittorrent)
|
1. [Build qBittorrent](#build-qbittorrent)
|
||||||
1. [Using resulting binaries on different computers](#using-resulting-binaries-on-different-computers)
|
1. [Using resulting binaries on different computers](#using-resulting-binaries-on-different-computers)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
# Software Requirements #
|
# Software Requirements #
|
||||||
|
|
||||||
1. At least Windows 7 SP1 64-bit
|
1. At least Windows 7 SP1 64-bit
|
||||||
1. At least Visual Studio 2013 Professional Edition.
|
1. At least Visual Studio 2013 Professional Edition.
|
||||||
1. Perl. [ActiveState Perl x86](http://www.activestate.com/activeperl/downloads) is known to work.
|
1. Perl. [ActiveState Perl x86](http://www.activestate.com/activeperl/downloads) is known to work.
|
||||||
1. Latest version of [NASM assembler](http://www.nasm.us/).
|
1. Latest version of [NASM assembler](http://www.nasm.us/).
|
||||||
|
|
||||||
# Source Requirements #
|
# Source Requirements #
|
||||||
|
|
||||||
1. Latest version of [Zlib](http://zlib.net/).
|
1. Latest version of [Zlib](http://zlib.net/).
|
||||||
+ [1.2.8](http://zlib.net/zlib-1.2.8.tar.gz) is used in this article.
|
+ [1.2.8](http://zlib.net/zlib-1.2.8.tar.gz) is used in this article.
|
||||||
1. Latest version of [OpenSSL](https://www.openssl.org/source/). Be sure to download the one _**without**_ fips in the name.
|
1. Latest version of [OpenSSL](https://www.openssl.org/source/). Be sure to download the one _**without**_ fips in the name.
|
||||||
+ [1.0.1i](https://www.openssl.org/source/openssl-1.0.1i.tar.gz) is used in this article.
|
+ [1.0.1i](https://www.openssl.org/source/openssl-1.0.1i.tar.gz) is used in this article.
|
||||||
1. Latest version of [Qt](https://qt-project.org/downloads). Look for `The source code is also available as a single zip` on download page. This is what you need, not the prebuilt binaries.
|
1. Latest version of [Qt](https://qt-project.org/downloads). Look for `The source code is also available as a single zip` on download page. This is what you need, not the prebuilt binaries.
|
||||||
|
|
||||||
> Note: Qt5 is currently not supported by qBittorrent.
|
> Note: Qt5 is currently not supported by qBittorrent.
|
||||||
+ [4.8.6](http://download.qt-project.org/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.zip) is used in this article.
|
+ [4.8.6](http://download.qt-project.org/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.zip) is used in this article.
|
||||||
1. Latest version of [Boost](http://www.boost.org/users/download/).
|
1. Latest version of [Boost](http://www.boost.org/users/download/).
|
||||||
+ [1.56](http://sourceforge.net/projects/boost/files/boost/1.56.0/boost_1_56_0.7z/download) is used in this article.
|
+ [1.56](http://sourceforge.net/projects/boost/files/boost/1.56.0/boost_1_56_0.7z/download) is used in this article.
|
||||||
1. Latest version of [libtorrent-rasterbar](http://sourceforge.net/projects/libtorrent/files/libtorrent/).
|
1. Latest version of [libtorrent-rasterbar](http://sourceforge.net/projects/libtorrent/files/libtorrent/).
|
||||||
+ [0.16.17](http://sourceforge.net/projects/libtorrent/files/libtorrent/libtorrent-rasterbar-0.16.17.tar.gz/download) is used in this article.
|
+ [0.16.17](http://sourceforge.net/projects/libtorrent/files/libtorrent/libtorrent-rasterbar-0.16.17.tar.gz/download) is used in this article.
|
||||||
1. Latest version of [qBittorrent](http://sourceforge.net/projects/qbittorrent/files/qbittorrent) or you can [Download Master Branch from GitHub](https://github.com/qbittorrent/qBittorrent/archive/master.zip).
|
1. Latest version of [qBittorrent](http://sourceforge.net/projects/qbittorrent/files/qbittorrent) or you can [Download Master Branch from GitHub](https://github.com/qbittorrent/qBittorrent/archive/master.zip).
|
||||||
+ [3.1.9.2](http://sourceforge.net/projects/qbittorrent/files/qbittorrent/qbittorrent-3.1.9.2/qbittorrent-3.1.9.2.tar.gz/download) is used in this article.
|
+ [3.1.9.2](http://sourceforge.net/projects/qbittorrent/files/qbittorrent/qbittorrent-3.1.9.2/qbittorrent-3.1.9.2.tar.gz/download) is used in this article.
|
||||||
1. Maxmind [GeoIP Database](http://dev.maxmind.com/geoip/legacy/geolite/).
|
1. Maxmind [GeoIP Database](http://dev.maxmind.com/geoip/legacy/geolite/).
|
||||||
|
|
||||||
# Preparing Directory Structure #
|
# Preparing Directory Structure #
|
||||||
|
|
||||||
1. First of all you will need a working directory structure for source code and compiled binaries. Create something like that:
|
1. First of all you will need a working directory structure for source code and compiled binaries. Create something like that:
|
||||||
|
|
||||||
C:\work
|
C:\work
|
||||||
\sources
|
\sources
|
||||||
\install
|
\install
|
||||||
|
|
||||||
|
|
||||||
1. In this article I'm using a drive as a working directory, so I have something like that:
|
1. In this article I'm using a drive as a working directory, so I have something like that:
|
||||||
|
|
||||||
T:
|
T:
|
||||||
\sources
|
\sources
|
||||||
\install
|
\install
|
||||||
|
|
||||||
|
|
||||||
> This directory structure will be used as an example.
|
> This directory structure will be used as an example.
|
||||||
|
|
||||||
# Build Zlib #
|
# Build Zlib #
|
||||||
|
|
||||||
1. Unpack Zlib into `\sources\zlib\`.
|
1. Unpack Zlib into `\sources\zlib\`.
|
||||||
1. Open `VS2013 x64 Native Tools Command Prompt` usually found in `Start->All Programs->Visual Studio 2013->Visual Studio Tools`
|
1. Open `VS2013 x64 Native Tools Command Prompt` usually found in `Start->All Programs->Visual Studio 2013->Visual Studio Tools`
|
||||||
1. Navigate to Zlib source folder.
|
1. Navigate to Zlib source folder.
|
||||||
1. Edit `.\win32\Makefile.msc` and do the following changes:
|
1. Edit `.\win32\Makefile.msc` and do the following changes:
|
||||||
|
|
||||||
+ Find the line starting with `AS` and on that line:
|
+ Find the line starting with `AS` and on that line:
|
||||||
+ Replace `ml` **with** `ml64`
|
+ Replace `ml` **with** `ml64`
|
||||||
+ Find the line starting with `ASFLAGS` and on that line:
|
+ Find the line starting with `ASFLAGS` and on that line:
|
||||||
+ Replace `-coff -Zi $(LOC)` **with** `$(LOC)`
|
+ Replace `-coff -Zi $(LOC)` **with** `$(LOC)`
|
||||||
+ Find the line starting with `CFLAGS` and on that line:
|
+ Find the line starting with `CFLAGS` and on that line:
|
||||||
+ Replace `-nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC)` **with** `-nologo -MD -O2 -w -favor:blend -GL -GR- -Y- -MP -EHs-c- $(LOC)`
|
+ Replace `-nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC)` **with** `-nologo -MD -O2 -w -favor:blend -GL -GR- -Y- -MP -EHs-c- $(LOC)`
|
||||||
+ Find the line starting with `LDFLAGS` and on that line:
|
+ Find the line starting with `LDFLAGS` and on that line:
|
||||||
+ Replace `-nologo -debug -incremental:no -opt:ref` **with** `-nologo -incremental:no -opt:ref -opt:icf=5 -ltcg`
|
+ Replace `-nologo -debug -incremental:no -opt:ref` **with** `-nologo -incremental:no -opt:ref -opt:icf=5 -ltcg`
|
||||||
+ Find the line starting with `ARFLAGS` and on that line:
|
+ Find the line starting with `ARFLAGS` and on that line:
|
||||||
+ Replace `-nologo` **with** `-nologo -ltcg`
|
+ Replace `-nologo` **with** `-nologo -ltcg`
|
||||||
|
|
||||||
1. Build Zlib:
|
1. Build Zlib:
|
||||||
|
|
||||||
|
|
||||||
nmake -f .\win32\Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -DNDEBUG -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
|
nmake -f .\win32\Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -DNDEBUG -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
|
||||||
nmake -f .\win32\Makefile.msc test
|
nmake -f .\win32\Makefile.msc test
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
> Last command will run a short test to make sure that Zlib is working.
|
> Last command will run a short test to make sure that Zlib is working.
|
||||||
|
|
||||||
1. Install Zlib into `\install\zlib` folder:
|
1. Install Zlib into `\install\zlib` folder:
|
||||||
|
|
||||||
> Technical note: because Makefile does not provide an install target, we need to do it ourselves.
|
> Technical note: because Makefile does not provide an install target, we need to do it ourselves.
|
||||||
|
|
||||||
|
|
||||||
IF EXIST T:\install\zlib RD /S /Q T:\install\zlib
|
IF EXIST T:\install\zlib RD /S /Q T:\install\zlib
|
||||||
MD T:\install\zlib
|
MD T:\install\zlib
|
||||||
FOR %X IN (bin lib include) DO (
|
FOR %X IN (bin lib include) DO (
|
||||||
MD T:\install\zlib\%X
|
MD T:\install\zlib\%X
|
||||||
)
|
)
|
||||||
XCOPY /Y /Q /I .\*.dll T:\install\zlib\bin\
|
XCOPY /Y /Q /I .\*.dll T:\install\zlib\bin\
|
||||||
XCOPY /Y /Q /I .\*.lib T:\install\zlib\lib\
|
XCOPY /Y /Q /I .\*.lib T:\install\zlib\lib\
|
||||||
XCOPY /Y /Q /I .\zconf.h T:\install\zlib\include\
|
XCOPY /Y /Q /I .\zconf.h T:\install\zlib\include\
|
||||||
XCOPY /Y /Q /I .\zlib.h T:\install\zlib\include\
|
XCOPY /Y /Q /I .\zlib.h T:\install\zlib\include\
|
||||||
|
|
||||||
# Build OpenSSL #
|
# Build OpenSSL #
|
||||||
|
|
||||||
1. Unpack OpenSSL into `\sources\openssl\`.
|
1. Unpack OpenSSL into `\sources\openssl\`.
|
||||||
1. Install Perl if you haven't. In this article Perl is installed in `T:\Perl`.
|
1. Install Perl if you haven't. In this article Perl is installed in `T:\Perl`.
|
||||||
|
|
||||||
> It is recommended to install both perl and NASM to directory structure without spaces.
|
> It is recommended to install both perl and NASM to directory structure without spaces.
|
||||||
|
|
||||||
1. Open `VS2013 x64 Native Tools Command Prompt`.
|
1. Open `VS2013 x64 Native Tools Command Prompt`.
|
||||||
1. Navigate to OpenSSL source folder.
|
1. Navigate to OpenSSL source folder.
|
||||||
1. If you still haven't installed NASM, now is the best time. In this article NASM is installed in `T:\NASM`.
|
1. If you still haven't installed NASM, now is the best time. In this article NASM is installed in `T:\NASM`.
|
||||||
1. Adjust `PATH` variable:
|
1. Adjust `PATH` variable:
|
||||||
|
|
||||||
SET "PATH=T:\NASM;%PATH%"
|
SET "PATH=T:\NASM;%PATH%"
|
||||||
|
|
||||||
|
|
||||||
1. Configure OpenSSL:
|
1. Configure OpenSSL:
|
||||||
|
|
||||||
perl Configure VC-WIN64A threads shared zlib -IT:\install\zlib\include -LT:\install\zlib\lib --prefix=T:\install\openssl
|
perl Configure VC-WIN64A threads shared zlib -IT:\install\zlib\include -LT:\install\zlib\lib --prefix=T:\install\openssl
|
||||||
.\ms\do_win64a.bat
|
.\ms\do_win64a.bat
|
||||||
|
|
||||||
|
|
||||||
1. Edit `.\ms\ntdll.mak` and do the following changes:
|
1. Edit `.\ms\ntdll.mak` and do the following changes:
|
||||||
+ Find the line starting with `CFLAG=` and on that line:
|
+ Find the line starting with `CFLAG=` and on that line:
|
||||||
+ Replace `/Ox` **with** `/O2 /favor:blend /GL /Y-`
|
+ Replace `/Ox` **with** `/O2 /favor:blend /GL /Y-`
|
||||||
+ Find the line starting with `LFLAGS=`
|
+ Find the line starting with `LFLAGS=`
|
||||||
+ Replace `/debug` **with** `/OPT:ICF=5 /LTCG`
|
+ Replace `/debug` **with** `/OPT:ICF=5 /LTCG`
|
||||||
+ Find the line starting with `MLFLAGS=`
|
+ Find the line starting with `MLFLAGS=`
|
||||||
+ Replace `/debug` **with** `/OPT:ICF=5 /LTCG`
|
+ Replace `/debug` **with** `/OPT:ICF=5 /LTCG`
|
||||||
+ Find the line starting with `ASM=`
|
+ Find the line starting with `ASM=`
|
||||||
+ Remove `-g` from that line
|
+ Remove `-g` from that line
|
||||||
+ Find the line containing `zlib1.lib $(EX_LIBS)`
|
+ Find the line containing `zlib1.lib $(EX_LIBS)`
|
||||||
+ Replace `zlib1.lib` **with** `zlib.lib` in line
|
+ Replace `zlib1.lib` **with** `zlib.lib` in line
|
||||||
1. Build OpenSSL:
|
1. Build OpenSSL:
|
||||||
|
|
||||||
nmake -f .\ms\ntdll.mak
|
nmake -f .\ms\ntdll.mak
|
||||||
|
|
||||||
|
|
||||||
1. ***Optional***. Test OpenSSL:
|
1. ***Optional***. Test OpenSSL:
|
||||||
|
|
||||||
nmake -f .\ms\ntdll.mak test
|
nmake -f .\ms\ntdll.mak test
|
||||||
|
|
||||||
|
|
||||||
Somewhere near the end of test you should see:
|
Somewhere near the end of test you should see:
|
||||||
|
|
||||||
Available compression methods:
|
Available compression methods:
|
||||||
1: zlib compression
|
1: zlib compression
|
||||||
|
|
||||||
|
|
||||||
And in the very end you should see `passed all tests`.
|
And in the very end you should see `passed all tests`.
|
||||||
|
|
||||||
1. Install OpenSSL:
|
1. Install OpenSSL:
|
||||||
|
|
||||||
nmake -f .\ms\ntdll.mak install
|
nmake -f .\ms\ntdll.mak install
|
||||||
|
|
||||||
|
|
||||||
# Build Boost #
|
# Build Boost #
|
||||||
|
|
||||||
1. Unpack Boost into `\sources\boost\`.
|
1. Unpack Boost into `\sources\boost\`.
|
||||||
1. Open `VS2013 x64 Native Tools Command Prompt`.
|
1. Open `VS2013 x64 Native Tools Command Prompt`.
|
||||||
1. Navigate to Boost source folder.
|
1. Navigate to Boost source folder.
|
||||||
1. Build and install bjam (aka Boost-Build):
|
1. Build and install bjam (aka Boost-Build):
|
||||||
|
|
||||||
CD .\tools\build
|
CD .\tools\build
|
||||||
.\bootstrap.bat vc12
|
.\bootstrap.bat vc12
|
||||||
.\b2.exe --toolset=msvc architecture=x86 address-model=64 --prefix=T:\install\bjam link=shared runtime-link=shared variant=release debug-symbols=off warnings=off warnings-as-errors=off inlining=full optimization=speed "cflags=/O2 /GL /Gy /favor:blend" "linkflags=/NOLOGO /OPT:REF /OPT:ICF=5 /LTCG" install
|
.\b2.exe --toolset=msvc architecture=x86 address-model=64 --prefix=T:\install\bjam link=shared runtime-link=shared variant=release debug-symbols=off warnings=off warnings-as-errors=off inlining=full optimization=speed "cflags=/O2 /GL /Gy /favor:blend" "linkflags=/NOLOGO /OPT:REF /OPT:ICF=5 /LTCG" install
|
||||||
CD ..\..\
|
CD ..\..\
|
||||||
|
|
||||||
|
|
||||||
1. Build and install Boost:
|
1. Build and install Boost:
|
||||||
|
|
||||||
SET "PATH=T:\install\bjam\bin;%PATH%"
|
SET "PATH=T:\install\bjam\bin;%PATH%"
|
||||||
bjam -j2 -q --with-system --toolset=msvc --layout=system --prefix=T:\install\boost link=shared runtime-link=shared variant=release debug-symbols=off threading=multi address-model=64 host-os=windows target-os=windows embed-manifest=on architecture=x86 warnings=off warnings-as-errors=off inlining=full optimization=speed "cflags=/O2 /GL /favor:blend" "linkflags=/NOLOGO /OPT:REF /OPT:ICF=5 /LTCG" install
|
bjam -j2 -q --with-system --toolset=msvc --layout=system --prefix=T:\install\boost link=shared runtime-link=shared variant=release debug-symbols=off threading=multi address-model=64 host-os=windows target-os=windows embed-manifest=on architecture=x86 warnings=off warnings-as-errors=off inlining=full optimization=speed "cflags=/O2 /GL /favor:blend" "linkflags=/NOLOGO /OPT:REF /OPT:ICF=5 /LTCG" install
|
||||||
XCOPY /Y /Q /I .\*.jam T:\install\boost\
|
XCOPY /Y /Q /I .\*.jam T:\install\boost\
|
||||||
COPY /Y Jamroot T:\install\boost\
|
COPY /Y Jamroot T:\install\boost\
|
||||||
|
|
||||||
|
|
||||||
# Build libtorrent #
|
# Build libtorrent #
|
||||||
|
|
||||||
1. Unpack libtorrent into `\sources\libtorrent\`.
|
1. Unpack libtorrent into `\sources\libtorrent\`.
|
||||||
1. Open `VS2013 x64 Native Tools Command Prompt`.
|
1. Open `VS2013 x64 Native Tools Command Prompt`.
|
||||||
1. Navigate to libtorrent source folder.
|
1. Navigate to libtorrent source folder.
|
||||||
1. Edit `include/libtorrent/escape_string.hpp` to fix symbol export with dynamic linking:
|
1. Edit `include/libtorrent/escape_string.hpp` to fix symbol export with dynamic linking:
|
||||||
+ Replace `TORRENT_EXTRA_EXPORT std::string base32decode(std::string const& s);` **with**<br />
|
+ Replace `TORRENT_EXTRA_EXPORT std::string base32decode(std::string const& s);` **with**<br />
|
||||||
`TORRENT_EXPORT std::string base32decode(std::string const& s);`
|
`TORRENT_EXPORT std::string base32decode(std::string const& s);`
|
||||||
1. Build and install libtorrent:
|
1. Build and install libtorrent:
|
||||||
|
|
||||||
SET "PATH=T:\install\bjam\bin;%PATH%"
|
SET "PATH=T:\install\bjam\bin;%PATH%"
|
||||||
bjam -j2 -q --toolset=msvc --prefix=T:\install\libtorrent boost=system boost-link=shared link=shared runtime-link=shared variant=release debug-symbols=off resolve-countries=on full-stats=on export-extra=off ipv6=on dht-support=on character-set=unicode geoip=static encryption=openssl windows-version=vista threading=multi address-model=64 host-os=windows target-os=windows embed-manifest=on architecture=x86 warnings=off warnings-as-errors=off inlining=full optimization=speed "cflags=/O2 /GL /favor:blend" "linkflags=/NOLOGO /OPT:REF /OPT:ICF=5 /LTCG" "include=T:\install\OpenSSL\include" "include=T:\install\Boost\include" "library-path=T:\install\OpenSSL\lib" "library-path=T:\install\Boost\lib" "define=BOOST_ALL_NO_LIB" install
|
bjam -j2 -q --toolset=msvc --prefix=T:\install\libtorrent boost=system boost-link=shared link=shared runtime-link=shared variant=release debug-symbols=off resolve-countries=on full-stats=on export-extra=off ipv6=on dht-support=on character-set=unicode geoip=static encryption=openssl windows-version=vista threading=multi address-model=64 host-os=windows target-os=windows embed-manifest=on architecture=x86 warnings=off warnings-as-errors=off inlining=full optimization=speed "cflags=/O2 /GL /favor:blend" "linkflags=/NOLOGO /OPT:REF /OPT:ICF=5 /LTCG" "include=T:\install\OpenSSL\include" "include=T:\install\Boost\include" "library-path=T:\install\OpenSSL\lib" "library-path=T:\install\Boost\lib" "define=BOOST_ALL_NO_LIB" install
|
||||||
+ If you want to build For XP 64-bit or WinServer 2003 64-bit you must build with `windows-version=xp` instead of `windows-version=vista`
|
+ If you want to build For XP 64-bit or WinServer 2003 64-bit you must build with `windows-version=xp` instead of `windows-version=vista`
|
||||||
|
|
||||||
# Build Qt #
|
# Build Qt #
|
||||||
|
|
||||||
1. Unpack Qt into `\sources\Qt\`.
|
1. Unpack Qt into `\sources\Qt\`.
|
||||||
1. Open `VS2013 x64 Native Tools Command Prompt`.
|
1. Open `VS2013 x64 Native Tools Command Prompt`.
|
||||||
1. Navigate to Qt source folder.
|
1. Navigate to Qt source folder.
|
||||||
1. Build Qt:
|
1. Build Qt:
|
||||||
|
|
||||||
|
|
||||||
.\configure.exe -release -shared -opensource -confirm-license -platform win32-msvc2013 -arch windows -ltcg -no-fast -exceptions -no-accessibility -stl -no-xmlpatterns -no-sql-mysql -no-sql-psql -no-sql-oci -no-sql-odbc -no-sql-tds -no-sql-db2 -qt-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-qt3support -no-opengl -no-openvg -graphicssystem raster -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-dsp -no-vcproj -no-incredibuild-xge -plugin-manifests -process -mp -rtti -no-3dnow -mmx -sse -sse2 -openssl -no-dbus -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-webkit -no-script -no-scripttools -no-declarative -no-declarative-debug -no-style-s60 -no-style-windowsmobile -no-style-windowsce -no-style-cde -no-style-motif -qt-style-cleanlooks -qt-style-plastique -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -no-native-gestures -no-directwrite -qmake -nomake examples -nomake demos -nomake docs -I T:\install\OpenSSL\include -L T:\install\OpenSSL\lib -prefix T:\install\Qt
|
.\configure.exe -release -shared -opensource -confirm-license -platform win32-msvc2013 -arch windows -ltcg -no-fast -exceptions -no-accessibility -stl -no-xmlpatterns -no-sql-mysql -no-sql-psql -no-sql-oci -no-sql-odbc -no-sql-tds -no-sql-db2 -qt-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-qt3support -no-opengl -no-openvg -graphicssystem raster -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-dsp -no-vcproj -no-incredibuild-xge -plugin-manifests -process -mp -rtti -no-3dnow -mmx -sse -sse2 -openssl -no-dbus -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-webkit -no-script -no-scripttools -no-declarative -no-declarative-debug -no-style-s60 -no-style-windowsmobile -no-style-windowsce -no-style-cde -no-style-motif -qt-style-cleanlooks -qt-style-plastique -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -no-native-gestures -no-directwrite -qmake -nomake examples -nomake demos -nomake docs -I T:\install\OpenSSL\include -L T:\install\OpenSSL\lib -prefix T:\install\Qt
|
||||||
nmake sub-src
|
nmake sub-src
|
||||||
nmake sub-translations-make_default-ordered
|
nmake sub-translations-make_default-ordered
|
||||||
|
|
||||||
|
|
||||||
1. Install Qt:
|
1. Install Qt:
|
||||||
|
|
||||||
nmake install
|
nmake install
|
||||||
|
|
||||||
|
|
||||||
# Build qBittorrent #
|
# Build qBittorrent #
|
||||||
|
|
||||||
1. Unpack qbittorrent into `\sources\qbt\`.
|
1. Unpack qbittorrent into `\sources\qbt\`.
|
||||||
1. Open `VS2013 x64 Native Tools Command Prompt`.
|
1. Open `VS2013 x64 Native Tools Command Prompt`.
|
||||||
1. Navigate to qbittorrent source folder.
|
1. Navigate to qbittorrent source folder.
|
||||||
1. Prepare qBt sources:
|
1. Prepare qBt sources:
|
||||||
+ Unpack Maxmind GeoIP.dat file into `.\src\geoip\`
|
+ Unpack Maxmind GeoIP.dat file into `.\src\geoip\`
|
||||||
+ Edit `.\src\src.pro`:
|
+ Edit `.\src\src.pro`:
|
||||||
+ Find and remove line `DEFINES += BOOST_FILESYSTEM_VERSION=2`
|
+ Find and remove line `DEFINES += BOOST_FILESYSTEM_VERSION=2`
|
||||||
+ Edit `winconf-msvc.pri`:
|
+ Edit `winconf-msvc.pri`:
|
||||||
+ Find
|
+ Find
|
||||||
|
|
||||||
CONFIG(debug, debug|release) {
|
CONFIG(debug, debug|release) {
|
||||||
LIBS += libtorrentd.lib \
|
LIBS += libtorrentd.lib \
|
||||||
libboost_system-vc90-mt-sgd-1_51.lib
|
libboost_system-vc90-mt-sgd-1_51.lib
|
||||||
} else {
|
} else {
|
||||||
LIBS += libtorrent.lib \
|
LIBS += libtorrent.lib \
|
||||||
libboost_system-vc90-mt-s-1_51.lib
|
libboost_system-vc90-mt-s-1_51.lib
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
and replace with
|
and replace with
|
||||||
|
|
||||||
CONFIG(debug, debug|release) {
|
CONFIG(debug, debug|release) {
|
||||||
LIBS += torrent.lib \
|
LIBS += torrent.lib \
|
||||||
boost_system.lib
|
boost_system.lib
|
||||||
} else {
|
} else {
|
||||||
LIBS += torrent.lib \
|
LIBS += torrent.lib \
|
||||||
boost_system.lib
|
boost_system.lib
|
||||||
}
|
}
|
||||||
+ Edit `winconf.pri` and adjust paths accordingly (remember that `T:\install\` is used as an example):
|
+ Edit `winconf.pri` and adjust paths accordingly (remember that `T:\install\` is used as an example):
|
||||||
+ Find `INCLUDEPATH += $$quote(C:/qBittorrent/boost_1_51_0)`<br />
|
+ Find `INCLUDEPATH += $$quote(C:/qBittorrent/boost_1_51_0)`<br />
|
||||||
and replace with<br />
|
and replace with<br />
|
||||||
`INCLUDEPATH += $$quote(T:/install/Boost/include)`
|
`INCLUDEPATH += $$quote(T:/install/Boost/include)`
|
||||||
+ Find `INCLUDEPATH += $$quote(C:/qBittorrent/RC_0_16/include)`<br />
|
+ Find `INCLUDEPATH += $$quote(C:/qBittorrent/RC_0_16/include)`<br />
|
||||||
and replace with
|
and replace with
|
||||||
`INCLUDEPATH += $$quote(T:/install/libtorrent/include)`<br />
|
`INCLUDEPATH += $$quote(T:/install/libtorrent/include)`<br />
|
||||||
+ Find `INCLUDEPATH += $$quote(C:/qBittorrent/Zlib/include)`<br />
|
+ Find `INCLUDEPATH += $$quote(C:/qBittorrent/Zlib/include)`<br />
|
||||||
and replace with
|
and replace with
|
||||||
`INCLUDEPATH += $$quote(T:/install/Zlib/include)`<br />
|
`INCLUDEPATH += $$quote(T:/install/Zlib/include)`<br />
|
||||||
and insert `INCLUDEPATH += $$quote(T:/install/OpenSSL/include)` on next line
|
and insert `INCLUDEPATH += $$quote(T:/install/OpenSSL/include)` on next line
|
||||||
+ Find `LIBS += $$quote(-LC:/qBittorrent/boost_1_51_0/stage/lib)`<br />
|
+ Find `LIBS += $$quote(-LC:/qBittorrent/boost_1_51_0/stage/lib)`<br />
|
||||||
and replace with
|
and replace with
|
||||||
`LIBS += $$quote(-LT:/install/Boost/lib)`
|
`LIBS += $$quote(-LT:/install/Boost/lib)`
|
||||||
+ Find `LIBS += $$quote(-LC:/qBittorrent/RC_0_16/bin/<path-according-to-the-build-options-chosen>)`<br />
|
+ Find `LIBS += $$quote(-LC:/qBittorrent/RC_0_16/bin/<path-according-to-the-build-options-chosen>)`<br />
|
||||||
and replace with
|
and replace with
|
||||||
`LIBS += $$quote(-LT:/install/libtorrent/lib)`<br />
|
`LIBS += $$quote(-LT:/install/libtorrent/lib)`<br />
|
||||||
+ Find `LIBS += $$quote(-LC:/qBittorrent/Zlib/lib)`<br />
|
+ Find `LIBS += $$quote(-LC:/qBittorrent/Zlib/lib)`<br />
|
||||||
and replace with
|
and replace with
|
||||||
`LIBS += $$quote(-LT:/install/Zlib/lib)`<br />
|
`LIBS += $$quote(-LT:/install/Zlib/lib)`<br />
|
||||||
and insert `LIBS += $$quote(-LT:/install/OpenSSL/lib)` on next line
|
and insert `LIBS += $$quote(-LT:/install/OpenSSL/lib)` on next line
|
||||||
+ Find and remove the following lines:<br />
|
+ Find and remove the following lines:<br />
|
||||||
`DEFINES += BOOST_ASIO_SEPARATE_COMPILATION`<br />
|
`DEFINES += BOOST_ASIO_SEPARATE_COMPILATION`<br />
|
||||||
`DEFINES += BOOST_SYSTEM_STATIC_LINK=1`
|
`DEFINES += BOOST_SYSTEM_STATIC_LINK=1`
|
||||||
+ Find `DEFINES += BOOST_ALL_NO_LIB`<br />
|
+ Find `DEFINES += BOOST_ALL_NO_LIB`<br />
|
||||||
and insert `DEFINES += BOOST_ASIO_ENABLE_CANCELIO` on next line
|
and insert `DEFINES += BOOST_ASIO_ENABLE_CANCELIO` on next line
|
||||||
+ Find `DEFINES += BOOST_EXCEPTION_DISABLE`<br />
|
+ Find `DEFINES += BOOST_EXCEPTION_DISABLE`<br />
|
||||||
and insert
|
and insert
|
||||||
|
|
||||||
DEFINES += BOOST_ASIO_DYN_LINK
|
DEFINES += BOOST_ASIO_DYN_LINK
|
||||||
DEFINES += BOOST_ALL_DYN_LINK
|
DEFINES += BOOST_ALL_DYN_LINK
|
||||||
|
|
||||||
|
|
||||||
on previous line
|
on previous line
|
||||||
+ Find `DEFINES += TORRENT_USE_OPENSSL`<br />
|
+ Find `DEFINES += TORRENT_USE_OPENSSL`<br />
|
||||||
and insert `DEFINES += TORRENT_LINKING_SHARED` on next line
|
and insert `DEFINES += TORRENT_LINKING_SHARED` on next line
|
||||||
+ Find `DEFINES += _WIN32_WINNT=0x0500`<br />
|
+ Find `DEFINES += _WIN32_WINNT=0x0500`<br />
|
||||||
and replace with `DEFINES += _WIN32_WINNT=0x0600`
|
and replace with `DEFINES += _WIN32_WINNT=0x0600`
|
||||||
+ If you want to build For XP 64-bit or WinServer 2003 64-bit replace `DEFINES += _WIN32_WINNT=0x0500` with `DEFINES += _WIN32_WINNT=0x0501`
|
+ If you want to build For XP 64-bit or WinServer 2003 64-bit replace `DEFINES += _WIN32_WINNT=0x0500` with `DEFINES += _WIN32_WINNT=0x0501`
|
||||||
|
|
||||||
1. Build qBt:
|
1. Build qBt:
|
||||||
|
|
||||||
SET "PATH=T:\install\Qt\bin;%PATH%"
|
SET "PATH=T:\install\Qt\bin;%PATH%"
|
||||||
+ Update translations
|
+ Update translations
|
||||||
|
|
||||||
CD .\src
|
CD .\src
|
||||||
lupdate -no-obsolete ./src.pro
|
lupdate -no-obsolete ./src.pro
|
||||||
CD ..\
|
CD ..\
|
||||||
+ Build
|
+ Build
|
||||||
|
|
||||||
MD build
|
MD build
|
||||||
CD build
|
CD build
|
||||||
qmake -config release -r ../qbittorrent.pro "CONFIG += warn_off msvc_mp rtti ltcg mmx sse sse2" "CONFIG -= 3dnow"
|
qmake -config release -r ../qbittorrent.pro "CONFIG += warn_off msvc_mp rtti ltcg mmx sse sse2" "CONFIG -= 3dnow"
|
||||||
nmake
|
nmake
|
||||||
|
|
||||||
1. Install qBt:
|
1. Install qBt:
|
||||||
|
|
||||||
XCOPY /Y /Q /I .\src\release\qbittorrent.exe T:\install\qBittorrent\
|
XCOPY /Y /Q /I .\src\release\qbittorrent.exe T:\install\qBittorrent\
|
||||||
FOR %X IN (QtCore4.dll QtGui4.dll QtNetwork4.dll QtXml4.dll) DO (
|
FOR %X IN (QtCore4.dll QtGui4.dll QtNetwork4.dll QtXml4.dll) DO (
|
||||||
COPY /Y T:\install\Qt\bin\%X T:\install\qBittorrent\
|
COPY /Y T:\install\Qt\bin\%X T:\install\qBittorrent\
|
||||||
)
|
)
|
||||||
XCOPY /Y /Q /I T:\install\Qt\plugins\imageformats\qico4.dll T:\install\qBittorrent\plugins\imageformats\
|
XCOPY /Y /Q /I T:\install\Qt\plugins\imageformats\qico4.dll T:\install\qBittorrent\plugins\imageformats\
|
||||||
FOR /F "usebackq" %X IN (`DIR /B "T:\sources\qbt\src\qt-translations\"`) DO (
|
FOR /F "usebackq" %X IN (`DIR /B "T:\sources\qbt\src\qt-translations\"`) DO (
|
||||||
IF EXIST "T:\install\Qt\translations\%X" (
|
IF EXIST "T:\install\Qt\translations\%X" (
|
||||||
COPY /Y "T:\install\Qt\translations\%X" "T:\sources\qbt\src\qt-translations\"
|
COPY /Y "T:\install\Qt\translations\%X" "T:\sources\qbt\src\qt-translations\"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
XCOPY /Y /Q /I T:\sources\qbt\src\qt-translations\qt_* T:\install\qBittorrent\translations\
|
XCOPY /Y /Q /I T:\sources\qbt\src\qt-translations\qt_* T:\install\qBittorrent\translations\
|
||||||
XCOPY /Y /Q /I T:\install\OpenSSL\bin\*.dll T:\install\qBittorrent\
|
XCOPY /Y /Q /I T:\install\OpenSSL\bin\*.dll T:\install\qBittorrent\
|
||||||
XCOPY /Y /Q /I T:\install\libtorrent\lib\torrent.dll T:\install\qBittorrent\
|
XCOPY /Y /Q /I T:\install\libtorrent\lib\torrent.dll T:\install\qBittorrent\
|
||||||
XCOPY /Y /Q /I T:\install\Boost\lib\*.dll T:\install\qBittorrent\
|
XCOPY /Y /Q /I T:\install\Boost\lib\*.dll T:\install\qBittorrent\
|
||||||
echo [Paths] > T:\install\qBittorrent\qt.conf
|
echo [Paths] > T:\install\qBittorrent\qt.conf
|
||||||
echo Translations = ./translations >> T:\install\qBittorrent\qt.conf
|
echo Translations = ./translations >> T:\install\qBittorrent\qt.conf
|
||||||
echo Plugins = ./plugins >> T:\install\qBittorrent\qt.conf
|
echo Plugins = ./plugins >> T:\install\qBittorrent\qt.conf
|
||||||
|
|
||||||
# Using resulting binaries on different computers #
|
# Using resulting binaries on different computers #
|
||||||
|
|
||||||
If you want to use the resulting binaries on other Windows computers (or redistribute them) you will need [Visual C++ Redistributable Packages for Visual Studio 2013 (x64)](http://www.microsoft.com/en-us/download/details.aspx?id=40784). Users must have it installed in order to use any x86\_64 software compiled with Visual Studio 2013. If you are using qBt on computer, which was used for building it, you don't need VC++ 2013 x64 Redistributable Package, because you already have it installed (it came with Visual Studio 2013).
|
If you want to use the resulting binaries on other Windows computers (or redistribute them) you will need [Visual C++ Redistributable Packages for Visual Studio 2013 (x64)](http://www.microsoft.com/en-us/download/details.aspx?id=40784). Users must have it installed in order to use any x86\_64 software compiled with Visual Studio 2013. If you are using qBt on computer, which was used for building it, you don't need VC++ 2013 x64 Redistributable Package, because you already have it installed (it came with Visual Studio 2013).
|
||||||
|
|
||||||
Alternatively you can copy redistributable dlls into program folder like this:
|
Alternatively you can copy redistributable dlls into program folder like this:
|
||||||
> XCOPY /Y /Q /I "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT\\*.dll" T:\install\qBittorrent\
|
> XCOPY /Y /Q /I "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT\\*.dll" T:\install\qBittorrent\
|
||||||
|
|
Loading…
Reference in a new issue