From 61d9fcd75335fc8d3cad3e76e32727486d810e02 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Fri, 29 Sep 2017 20:09:49 +0300 Subject: [PATCH] Reformat Windows build configuration files --- conf.pri.windows | 61 +++++++++++++++++++++++++++++++ winconf-mingw.pri | 35 ------------------ winconf-msvc.pri | 32 ----------------- winconf.pri | 92 ++++++++++++++++++++++++++--------------------- 4 files changed, 113 insertions(+), 107 deletions(-) create mode 100644 conf.pri.windows delete mode 100644 winconf-mingw.pri delete mode 100644 winconf-msvc.pri diff --git a/conf.pri.windows b/conf.pri.windows new file mode 100644 index 000000000..f6ee4172c --- /dev/null +++ b/conf.pri.windows @@ -0,0 +1,61 @@ +# 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 diff --git a/winconf-mingw.pri b/winconf-mingw.pri deleted file mode 100644 index de56bda16..000000000 --- a/winconf-mingw.pri +++ /dev/null @@ -1,35 +0,0 @@ -strace_win{ - contains(QMAKE_HOST.arch, x86) { - # i686 arch requires frame pointer preservation - QMAKE_CXXFLAGS_RELEASE += -fno-omit-frame-pointer - QMAKE_CXXFLAGS_DEBUG += -fno-omit-frame-pointer - } - - QMAKE_LFLAGS += -Wl,--export-all-symbols - - LIBS += libdbghelp -} - -CONFIG(debug, debug|release) { - # Make sure binary is not relocatable, otherwise debugging will fail - QMAKE_LFLAGS -= -Wl,--dynamicbase -} - -RC_FILE = qbittorrent_mingw.rc - -# Adapt the lib names/versions accordingly -CONFIG(debug, debug|release) { - LIBS += libtorrent-rasterbar \ - libboost_system-mt \ - libboost_filesystem-mt \ - libboost_thread_win32-mt -} else { - LIBS += libtorrent-rasterbar \ - libboost_system-mt \ - libboost_filesystem-mt \ - libboost_thread_win32-mt -} - -LIBS += libadvapi32 libshell32 libuser32 -LIBS += libcrypto libssl libwsock32 libws2_32 libz libiconv -LIBS += libpowrprof diff --git a/winconf-msvc.pri b/winconf-msvc.pri deleted file mode 100644 index f27a1f791..000000000 --- a/winconf-msvc.pri +++ /dev/null @@ -1,32 +0,0 @@ -strace_win { - contains(QMAKE_HOST.arch, x86) { - # i686 arch requires frame pointer preservation - QMAKE_CXXFLAGS_RELEASE += -Oy- - QMAKE_CXXFLAGS_DEBUG += -Oy- - } - release { - QMAKE_CXXFLAGS_RELEASE += -Zi - QMAKE_LFLAGS += "/DEBUG" - } - LIBS += dbghelp.lib -} - -CONFIG -= embed_manifest_exe -QMAKE_LFLAGS += "/MANIFEST:EMBED /MANIFESTINPUT:$$quote($${PWD}/src/qbittorrent.exe.manifest) /STACK:0x800000" -QMAKE_LFLAGS_RELEASE += "/OPT:REF /OPT:ICF" - -RC_FILE = qbittorrent.rc - -# Adapt the lib names/versions accordingly -CONFIG(debug, debug|release) { - LIBS += libtorrentd.lib \ - libboost_system-vc90-mt-sgd-1_51.lib -} else { - LIBS += libtorrent.lib \ - libboost_system-vc90-mt-s-1_51.lib -} - -LIBS += advapi32.lib shell32.lib crypt32.lib User32.lib -LIBS += libeay32.lib ssleay32.lib -LIBS += PowrProf.lib -LIBS += zlib.lib diff --git a/winconf.pri b/winconf.pri index dcec302ca..146e5eebb 100644 --- a/winconf.pri +++ b/winconf.pri @@ -1,50 +1,18 @@ -# Adapt these paths on Windows - -# Point this to the boost include folder -INCLUDEPATH += $$quote(C:/qBittorrent/boost_1_51_0) -# Point this to the libtorrent include folder -INCLUDEPATH += $$quote(C:/qBittorrent/RC_0_16/include) -# Point this to the zlib include folder -INCLUDEPATH += $$quote(C:/qBittorrent/Zlib/include) -# Point this to the openssl include folder -INCLUDEPATH += $$quote(C:/qBittorrent/openssl/include) - -# Point this to the boost lib folder -LIBS += $$quote(-LC:/qBittorrent/boost_1_51_0/stage/lib) -# Point this to the libtorrent lib folder -LIBS += $$quote(-LC:/qBittorrent/RC_0_16/bin/path-according-to-the-build-options-chosen) -# Point this to the zlib lib folder -LIBS += $$quote(-LC:/qBittorrent/Zlib/lib) -# Point this to the openssl lib folder -LIBS += $$quote(-LC:/qBittorrent/openssl/lib) - -# BOOST DEFINES -DEFINES += BOOST_ALL_NO_LIB DEFINES += BOOST_ASIO_HASH_MAP_BUCKETS=1021 -# Disable this if building against libtorrent 1.1.x (RC_1_1) -DEFINES += BOOST_ASIO_SEPARATE_COMPILATION # After 1.55 some Windows users reported regular UI freezes. # This makes ASIO use the pre-1.56 way of doing things. See issue #2003 DEFINES += BOOST_ASIO_DISABLE_CONNECTEX -# Boost 1.60+ defaults to Vista+ support. The define below enables XP support again. -DEFINES += BOOST_USE_WINAPI_VERSION=0x0501 DEFINES += BOOST_EXCEPTION_DISABLE -DEFINES += BOOST_SYSTEM_STATIC_LINK=1 -# LIBTORRENT DEFINES DEFINES += TORRENT_USE_OPENSSL DEFINES += TORRENT_DISABLE_GEO_IP DEFINES += TORRENT_DISABLE_RESOLVE_COUNTRIES -# QBT DEFINES DEFINES += UNICODE DEFINES += _UNICODE DEFINES += WIN32 DEFINES += _WIN32 DEFINES += WIN32_LEAN_AND_MEAN -DEFINES += NTDDI_VERSION=0x05010000 -DEFINES += _WIN32_WINNT=0x0501 -DEFINES += _WIN32_IE=0x0501 DEFINES += _CRT_SECURE_NO_DEPRECATE DEFINES += _SCL_SECURE_NO_DEPRECATE DEFINES += __USE_W32_SOCKETS @@ -52,17 +20,61 @@ DEFINES += _FILE_OFFSET_BITS=64 DEFINES += NOMINMAX CONFIG(debug, debug|release) { - DEFINES += TORRENT_DEBUG -} else { - DEFINES += NDEBUG + DEFINES += TORRENT_DEBUG +} +else { + DEFINES += NDEBUG } - -# Enable backtrace support -CONFIG += strace_win win32-g++* { - include(winconf-mingw.pri) + CONFIG(debug, debug|release) { + # Make sure binary is not relocatable, otherwise debugging will fail + QMAKE_LFLAGS -= -Wl,--dynamicbase + } + + RC_FILE = qbittorrent_mingw.rc + + LIBS += libadvapi32 libshell32 libuser32 libole32 libwsock32 libws2_32 libpowrprof +} +else:win32-msvc* { + CONFIG -= embed_manifest_exe + QMAKE_LFLAGS += "/MANIFEST:EMBED /MANIFESTINPUT:$$quote($${PWD}/src/qbittorrent.exe.manifest) /STACK:0x800000" + QMAKE_LFLAGS_RELEASE += "/OPT:REF /OPT:ICF" + + RC_FILE = qbittorrent.rc + + LIBS += advapi32.lib shell32.lib crypt32.lib User32.lib ole32.lib PowrProf.lib +} + +# See an example build configuration in "conf.pri.windows" +exists(conf.pri) { + include(conf.pri) } else { - include(winconf-msvc.pri) + error("'conf.pri' does not exist. See an example configuration in 'conf.pri.windows'.") +} + +# Stack trace support can be enabled in 'conf.pri' +strace_win { + win32-g++* { + contains(QMAKE_HOST.arch, x86) { + # i686 arch requires frame pointer preservation + QMAKE_CXXFLAGS += -fno-omit-frame-pointer + } + + QMAKE_LFLAGS += -Wl,--export-all-symbols + + LIBS += libdbghelp + } + else:win32-msvc* { + contains(QMAKE_HOST.arch, x86) { + # i686 arch requires frame pointer preservation + QMAKE_CXXFLAGS += -Oy- + } + + QMAKE_CXXFLAGS *= -Zi + QMAKE_LFLAGS *= "/DEBUG" + + LIBS += dbghelp.lib + } }