Vladimir Golovnev
1 year ago
committed by
GitHub
26 changed files with 8 additions and 14523 deletions
@ -1,101 +0,0 @@ |
|||||||
version: '{branch}-{build}' |
|
||||||
|
|
||||||
# Do not build on tags (GitHub only) |
|
||||||
skip_tags: true |
|
||||||
|
|
||||||
image: Visual Studio 2022 |
|
||||||
|
|
||||||
branches: |
|
||||||
except: # blacklist |
|
||||||
- coverity_scan |
|
||||||
|
|
||||||
environment: |
|
||||||
REPO_DIR: &REPO_DIR c:\qbittorrent |
|
||||||
CACHE_DIR: &CACHE_DIR c:\qbt_cache |
|
||||||
|
|
||||||
QBT_VER_URL: https://builds.shiki.hu/appveyor/version_64 |
|
||||||
QBT_LIB_URL: https://builds.shiki.hu/appveyor/qbt_libraries_64.7z |
|
||||||
|
|
||||||
# project directory |
|
||||||
clone_folder: *REPO_DIR |
|
||||||
|
|
||||||
# cache size should < 100MB (after compressing with fastest option): |
|
||||||
# see: https://www.appveyor.com/docs/build-cache#save-update-cache-before-build-finishes |
|
||||||
cache: |
|
||||||
- *CACHE_DIR |
|
||||||
|
|
||||||
clone_depth: 50 |
|
||||||
|
|
||||||
install: |
|
||||||
# check if library needs update |
|
||||||
- appveyor DownloadFile "%QBT_VER_URL%" -FileName "c:\version_new" && SET /P newVersion=<"c:\version_new" |
|
||||||
- IF EXIST "%CACHE_DIR%\version" (SET /P oldVersion=<"%CACHE_DIR%\version") |
|
||||||
- IF NOT EXIST "%CACHE_DIR%\version" (SET updateCache=1) |
|
||||||
- IF NOT "%oldVersion%" == "%newVersion%" (SET updateCache=1) |
|
||||||
# update library |
|
||||||
- IF "%updateCache%" == "1" (ECHO "--- Will redownload libraries ---" && |
|
||||||
RMDIR /S /Q "%CACHE_DIR%" & MKDIR "%CACHE_DIR%" && |
|
||||||
appveyor DownloadFile "%QBT_LIB_URL%" -FileName "c:\qbt_lib.7z" && 7z x "c:\qbt_lib.7z" -o"%CACHE_DIR%" > nul && |
|
||||||
COPY "c:\version_new" "%CACHE_DIR%\version") |
|
||||||
|
|
||||||
before_build: |
|
||||||
# setup env |
|
||||||
- CALL "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 |
|
||||||
- SET PATH=%PATH%;C:\Qt\5.15.2\msvc2019_64\bin;%CACHE_DIR%\jom |
|
||||||
# setup project |
|
||||||
- COPY /Y "%CACHE_DIR%\conf.pri" "%REPO_DIR%" |
|
||||||
# workarounds |
|
||||||
- MKDIR "c:\qbt" |
|
||||||
- MKLINK /J "c:\qbt\base" "%CACHE_DIR%\base" |
|
||||||
|
|
||||||
build_script: |
|
||||||
- cd "%REPO_DIR%" |
|
||||||
# lupdate chokes when it parses headers from system includes, especially Boost |
|
||||||
# it also chokes with the sources from src/app/qtlocalpeer (formerly qtsingleapplication) |
|
||||||
# Workaround: temporarily rename them to run lupdate with the .pro file |
|
||||||
- RENAME conf.pri conf.pri.temp |
|
||||||
- RENAME src\app\qtlocalpeer qtlocalpeer.temp |
|
||||||
- lupdate qbittorrent.pro |
|
||||||
- RENAME conf.pri.temp conf.pri |
|
||||||
- RENAME src\app\qtlocalpeer.temp qtlocalpeer |
|
||||||
- qmake qbittorrent.pro && cd src && qmake src.pro |
|
||||||
- jom -j2 -f Makefile.Release |
|
||||||
|
|
||||||
after_build: |
|
||||||
- cd "%REPO_DIR%" |
|
||||||
- MKDIR upload |
|
||||||
- COPY dist\windows\qt.conf upload |
|
||||||
- COPY src\release\qbittorrent.exe upload |
|
||||||
- COPY src\release\qbittorrent.pdb upload |
|
||||||
- COPY "%CACHE_DIR%\base\bin\libcrypto-1_1-x64.dll" upload |
|
||||||
- COPY "%CACHE_DIR%\base\bin\libcrypto-1_1-x64.pdb" upload |
|
||||||
- COPY "%CACHE_DIR%\base\bin\libssl-1_1-x64.dll" upload |
|
||||||
- COPY "%CACHE_DIR%\base\bin\libssl-1_1-x64.pdb" upload |
|
||||||
- COPY "%CACHE_DIR%\base\bin\torrent-rasterbar.dll" upload |
|
||||||
- COPY "%CACHE_DIR%\base\bin\torrent-rasterbar.pdb" upload |
|
||||||
- COPY "%CACHE_DIR%\base\lib\zlib1.dll" upload |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Core.dll upload |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Gui.dll upload |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Network.dll upload |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Sql.dll upload |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Svg.dll upload |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Widgets.dll upload |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5WinExtras.dll upload |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\bin\Qt5Xml.dll upload |
|
||||||
- MKDIR upload\plugins\iconengines |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\iconengines\qsvgicon.dll upload\plugins\iconengines |
|
||||||
- MKDIR upload\plugins\imageformats |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qico.dll upload\plugins\imageformats |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\imageformats\qsvg.dll upload\plugins\imageformats |
|
||||||
- MKDIR upload\plugins\platforms |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\platforms\qwindows.dll upload\plugins\platforms |
|
||||||
- MKDIR upload\plugins\sqldrivers |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\sqldrivers\qsqlite.dll upload\plugins\sqldrivers |
|
||||||
- MKDIR upload\plugins\styles |
|
||||||
- COPY C:\Qt\5.15.2\msvc2019_64\plugins\styles\qwindowsvistastyle.dll upload\plugins\styles |
|
||||||
|
|
||||||
test: off |
|
||||||
|
|
||||||
artifacts: |
|
||||||
- path: upload |
|
||||||
name: qBittorrent-Appveyor_Windows-x64 |
|
@ -1,348 +0,0 @@ |
|||||||
#! /bin/sh |
|
||||||
# Wrapper for compilers which do not understand '-c -o'. |
|
||||||
|
|
||||||
scriptversion=2018-03-07.03; # UTC |
|
||||||
|
|
||||||
# Copyright (C) 1999-2018 Free Software Foundation, Inc. |
|
||||||
# Written by Tom Tromey <tromey@cygnus.com>. |
|
||||||
# |
|
||||||
# This program is free software; you can redistribute it and/or modify |
|
||||||
# it under the terms of the GNU General Public License as published by |
|
||||||
# the Free Software Foundation; either version 2, or (at your option) |
|
||||||
# any later version. |
|
||||||
# |
|
||||||
# This program is distributed in the hope that it will be useful, |
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
# GNU General Public License for more details. |
|
||||||
# |
|
||||||
# You should have received a copy of the GNU General Public License |
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>. |
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you |
|
||||||
# distribute this file as part of a program that contains a |
|
||||||
# configuration script generated by Autoconf, you may include it under |
|
||||||
# the same distribution terms that you use for the rest of that program. |
|
||||||
|
|
||||||
# This file is maintained in Automake, please report |
|
||||||
# bugs to <bug-automake@gnu.org> or send patches to |
|
||||||
# <automake-patches@gnu.org>. |
|
||||||
|
|
||||||
nl=' |
|
||||||
' |
|
||||||
|
|
||||||
# We need space, tab and new line, in precisely that order. Quoting is |
|
||||||
# there to prevent tools from complaining about whitespace usage. |
|
||||||
IFS=" "" $nl" |
|
||||||
|
|
||||||
file_conv= |
|
||||||
|
|
||||||
# func_file_conv build_file lazy |
|
||||||
# Convert a $build file to $host form and store it in $file |
|
||||||
# Currently only supports Windows hosts. If the determined conversion |
|
||||||
# type is listed in (the comma separated) LAZY, no conversion will |
|
||||||
# take place. |
|
||||||
func_file_conv () |
|
||||||
{ |
|
||||||
file=$1 |
|
||||||
case $file in |
|
||||||
/ | /[!/]*) # absolute file, and not a UNC file |
|
||||||
if test -z "$file_conv"; then |
|
||||||
# lazily determine how to convert abs files |
|
||||||
case `uname -s` in |
|
||||||
MINGW*) |
|
||||||
file_conv=mingw |
|
||||||
;; |
|
||||||
CYGWIN*) |
|
||||||
file_conv=cygwin |
|
||||||
;; |
|
||||||
*) |
|
||||||
file_conv=wine |
|
||||||
;; |
|
||||||
esac |
|
||||||
fi |
|
||||||
case $file_conv/,$2, in |
|
||||||
*,$file_conv,*) |
|
||||||
;; |
|
||||||
mingw/*) |
|
||||||
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` |
|
||||||
;; |
|
||||||
cygwin/*) |
|
||||||
file=`cygpath -m "$file" || echo "$file"` |
|
||||||
;; |
|
||||||
wine/*) |
|
||||||
file=`winepath -w "$file" || echo "$file"` |
|
||||||
;; |
|
||||||
esac |
|
||||||
;; |
|
||||||
esac |
|
||||||
} |
|
||||||
|
|
||||||
# func_cl_dashL linkdir |
|
||||||
# Make cl look for libraries in LINKDIR |
|
||||||
func_cl_dashL () |
|
||||||
{ |
|
||||||
func_file_conv "$1" |
|
||||||
if test -z "$lib_path"; then |
|
||||||
lib_path=$file |
|
||||||
else |
|
||||||
lib_path="$lib_path;$file" |
|
||||||
fi |
|
||||||
linker_opts="$linker_opts -LIBPATH:$file" |
|
||||||
} |
|
||||||
|
|
||||||
# func_cl_dashl library |
|
||||||
# Do a library search-path lookup for cl |
|
||||||
func_cl_dashl () |
|
||||||
{ |
|
||||||
lib=$1 |
|
||||||
found=no |
|
||||||
save_IFS=$IFS |
|
||||||
IFS=';' |
|
||||||
for dir in $lib_path $LIB |
|
||||||
do |
|
||||||
IFS=$save_IFS |
|
||||||
if $shared && test -f "$dir/$lib.dll.lib"; then |
|
||||||
found=yes |
|
||||||
lib=$dir/$lib.dll.lib |
|
||||||
break |
|
||||||
fi |
|
||||||
if test -f "$dir/$lib.lib"; then |
|
||||||
found=yes |
|
||||||
lib=$dir/$lib.lib |
|
||||||
break |
|
||||||
fi |
|
||||||
if test -f "$dir/lib$lib.a"; then |
|
||||||
found=yes |
|
||||||
lib=$dir/lib$lib.a |
|
||||||
break |
|
||||||
fi |
|
||||||
done |
|
||||||
IFS=$save_IFS |
|
||||||
|
|
||||||
if test "$found" != yes; then |
|
||||||
lib=$lib.lib |
|
||||||
fi |
|
||||||
} |
|
||||||
|
|
||||||
# func_cl_wrapper cl arg... |
|
||||||
# Adjust compile command to suit cl |
|
||||||
func_cl_wrapper () |
|
||||||
{ |
|
||||||
# Assume a capable shell |
|
||||||
lib_path= |
|
||||||
shared=: |
|
||||||
linker_opts= |
|
||||||
for arg |
|
||||||
do |
|
||||||
if test -n "$eat"; then |
|
||||||
eat= |
|
||||||
else |
|
||||||
case $1 in |
|
||||||
-o) |
|
||||||
# configure might choose to run compile as 'compile cc -o foo foo.c'. |
|
||||||
eat=1 |
|
||||||
case $2 in |
|
||||||
*.o | *.[oO][bB][jJ]) |
|
||||||
func_file_conv "$2" |
|
||||||
set x "$@" -Fo"$file" |
|
||||||
shift |
|
||||||
;; |
|
||||||
*) |
|
||||||
func_file_conv "$2" |
|
||||||
set x "$@" -Fe"$file" |
|
||||||
shift |
|
||||||
;; |
|
||||||
esac |
|
||||||
;; |
|
||||||
-I) |
|
||||||
eat=1 |
|
||||||
func_file_conv "$2" mingw |
|
||||||
set x "$@" -I"$file" |
|
||||||
shift |
|
||||||
;; |
|
||||||
-I*) |
|
||||||
func_file_conv "${1#-I}" mingw |
|
||||||
set x "$@" -I"$file" |
|
||||||
shift |
|
||||||
;; |
|
||||||
-l) |
|
||||||
eat=1 |
|
||||||
func_cl_dashl "$2" |
|
||||||
set x "$@" "$lib" |
|
||||||
shift |
|
||||||
;; |
|
||||||
-l*) |
|
||||||
func_cl_dashl "${1#-l}" |
|
||||||
set x "$@" "$lib" |
|
||||||
shift |
|
||||||
;; |
|
||||||
-L) |
|
||||||
eat=1 |
|
||||||
func_cl_dashL "$2" |
|
||||||
;; |
|
||||||
-L*) |
|
||||||
func_cl_dashL "${1#-L}" |
|
||||||
;; |
|
||||||
-static) |
|
||||||
shared=false |
|
||||||
;; |
|
||||||
-Wl,*) |
|
||||||
arg=${1#-Wl,} |
|
||||||
save_ifs="$IFS"; IFS=',' |
|
||||||
for flag in $arg; do |
|
||||||
IFS="$save_ifs" |
|
||||||
linker_opts="$linker_opts $flag" |
|
||||||
done |
|
||||||
IFS="$save_ifs" |
|
||||||
;; |
|
||||||
-Xlinker) |
|
||||||
eat=1 |
|
||||||
linker_opts="$linker_opts $2" |
|
||||||
;; |
|
||||||
-*) |
|
||||||
set x "$@" "$1" |
|
||||||
shift |
|
||||||
;; |
|
||||||
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++) |
|
||||||
func_file_conv "$1" |
|
||||||
set x "$@" -Tp"$file" |
|
||||||
shift |
|
||||||
;; |
|
||||||
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) |
|
||||||
func_file_conv "$1" mingw |
|
||||||
set x "$@" "$file" |
|
||||||
shift |
|
||||||
;; |
|
||||||
*) |
|
||||||
set x "$@" "$1" |
|
||||||
shift |
|
||||||
;; |
|
||||||
esac |
|
||||||
fi |
|
||||||
shift |
|
||||||
done |
|
||||||
if test -n "$linker_opts"; then |
|
||||||
linker_opts="-link$linker_opts" |
|
||||||
fi |
|
||||||
exec "$@" $linker_opts |
|
||||||
exit 1 |
|
||||||
} |
|
||||||
|
|
||||||
eat= |
|
||||||
|
|
||||||
case $1 in |
|
||||||
'') |
|
||||||
echo "$0: No command. Try '$0 --help' for more information." 1>&2 |
|
||||||
exit 1; |
|
||||||
;; |
|
||||||
-h | --h*) |
|
||||||
cat <<\EOF |
|
||||||
Usage: compile [--help] [--version] PROGRAM [ARGS] |
|
||||||
|
|
||||||
Wrapper for compilers which do not understand '-c -o'. |
|
||||||
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining |
|
||||||
arguments, and rename the output as expected. |
|
||||||
|
|
||||||
If you are trying to build a whole package this is not the |
|
||||||
right script to run: please start by reading the file 'INSTALL'. |
|
||||||
|
|
||||||
Report bugs to <bug-automake@gnu.org>. |
|
||||||
EOF |
|
||||||
exit $? |
|
||||||
;; |
|
||||||
-v | --v*) |
|
||||||
echo "compile $scriptversion" |
|
||||||
exit $? |
|
||||||
;; |
|
||||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ |
|
||||||
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) |
|
||||||
func_cl_wrapper "$@" # Doesn't return... |
|
||||||
;; |
|
||||||
esac |
|
||||||
|
|
||||||
ofile= |
|
||||||
cfile= |
|
||||||
|
|
||||||
for arg |
|
||||||
do |
|
||||||
if test -n "$eat"; then |
|
||||||
eat= |
|
||||||
else |
|
||||||
case $1 in |
|
||||||
-o) |
|
||||||
# configure might choose to run compile as 'compile cc -o foo foo.c'. |
|
||||||
# So we strip '-o arg' only if arg is an object. |
|
||||||
eat=1 |
|
||||||
case $2 in |
|
||||||
*.o | *.obj) |
|
||||||
ofile=$2 |
|
||||||
;; |
|
||||||
*) |
|
||||||
set x "$@" -o "$2" |
|
||||||
shift |
|
||||||
;; |
|
||||||
esac |
|
||||||
;; |
|
||||||
*.c) |
|
||||||
cfile=$1 |
|
||||||
set x "$@" "$1" |
|
||||||
shift |
|
||||||
;; |
|
||||||
*) |
|
||||||
set x "$@" "$1" |
|
||||||
shift |
|
||||||
;; |
|
||||||
esac |
|
||||||
fi |
|
||||||
shift |
|
||||||
done |
|
||||||
|
|
||||||
if test -z "$ofile" || test -z "$cfile"; then |
|
||||||
# If no '-o' option was seen then we might have been invoked from a |
|
||||||
# pattern rule where we don't need one. That is ok -- this is a |
|
||||||
# normal compilation that the losing compiler can handle. If no |
|
||||||
# '.c' file was seen then we are probably linking. That is also |
|
||||||
# ok. |
|
||||||
exec "$@" |
|
||||||
fi |
|
||||||
|
|
||||||
# Name of file we expect compiler to create. |
|
||||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` |
|
||||||
|
|
||||||
# Create the lock directory. |
|
||||||
# Note: use '[/\\:.-]' here to ensure that we don't use the same name |
|
||||||
# that we are using for the .o file. Also, base the name on the expected |
|
||||||
# object file name, since that is what matters with a parallel build. |
|
||||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d |
|
||||||
while true; do |
|
||||||
if mkdir "$lockdir" >/dev/null 2>&1; then |
|
||||||
break |
|
||||||
fi |
|
||||||
sleep 1 |
|
||||||
done |
|
||||||
# FIXME: race condition here if user kills between mkdir and trap. |
|
||||||
trap "rmdir '$lockdir'; exit 1" 1 2 15 |
|
||||||
|
|
||||||
# Run the compile. |
|
||||||
"$@" |
|
||||||
ret=$? |
|
||||||
|
|
||||||
if test -f "$cofile"; then |
|
||||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile" |
|
||||||
elif test -f "${cofile}bj"; then |
|
||||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" |
|
||||||
fi |
|
||||||
|
|
||||||
rmdir "$lockdir" |
|
||||||
exit $ret |
|
||||||
|
|
||||||
# Local Variables: |
|
||||||
# mode: shell-script |
|
||||||
# sh-indentation: 2 |
|
||||||
# eval: (add-hook 'before-save-hook 'time-stamp) |
|
||||||
# time-stamp-start: "scriptversion=" |
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H" |
|
||||||
# time-stamp-time-zone: "UTC0" |
|
||||||
# time-stamp-end: "; # UTC" |
|
||||||
# End: |
|
File diff suppressed because it is too large
Load Diff
@ -1,518 +0,0 @@ |
|||||||
#!/bin/sh |
|
||||||
# install - install a program, script, or datafile |
|
||||||
|
|
||||||
scriptversion=2018-03-11.20; # UTC |
|
||||||
|
|
||||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was |
|
||||||
# later released in X11R6 (xc/config/util/install.sh) with the |
|
||||||
# following copyright and license. |
|
||||||
# |
|
||||||
# Copyright (C) 1994 X Consortium |
|
||||||
# |
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy |
|
||||||
# of this software and associated documentation files (the "Software"), to |
|
||||||
# deal in the Software without restriction, including without limitation the |
|
||||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
|
||||||
# sell copies of the Software, and to permit persons to whom the Software is |
|
||||||
# furnished to do so, subject to the following conditions: |
|
||||||
# |
|
||||||
# The above copyright notice and this permission notice shall be included in |
|
||||||
# all copies or substantial portions of the Software. |
|
||||||
# |
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|
||||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN |
|
||||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- |
|
||||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
||||||
# |
|
||||||
# Except as contained in this notice, the name of the X Consortium shall not |
|
||||||
# be used in advertising or otherwise to promote the sale, use or other deal- |
|
||||||
# ings in this Software without prior written authorization from the X Consor- |
|
||||||
# tium. |
|
||||||
# |
|
||||||
# |
|
||||||
# FSF changes to this file are in the public domain. |
|
||||||
# |
|
||||||
# Calling this script install-sh is preferred over install.sh, to prevent |
|
||||||
# 'make' implicit rules from creating a file called install from it |
|
||||||
# when there is no Makefile. |
|
||||||
# |
|
||||||
# This script is compatible with the BSD install script, but was written |
|
||||||
# from scratch. |
|
||||||
|
|
||||||
tab=' ' |
|
||||||
nl=' |
|
||||||
' |
|
||||||
IFS=" $tab$nl" |
|
||||||
|
|
||||||
# Set DOITPROG to "echo" to test this script. |
|
||||||
|
|
||||||
doit=${DOITPROG-} |
|
||||||
doit_exec=${doit:-exec} |
|
||||||
|
|
||||||
# Put in absolute file names if you don't have them in your path; |
|
||||||
# or use environment vars. |
|
||||||
|
|
||||||
chgrpprog=${CHGRPPROG-chgrp} |
|
||||||
chmodprog=${CHMODPROG-chmod} |
|
||||||
chownprog=${CHOWNPROG-chown} |
|
||||||
cmpprog=${CMPPROG-cmp} |
|
||||||
cpprog=${CPPROG-cp} |
|
||||||
mkdirprog=${MKDIRPROG-mkdir} |
|
||||||
mvprog=${MVPROG-mv} |
|
||||||
rmprog=${RMPROG-rm} |
|
||||||
stripprog=${STRIPPROG-strip} |
|
||||||
|
|
||||||
posix_mkdir= |
|
||||||
|
|
||||||
# Desired mode of installed file. |
|
||||||
mode=0755 |
|
||||||
|
|
||||||
chgrpcmd= |
|
||||||
chmodcmd=$chmodprog |
|
||||||
chowncmd= |
|
||||||
mvcmd=$mvprog |
|
||||||
rmcmd="$rmprog -f" |
|
||||||
stripcmd= |
|
||||||
|
|
||||||
src= |
|
||||||
dst= |
|
||||||
dir_arg= |
|
||||||
dst_arg= |
|
||||||
|
|
||||||
copy_on_change=false |
|
||||||
is_target_a_directory=possibly |
|
||||||
|
|
||||||
usage="\ |
|
||||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE |
|
||||||
or: $0 [OPTION]... SRCFILES... DIRECTORY |
|
||||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES... |
|
||||||
or: $0 [OPTION]... -d DIRECTORIES... |
|
||||||
|
|
||||||
In the 1st form, copy SRCFILE to DSTFILE. |
|
||||||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. |
|
||||||
In the 4th, create DIRECTORIES. |
|
||||||
|
|
||||||
Options: |
|
||||||
--help display this help and exit. |
|
||||||
--version display version info and exit. |
|
||||||
|
|
||||||
-c (ignored) |
|
||||||
-C install only if different (preserve the last data modification time) |
|
||||||
-d create directories instead of installing files. |
|
||||||
-g GROUP $chgrpprog installed files to GROUP. |
|
||||||
-m MODE $chmodprog installed files to MODE. |
|
||||||
-o USER $chownprog installed files to USER. |
|
||||||
-s $stripprog installed files. |
|
||||||
-t DIRECTORY install into DIRECTORY. |
|
||||||
-T report an error if DSTFILE is a directory. |
|
||||||
|
|
||||||
Environment variables override the default commands: |
|
||||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG |
|
||||||
RMPROG STRIPPROG |
|
||||||
" |
|
||||||
|
|
||||||
while test $# -ne 0; do |
|
||||||
case $1 in |
|
||||||
-c) ;; |
|
||||||
|
|
||||||
-C) copy_on_change=true;; |
|
||||||
|
|
||||||
-d) dir_arg=true;; |
|
||||||
|
|
||||||
-g) chgrpcmd="$chgrpprog $2" |
|
||||||
shift;; |
|
||||||
|
|
||||||
--help) echo "$usage"; exit $?;; |
|
||||||
|
|
||||||
-m) mode=$2 |
|
||||||
case $mode in |
|
||||||
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) |
|
||||||
echo "$0: invalid mode: $mode" >&2 |
|
||||||
exit 1;; |
|
||||||
esac |
|
||||||
shift;; |
|
||||||
|
|
||||||
-o) chowncmd="$chownprog $2" |
|
||||||
shift;; |
|
||||||
|
|
||||||
-s) stripcmd=$stripprog;; |
|
||||||
|
|
||||||
-t) |
|
||||||
is_target_a_directory=always |
|
||||||
dst_arg=$2 |
|
||||||
# Protect names problematic for 'test' and other utilities. |
|
||||||
case $dst_arg in |
|
||||||
-* | [=\(\)!]) dst_arg=./$dst_arg;; |
|
||||||
esac |
|
||||||
shift;; |
|
||||||
|
|
||||||
-T) is_target_a_directory=never;; |
|
||||||
|
|
||||||
--version) echo "$0 $scriptversion"; exit $?;; |
|
||||||
|
|
||||||
--) shift |
|
||||||
break;; |
|
||||||
|
|
||||||
-*) echo "$0: invalid option: $1" >&2 |
|
||||||
exit 1;; |
|
||||||
|
|
||||||
*) break;; |
|
||||||
esac |
|
||||||
shift |
|
||||||
done |
|
||||||
|
|
||||||
# We allow the use of options -d and -T together, by making -d |
|
||||||
# take the precedence; this is for compatibility with GNU install. |
|
||||||
|
|
||||||
if test -n "$dir_arg"; then |
|
||||||
if test -n "$dst_arg"; then |
|
||||||
echo "$0: target directory not allowed when installing a directory." >&2 |
|
||||||
exit 1 |
|
||||||
fi |
|
||||||
fi |
|
||||||
|
|
||||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then |
|
||||||
# When -d is used, all remaining arguments are directories to create. |
|
||||||
# When -t is used, the destination is already specified. |
|
||||||
# Otherwise, the last argument is the destination. Remove it from $@. |
|
||||||
for arg |
|
||||||
do |
|
||||||
if test -n "$dst_arg"; then |
|
||||||
# $@ is not empty: it contains at least $arg. |
|
||||||
set fnord "$@" "$dst_arg" |
|
||||||
shift # fnord |
|
||||||
fi |
|
||||||
shift # arg |
|
||||||
dst_arg=$arg |
|
||||||
# Protect names problematic for 'test' and other utilities. |
|
||||||
case $dst_arg in |
|
||||||
-* | [=\(\)!]) dst_arg=./$dst_arg;; |
|
||||||
esac |
|
||||||
done |
|
||||||
fi |
|
||||||
|
|
||||||
if test $# -eq 0; then |
|
||||||
if test -z "$dir_arg"; then |
|
||||||
echo "$0: no input file specified." >&2 |
|
||||||
exit 1 |
|
||||||
fi |
|
||||||
# It's OK to call 'install-sh -d' without argument. |
|
||||||
# This can happen when creating conditional directories. |
|
||||||
exit 0 |
|
||||||
fi |
|
||||||
|
|
||||||
if test -z "$dir_arg"; then |
|
||||||
if test $# -gt 1 || test "$is_target_a_directory" = always; then |
|
||||||
if test ! -d "$dst_arg"; then |
|
||||||
echo "$0: $dst_arg: Is not a directory." >&2 |
|
||||||
exit 1 |
|
||||||
fi |
|
||||||
fi |
|
||||||
fi |
|
||||||
|
|
||||||
if test -z "$dir_arg"; then |
|
||||||
do_exit='(exit $ret); exit $ret' |
|
||||||
trap "ret=129; $do_exit" 1 |
|
||||||
trap "ret=130; $do_exit" 2 |
|
||||||
trap "ret=141; $do_exit" 13 |
|
||||||
trap "ret=143; $do_exit" 15 |
|
||||||
|
|
||||||
# Set umask so as not to create temps with too-generous modes. |
|
||||||
# However, 'strip' requires both read and write access to temps. |
|
||||||
case $mode in |
|
||||||
# Optimize common cases. |
|
||||||
*644) cp_umask=133;; |
|
||||||
*755) cp_umask=22;; |
|
||||||
|
|
||||||
*[0-7]) |
|
||||||
if test -z "$stripcmd"; then |
|
||||||
u_plus_rw= |
|
||||||
else |
|
||||||
u_plus_rw='% 200' |
|
||||||
fi |
|
||||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; |
|
||||||
*) |
|
||||||
if test -z "$stripcmd"; then |
|
||||||
u_plus_rw= |
|
||||||
else |
|
||||||
u_plus_rw=,u+rw |
|
||||||
fi |
|
||||||
cp_umask=$mode$u_plus_rw;; |
|
||||||
esac |
|
||||||
fi |
|
||||||
|
|
||||||
for src |
|
||||||
do |
|
||||||
# Protect names problematic for 'test' and other utilities. |
|
||||||
case $src in |
|
||||||
-* | [=\(\)!]) src=./$src;; |
|
||||||
esac |
|
||||||
|
|
||||||
if test -n "$dir_arg"; then |
|
||||||
dst=$src |
|
||||||
dstdir=$dst |
|
||||||
test -d "$dstdir" |
|
||||||
dstdir_status=$? |
|
||||||
else |
|
||||||
|
|
||||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command |
|
||||||
# might cause directories to be created, which would be especially bad |
|
||||||
# if $src (and thus $dsttmp) contains '*'. |
|
||||||
if test ! -f "$src" && test ! -d "$src"; then |
|
||||||
echo "$0: $src does not exist." >&2 |
|
||||||
exit 1 |
|
||||||
fi |
|
||||||
|
|
||||||
if test -z "$dst_arg"; then |
|
||||||
echo "$0: no destination specified." >&2 |
|
||||||
exit 1 |
|
||||||
fi |
|
||||||
dst=$dst_arg |
|
||||||
|
|
||||||
# If destination is a directory, append the input filename. |
|
||||||
if test -d "$dst"; then |
|
||||||
if test "$is_target_a_directory" = never; then |
|
||||||
echo "$0: $dst_arg: Is a directory" >&2 |
|
||||||
exit 1 |
|
||||||
fi |
|
||||||
dstdir=$dst |
|
||||||
dstbase=`basename "$src"` |
|
||||||
case $dst in |
|
||||||
*/) dst=$dst$dstbase;; |
|
||||||
*) dst=$dst/$dstbase;; |
|
||||||
esac |
|
||||||
dstdir_status=0 |
|
||||||
else |
|
||||||
dstdir=`dirname "$dst"` |
|
||||||
test -d "$dstdir" |
|
||||||
dstdir_status=$? |
|
||||||
fi |
|
||||||
fi |
|
||||||
|
|
||||||
case $dstdir in |
|
||||||
*/) dstdirslash=$dstdir;; |
|
||||||
*) dstdirslash=$dstdir/;; |
|
||||||
esac |
|
||||||
|
|
||||||
obsolete_mkdir_used=false |
|
||||||
|
|
||||||
if test $dstdir_status != 0; then |
|
||||||
case $posix_mkdir in |
|
||||||
'') |
|
||||||
# Create intermediate dirs using mode 755 as modified by the umask. |
|
||||||
# This is like FreeBSD 'install' as of 1997-10-28. |
|
||||||
umask=`umask` |
|
||||||
case $stripcmd.$umask in |
|
||||||
# Optimize common cases. |
|
||||||
*[2367][2367]) mkdir_umask=$umask;; |
|
||||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; |
|
||||||
|
|
||||||
*[0-7]) |
|
||||||
mkdir_umask=`expr $umask + 22 \ |
|
||||||
- $umask % 100 % 40 + $umask % 20 \ |
|
||||||
- $umask % 10 % 4 + $umask % 2 |
|
||||||
`;; |
|
||||||
*) mkdir_umask=$umask,go-w;; |
|
||||||
esac |
|
||||||
|
|
||||||
# With -d, create the new directory with the user-specified mode. |
|
||||||
# Otherwise, rely on $mkdir_umask. |
|
||||||
if test -n "$dir_arg"; then |
|
||||||
mkdir_mode=-m$mode |
|
||||||
else |
|
||||||
mkdir_mode= |
|
||||||
fi |
|
||||||
|
|
||||||
posix_mkdir=false |
|
||||||
case $umask in |
|
||||||
*[123567][0-7][0-7]) |
|
||||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which |
|
||||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0. |
|
||||||
;; |
|
||||||
*) |
|
||||||
# Note that $RANDOM variable is not portable (e.g. dash); Use it |
|
||||||
# here however when possible just to lower collision chance. |
|
||||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ |
|
||||||
|
|
||||||
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 |
|
||||||
|
|
||||||
# Because "mkdir -p" follows existing symlinks and we likely work |
|
||||||
# directly in world-writeable /tmp, make sure that the '$tmpdir' |
|
||||||
# directory is successfully created first before we actually test |
|
||||||
# 'mkdir -p' feature. |
|
||||||
if (umask $mkdir_umask && |
|
||||||
$mkdirprog $mkdir_mode "$tmpdir" && |
|
||||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 |
|
||||||
then |
|
||||||
if test -z "$dir_arg" || { |
|
||||||
# Check for POSIX incompatibilities with -m. |
|
||||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or |
|
||||||
# other-writable bit of parent directory when it shouldn't. |
|
||||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory. |
|
||||||
test_tmpdir="$tmpdir/a" |
|
||||||
ls_ld_tmpdir=`ls -ld "$test_tmpdir"` |
|
||||||
case $ls_ld_tmpdir in |
|
||||||
d????-?r-*) different_mode=700;; |
|
||||||
d????-?--*) different_mode=755;; |
|
||||||
*) false;; |
|
||||||
esac && |
|
||||||
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && { |
|
||||||
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` |
|
||||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" |
|
||||||
} |
|
||||||
} |
|
||||||
then posix_mkdir=: |
|
||||||
fi |
|
||||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" |
|
||||||
else |
|
||||||
# Remove any dirs left behind by ancient mkdir implementations. |
|
||||||
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null |
|
||||||
fi |
|
||||||
trap '' 0;; |
|
||||||
esac;; |
|
||||||
esac |
|
||||||
|
|
||||||
if |
|
||||||
$posix_mkdir && ( |
|
||||||
umask $mkdir_umask && |
|
||||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" |
|
||||||
) |
|
||||||
then : |
|
||||||
else |
|
||||||
|
|
||||||
# The umask is ridiculous, or mkdir does not conform to POSIX, |
|
||||||
# or it failed possibly due to a race condition. Create the |
|
||||||
# directory the slow way, step by step, checking for races as we go. |
|
||||||
|
|
||||||
case $dstdir in |
|
||||||
/*) prefix='/';; |
|
||||||
[-=\(\)!]*) prefix='./';; |
|
||||||
*) prefix='';; |
|
||||||
esac |
|
||||||
|
|
||||||
oIFS=$IFS |
|
||||||
IFS=/ |
|
||||||
set -f |
|
||||||
set fnord $dstdir |
|
||||||
shift |
|
||||||
set +f |
|
||||||
IFS=$oIFS |
|
||||||
|
|
||||||
prefixes= |
|
||||||
|
|
||||||
for d |
|
||||||
do |
|
||||||
test X"$d" = X && continue |
|
||||||
|
|
||||||
prefix=$prefix$d |
|
||||||
if test -d "$prefix"; then |
|
||||||
prefixes= |
|
||||||
else |
|
||||||
if $posix_mkdir; then |
|
||||||
(umask=$mkdir_umask && |
|
||||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break |
|
||||||
# Don't fail if two instances are running concurrently. |
|
||||||
test -d "$prefix" || exit 1 |
|
||||||
else |
|
||||||
case $prefix in |
|
||||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; |
|
||||||
*) qprefix=$prefix;; |
|
||||||
esac |
|
||||||
prefixes="$prefixes '$qprefix'" |
|
||||||
fi |
|
||||||
fi |
|
||||||
prefix=$prefix/ |
|
||||||
done |
|
||||||
|
|
||||||
if test -n "$prefixes"; then |
|
||||||
# Don't fail if two instances are running concurrently. |
|
||||||
(umask $mkdir_umask && |
|
||||||
eval "\$doit_exec \$mkdirprog $prefixes") || |
|
||||||
test -d "$dstdir" || exit 1 |
|
||||||
obsolete_mkdir_used=true |
|
||||||
fi |
|
||||||
fi |
|
||||||
fi |
|
||||||
|
|
||||||
if test -n "$dir_arg"; then |
|
||||||
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } && |
|
||||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && |
|
||||||
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || |
|
||||||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 |
|
||||||
else |
|
||||||
|
|
||||||
# Make a couple of temp file names in the proper directory. |
|
||||||
dsttmp=${dstdirslash}_inst.$$_ |
|
||||||
rmtmp=${dstdirslash}_rm.$$_ |
|
||||||
|
|
||||||
# Trap to clean up those temp files at exit. |
|
||||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 |
|
||||||
|
|
||||||
# Copy the file name to the temp name. |
|
||||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && |
|
||||||
|
|
||||||
# and set any options; do chmod last to preserve setuid bits. |
|
||||||
# |
|
||||||
# If any of these fail, we abort the whole thing. If we want to |
|
||||||
# ignore errors from any of these, just make sure not to ignore |
|
||||||
# errors from the above "$doit $cpprog $src $dsttmp" command. |
|
||||||
# |
|
||||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && |
|
||||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && |
|
||||||
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && |
|
||||||
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && |
|
||||||
|
|
||||||
# If -C, don't bother to copy if it wouldn't change the file. |
|
||||||
if $copy_on_change && |
|
||||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && |
|
||||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && |
|
||||||
set -f && |
|
||||||
set X $old && old=:$2:$4:$5:$6 && |
|
||||||
set X $new && new=:$2:$4:$5:$6 && |
|
||||||
set +f && |
|
||||||
test "$old" = "$new" && |
|
||||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 |
|
||||||
then |
|
||||||
rm -f "$dsttmp" |
|
||||||
else |
|
||||||
# Rename the file to the real destination. |
|
||||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || |
|
||||||
|
|
||||||
# The rename failed, perhaps because mv can't rename something else |
|
||||||
# to itself, or perhaps because mv is so ancient that it does not |
|
||||||
# support -f. |
|
||||||
{ |
|
||||||
# Now remove or move aside any old file at destination location. |
|
||||||
# We try this two ways since rm can't unlink itself on some |
|
||||||
# systems and the destination file might be busy for other |
|
||||||
# reasons. In this case, the final cleanup might fail but the new |
|
||||||
# file should still install successfully. |
|
||||||
{ |
|
||||||
test ! -f "$dst" || |
|
||||||
$doit $rmcmd -f "$dst" 2>/dev/null || |
|
||||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && |
|
||||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } |
|
||||||
} || |
|
||||||
{ echo "$0: cannot unlink or rename $dst" >&2 |
|
||||||
(exit 1); exit 1 |
|
||||||
} |
|
||||||
} && |
|
||||||
|
|
||||||
# Now rename the file to the real destination. |
|
||||||
$doit $mvcmd "$dsttmp" "$dst" |
|
||||||
} |
|
||||||
fi || exit 1 |
|
||||||
|
|
||||||
trap '' 0 |
|
||||||
fi |
|
||||||
done |
|
||||||
|
|
||||||
# Local variables: |
|
||||||
# eval: (add-hook 'before-save-hook 'time-stamp) |
|
||||||
# time-stamp-start: "scriptversion=" |
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H" |
|
||||||
# time-stamp-time-zone: "UTC0" |
|
||||||
# time-stamp-end: "; # UTC" |
|
||||||
# End: |
|
@ -1,215 +0,0 @@ |
|||||||
#! /bin/sh |
|
||||||
# Common wrapper for a few potentially missing GNU programs. |
|
||||||
|
|
||||||
scriptversion=2018-03-07.03; # UTC |
|
||||||
|
|
||||||
# Copyright (C) 1996-2018 Free Software Foundation, Inc. |
|
||||||
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. |
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify |
|
||||||
# it under the terms of the GNU General Public License as published by |
|
||||||
# the Free Software Foundation; either version 2, or (at your option) |
|
||||||
# any later version. |
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful, |
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
# GNU General Public License for more details. |
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License |
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>. |
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you |
|
||||||
# distribute this file as part of a program that contains a |
|
||||||
# configuration script generated by Autoconf, you may include it under |
|
||||||
# the same distribution terms that you use for the rest of that program. |
|
||||||
|
|
||||||
if test $# -eq 0; then |
|
||||||
echo 1>&2 "Try '$0 --help' for more information" |
|
||||||
exit 1 |
|
||||||
fi |
|
||||||
|
|
||||||
case $1 in |
|
||||||
|
|
||||||
--is-lightweight) |
|
||||||
# Used by our autoconf macros to check whether the available missing |
|
||||||
# script is modern enough. |
|
||||||
exit 0 |
|
||||||
;; |
|
||||||
|
|
||||||
--run) |
|
||||||
# Back-compat with the calling convention used by older automake. |
|
||||||
shift |
|
||||||
;; |
|
||||||
|
|
||||||
-h|--h|--he|--hel|--help) |
|
||||||
echo "\ |
|
||||||
$0 [OPTION]... PROGRAM [ARGUMENT]... |
|
||||||
|
|
||||||
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due |
|
||||||
to PROGRAM being missing or too old. |
|
||||||
|
|
||||||
Options: |
|
||||||
-h, --help display this help and exit |
|
||||||
-v, --version output version information and exit |
|
||||||
|
|
||||||
Supported PROGRAM values: |
|
||||||
aclocal autoconf autoheader autom4te automake makeinfo |
|
||||||
bison yacc flex lex help2man |
|
||||||
|
|
||||||
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and |
|
||||||
'g' are ignored when checking the name. |
|
||||||
|
|
||||||
Send bug reports to <bug-automake@gnu.org>." |
|
||||||
exit $? |
|
||||||
;; |
|
||||||
|
|
||||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version) |
|
||||||
echo "missing $scriptversion (GNU Automake)" |
|
||||||
exit $? |
|
||||||
;; |
|
||||||
|
|
||||||
-*) |
|
||||||
echo 1>&2 "$0: unknown '$1' option" |
|
||||||
echo 1>&2 "Try '$0 --help' for more information" |
|
||||||
exit 1 |
|
||||||
;; |
|
||||||
|
|
||||||
esac |
|
||||||
|
|
||||||
# Run the given program, remember its exit status. |
|
||||||
"$@"; st=$? |
|
||||||
|
|
||||||
# If it succeeded, we are done. |
|
||||||
test $st -eq 0 && exit 0 |
|
||||||
|
|
||||||
# Also exit now if we it failed (or wasn't found), and '--version' was |
|
||||||
# passed; such an option is passed most likely to detect whether the |
|
||||||
# program is present and works. |
|
||||||
case $2 in --version|--help) exit $st;; esac |
|
||||||
|
|
||||||
# Exit code 63 means version mismatch. This often happens when the user |
|
||||||
# tries to use an ancient version of a tool on a file that requires a |
|
||||||
# minimum version. |
|
||||||
if test $st -eq 63; then |
|
||||||
msg="probably too old" |
|
||||||
elif test $st -eq 127; then |
|
||||||
# Program was missing. |
|
||||||
msg="missing on your system" |
|
||||||
else |
|
||||||
# Program was found and executed, but failed. Give up. |
|
||||||
exit $st |
|
||||||
fi |
|
||||||
|
|
||||||
perl_URL=https://www.perl.org/ |
|
||||||
flex_URL=https://github.com/westes/flex |
|
||||||
gnu_software_URL=https://www.gnu.org/software |
|
||||||
|
|
||||||
program_details () |
|
||||||
{ |
|
||||||
case $1 in |
|
||||||
aclocal|automake) |
|
||||||
echo "The '$1' program is part of the GNU Automake package:" |
|
||||||
echo "<$gnu_software_URL/automake>" |
|
||||||
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" |
|
||||||
echo "<$gnu_software_URL/autoconf>" |
|
||||||
echo "<$gnu_software_URL/m4/>" |
|
||||||
echo "<$perl_URL>" |
|
||||||
;; |
|
||||||
autoconf|autom4te|autoheader) |
|
||||||
echo "The '$1' program is part of the GNU Autoconf package:" |
|
||||||
echo "<$gnu_software_URL/autoconf/>" |
|
||||||
echo "It also requires GNU m4 and Perl in order to run:" |
|
||||||
echo "<$gnu_software_URL/m4/>" |
|
||||||
echo "<$perl_URL>" |
|
||||||
;; |
|
||||||
esac |
|
||||||
} |
|
||||||
|
|
||||||
give_advice () |
|
||||||
{ |
|
||||||
# Normalize program name to check for. |
|
||||||
normalized_program=`echo "$1" | sed ' |
|
||||||
s/^gnu-//; t |
|
||||||
s/^gnu//; t |
|
||||||
s/^g//; t'` |
|
||||||
|
|
||||||
printf '%s\n' "'$1' is $msg." |
|
||||||
|
|
||||||
configure_deps="'configure.ac' or m4 files included by 'configure.ac'" |
|
||||||
case $normalized_program in |
|
||||||
autoconf*) |
|
||||||
echo "You should only need it if you modified 'configure.ac'," |
|
||||||
echo "or m4 files included by it." |
|
||||||
program_details 'autoconf' |
|
||||||
;; |
|
||||||
autoheader*) |
|
||||||
echo "You should only need it if you modified 'acconfig.h' or" |
|
||||||
echo "$configure_deps." |
|
||||||
program_details 'autoheader' |
|
||||||
;; |
|
||||||
automake*) |
|
||||||
echo "You should only need it if you modified 'Makefile.am' or" |
|
||||||
echo "$configure_deps." |
|
||||||
program_details 'automake' |
|
||||||
;; |
|
||||||
aclocal*) |
|
||||||
echo "You should only need it if you modified 'acinclude.m4' or" |
|
||||||
echo "$configure_deps." |
|
||||||
program_details 'aclocal' |
|
||||||
;; |
|
||||||
autom4te*) |
|
||||||
echo "You might have modified some maintainer files that require" |
|
||||||
echo "the 'autom4te' program to be rebuilt." |
|
||||||
program_details 'autom4te' |
|
||||||
;; |
|
||||||
bison*|yacc*) |
|
||||||
echo "You should only need it if you modified a '.y' file." |
|
||||||
echo "You may want to install the GNU Bison package:" |
|
||||||
echo "<$gnu_software_URL/bison/>" |
|
||||||
;; |
|
||||||
lex*|flex*) |
|
||||||
echo "You should only need it if you modified a '.l' file." |
|
||||||
echo "You may want to install the Fast Lexical Analyzer package:" |
|
||||||
echo "<$flex_URL>" |
|
||||||
;; |
|
||||||
help2man*) |
|
||||||
echo "You should only need it if you modified a dependency" \ |
|
||||||
"of a man page." |
|
||||||
echo "You may want to install the GNU Help2man package:" |
|
||||||
echo "<$gnu_software_URL/help2man/>" |
|
||||||
;; |
|
||||||
makeinfo*) |
|
||||||
echo "You should only need it if you modified a '.texi' file, or" |
|
||||||
echo "any other file indirectly affecting the aspect of the manual." |
|
||||||
echo "You might want to install the Texinfo package:" |
|
||||||
echo "<$gnu_software_URL/texinfo/>" |
|
||||||
echo "The spurious makeinfo call might also be the consequence of" |
|
||||||
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" |
|
||||||
echo "want to install GNU make:" |
|
||||||
echo "<$gnu_software_URL/make/>" |
|
||||||
;; |
|
||||||
*) |
|
||||||
echo "You might have modified some files without having the proper" |
|
||||||
echo "tools for further handling them. Check the 'README' file, it" |
|
||||||
echo "often tells you about the needed prerequisites for installing" |
|
||||||
echo "this package. You may also peek at any GNU archive site, in" |
|
||||||
echo "case some other package contains this missing '$1' program." |
|
||||||
;; |
|
||||||
esac |
|
||||||
} |
|
||||||
|
|
||||||
give_advice "$1" | sed -e '1s/^/WARNING: /' \ |
|
||||||
-e '2,$s/^/ /' >&2 |
|
||||||
|
|
||||||
# Propagate the correct exit status (expected to be 127 for a program |
|
||||||
# not found, 63 for a program that failed due to version mismatch). |
|
||||||
exit $st |
|
||||||
|
|
||||||
# Local variables: |
|
||||||
# eval: (add-hook 'before-save-hook 'time-stamp) |
|
||||||
# time-stamp-start: "scriptversion=" |
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H" |
|
||||||
# time-stamp-time-zone: "UTC0" |
|
||||||
# time-stamp-end: "; # UTC" |
|
||||||
# End: |
|
@ -1,26 +0,0 @@ |
|||||||
# @configure_input@ |
|
||||||
|
|
||||||
PREFIX = @EXPAND_PREFIX@ |
|
||||||
BINDIR = @EXPAND_BINDIR@ |
|
||||||
DATADIR = @EXPAND_DATADIR@ |
|
||||||
MANPREFIX = @EXPAND_MANDIR@ |
|
||||||
|
|
||||||
QMAKE_CC = @QBT_CC@ |
|
||||||
QMAKE_CXX = @QBT_CXX@ |
|
||||||
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 |
|
||||||
|
|
||||||
CONFIG += @QBT_ADD_CONFIG@ |
|
||||||
CONFIG -= @QBT_REMOVE_CONFIG@ |
|
||||||
|
|
||||||
DEFINES += @QBT_ADD_DEFINES@ |
|
||||||
DEFINES -= @QBT_REMOVE_DEFINES@ |
|
@ -1,58 +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 |
|
||||||
LIBS += libcrypto.lib libssl.lib libtorrent.lib zlib.lib |
|
||||||
CONFIG(debug, debug|release) { |
|
||||||
LIBS += boost_system-vc140-mt-d.lib |
|
||||||
} |
|
||||||
else { |
|
||||||
LIBS += boost_system-vc140-mt.lib |
|
||||||
} |
|
||||||
|
|
||||||
# ...or if you use MinGW |
|
||||||
#LIBS += libcrypto libssl libz |
|
||||||
#CONFIG(debug, debug|release) { |
|
||||||
# LIBS += libtorrent-rasterbar \ |
|
||||||
# libboost_system-mt |
|
||||||
#} |
|
||||||
#else { |
|
||||||
# LIBS += libtorrent-rasterbar \ |
|
||||||
# libboost_system-mt |
|
||||||
#} |
|
||||||
|
|
||||||
# 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 |
|
||||||
# Enable it if compiling with libtorrent 3.x |
|
||||||
#DEFINES += BOOST_SYSTEM_USE_UTF8 |
|
||||||
|
|
||||||
# Enable if libtorrent was built with this flag defined |
|
||||||
#DEFINES += TORRENT_NO_DEPRECATE |
|
||||||
# Enable if linking dynamically against libtorrent |
|
||||||
#DEFINES += TORRENT_LINKING_SHARED |
|
||||||
|
|
||||||
# Enable this if compiling with libtorrent 2.x |
|
||||||
#DEFINES += QBT_USES_LIBTORRENT2 |
|
||||||
|
|
||||||
# Enable stack trace support |
|
||||||
CONFIG += stacktrace |
|
||||||
|
|
||||||
win32-msvc* { |
|
||||||
QMAKE_CXXFLAGS += "/guard:cf" |
|
||||||
QMAKE_LFLAGS += "/guard:cf" |
|
||||||
QMAKE_LFLAGS_RELEASE += "/OPT:REF /OPT:ICF" |
|
||||||
} |
|
@ -1,303 +0,0 @@ |
|||||||
AC_INIT([qbittorrent], [v5.0.0alpha1], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/]) |
|
||||||
AC_CONFIG_AUX_DIR([build-aux]) |
|
||||||
AC_CONFIG_MACRO_DIR([m4]) |
|
||||||
: ${CFLAGS=""} |
|
||||||
: ${CXXFLAGS=""} |
|
||||||
AC_PROG_CC |
|
||||||
AC_PROG_CXX |
|
||||||
AC_PROG_SED |
|
||||||
AC_LANG(C++) |
|
||||||
AC_CANONICAL_HOST |
|
||||||
AM_INIT_AUTOMAKE([foreign]) |
|
||||||
|
|
||||||
# use compiler from env variables if available |
|
||||||
QBT_CC="$CC" |
|
||||||
QBT_CXX="$CXX" |
|
||||||
|
|
||||||
# Define --wth-* and --enable-* arguments |
|
||||||
|
|
||||||
AC_ARG_ENABLE(debug, |
|
||||||
[AS_HELP_STRING([--enable-debug], |
|
||||||
[Enable debug build])], |
|
||||||
[], |
|
||||||
[enable_debug=no]) |
|
||||||
|
|
||||||
AC_ARG_ENABLE(stacktrace, |
|
||||||
[AS_HELP_STRING([--enable-stacktrace], |
|
||||||
[Enable stacktrace feature (default=auto)])], |
|
||||||
[], |
|
||||||
[enable_stacktrace=auto]) |
|
||||||
|
|
||||||
AC_ARG_ENABLE(gui, |
|
||||||
[AS_HELP_STRING([--disable-gui], |
|
||||||
[Disable the GUI for headless running. Disables QtDBus and the GeoIP Database.])], |
|
||||||
[], |
|
||||||
[enable_gui=yes]) |
|
||||||
|
|
||||||
AC_ARG_ENABLE(systemd, |
|
||||||
[AS_HELP_STRING([--enable-systemd], |
|
||||||
[Install the systemd service file (headless only).])], |
|
||||||
[], |
|
||||||
[enable_systemd=no]) |
|
||||||
|
|
||||||
AC_ARG_ENABLE(webui, |
|
||||||
[AS_HELP_STRING([--disable-webui], |
|
||||||
[Disable the WebUI.])], |
|
||||||
[], |
|
||||||
[enable_webui=yes]) |
|
||||||
|
|
||||||
AC_ARG_ENABLE(qt-dbus, |
|
||||||
[AS_HELP_STRING([--disable-qt-dbus], |
|
||||||
[Disable use of QtDBus (GUI only)])], |
|
||||||
[], |
|
||||||
[enable_qt_dbus=yes]) |
|
||||||
|
|
||||||
# Detect OS |
|
||||||
AC_MSG_CHECKING([whether to enable specific tweaks for current host "$host_os"]) |
|
||||||
case "$host_os" in |
|
||||||
*darwin*) |
|
||||||
AC_MSG_RESULT([yes]) |
|
||||||
enable_qt_dbus=no |
|
||||||
;; |
|
||||||
|
|
||||||
*freebsd*) |
|
||||||
AC_MSG_RESULT([yes]) |
|
||||||
LIBS="-lexecinfo $LIBS" |
|
||||||
;; |
|
||||||
|
|
||||||
*haiku*) |
|
||||||
AC_MSG_RESULT([yes]) |
|
||||||
LIBS="-lnetwork $LIBS" |
|
||||||
;; |
|
||||||
|
|
||||||
*openbsd*) |
|
||||||
AC_MSG_RESULT([yes]) |
|
||||||
LIBS="-lexecinfo $LIBS" |
|
||||||
;; |
|
||||||
|
|
||||||
*) |
|
||||||
AC_MSG_RESULT([no]) |
|
||||||
;; |
|
||||||
esac |
|
||||||
|
|
||||||
# Require 0.23 pkg-config |
|
||||||
PKG_PROG_PKG_CONFIG([0.23]) |
|
||||||
AS_IF([test "x$PKG_CONFIG" = "x"], |
|
||||||
[AC_MSG_ERROR([Could not find pkg-config])]) |
|
||||||
|
|
||||||
# Check which arguments were set and act accordingly |
|
||||||
AC_MSG_CHECKING([whether to enable the Debug build]) |
|
||||||
AS_CASE(["x$enable_debug"], |
|
||||||
["xno"], |
|
||||||
[AC_MSG_RESULT([no]) |
|
||||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG release" |
|
||||||
QBT_REMOVE_CONFIG="$QBT_REMOVE_CONFIG debug"], |
|
||||||
["xyes"], |
|
||||||
[AC_MSG_RESULT([yes]) |
|
||||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG debug" |
|
||||||
QBT_REMOVE_CONFIG="$QBT_REMOVE_CONFIG release"], |
|
||||||
[AC_MSG_RESULT([$enable_debug]) |
|
||||||
AC_MSG_ERROR([Unknown option "$enable_debug". Use either "yes" or "no".])]) |
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to enable the stacktrace feature]) |
|
||||||
AS_CASE(["x$enable_stacktrace"], |
|
||||||
["xno"], |
|
||||||
[AC_MSG_RESULT([no]) |
|
||||||
QBT_REMOVE_CONFIG="$QBT_REMOVE_CONFIG stacktrace"], |
|
||||||
["xyes"], |
|
||||||
[AC_MSG_RESULT([yes]) |
|
||||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG stacktrace"], |
|
||||||
["xauto"], |
|
||||||
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <execinfo.h>]])], |
|
||||||
[AC_MSG_RESULT([yes]) |
|
||||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG stacktrace"], |
|
||||||
[AC_MSG_RESULT([no]) |
|
||||||
QBT_REMOVE_CONFIG="$QBT_REMOVE_CONFIG stacktrace"])], |
|
||||||
[AC_MSG_RESULT([$enable_stacktrace]) |
|
||||||
AC_MSG_ERROR([Unknown option "$enable_stacktrace". Use either "yes" or "no".])]) |
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to enable the GUI]) |
|
||||||
AS_CASE(["x$enable_gui"], |
|
||||||
["xyes"], |
|
||||||
[AC_MSG_RESULT([yes]) |
|
||||||
enable_systemd=[no] |
|
||||||
QBT_REMOVE_CONFIG="$QBT_REMOVE_CONFIG nogui"], |
|
||||||
["xno"], |
|
||||||
[AC_MSG_RESULT([no]) |
|
||||||
enable_qt_dbus=[no] |
|
||||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG nogui"], |
|
||||||
[AC_MSG_RESULT([$enable_gui]) |
|
||||||
AC_MSG_ERROR([Unknown option "$enable_gui". Use either "yes" or "no".])]) |
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to install the systemd service file]) |
|
||||||
AS_CASE(["x$enable_systemd"], |
|
||||||
["xyes"], |
|
||||||
[AC_MSG_RESULT([yes]) |
|
||||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG systemd"], |
|
||||||
["xno"], |
|
||||||
[AC_MSG_RESULT([no]) |
|
||||||
QBT_REMOVE_CONFIG="$QBT_REMOVE_CONFIG systemd"], |
|
||||||
[AC_MSG_RESULT([$enable_systemd]) |
|
||||||
AC_MSG_ERROR([Unknown option "$enable_systemd". Use either "yes" or "no".])]) |
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to enable the WebUI]) |
|
||||||
AS_CASE(["x$enable_webui"], |
|
||||||
["xyes"], |
|
||||||
[AC_MSG_RESULT([yes]) |
|
||||||
QBT_REMOVE_CONFIG="$QBT_REMOVE_CONFIG nowebui"], |
|
||||||
["xno"], |
|
||||||
[AC_MSG_RESULT([no]) |
|
||||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG nowebui"], |
|
||||||
[AC_MSG_RESULT([$enable_webui]) |
|
||||||
AC_MSG_ERROR([Unknown option "$enable_webui". Use either "yes" or "no".])]) |
|
||||||
|
|
||||||
FIND_QT5() |
|
||||||
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.15.2]) |
|
||||||
]) |
|
||||||
AC_MSG_CHECKING([whether QtDBus should be enabled]) |
|
||||||
AS_CASE(["x$enable_qt_dbus"], |
|
||||||
["xyes"], |
|
||||||
[AC_MSG_RESULT([yes]) |
|
||||||
FIND_QTDBUS() |
|
||||||
AS_IF([test "x$HAVE_QTDBUS" = "xfalse"], |
|
||||||
[AC_MSG_ERROR([Could not find QtDBus])], |
|
||||||
[QBT_ADD_CONFIG="$QBT_ADD_CONFIG dbus" QBT_ADD_DEFINES="$QBT_ADD_DEFINES QBT_USES_DBUS"] |
|
||||||
)], |
|
||||||
["xno"], |
|
||||||
[AC_MSG_RESULT([no]) |
|
||||||
QBT_REMOVE_CONFIG="$QBT_REMOVE_CONFIG dbus"], |
|
||||||
[AC_MSG_RESULT([$enable_qt_dbus]) |
|
||||||
AC_MSG_ERROR([Unknown option "$enable_qt_dbus". Use either "yes" or "no".])]) |
|
||||||
|
|
||||||
|
|
||||||
AX_BOOST_BASE([1.71], |
|
||||||
[AC_MSG_NOTICE([Boost CXXFLAGS: "$BOOST_CPPFLAGS"]) |
|
||||||
AC_MSG_NOTICE([Boost LDFLAGS: "$BOOST_LDFLAGS"])], |
|
||||||
[AC_MSG_ERROR([Could not find Boost])]) |
|
||||||
CXXFLAGS="$BOOST_CPPFLAGS $CXXFLAGS" |
|
||||||
LDFLAGS="$BOOST_LDFLAGS $LDFLAGS" |
|
||||||
|
|
||||||
# add workaround for problematic boost version |
|
||||||
# taken from ax_boost_base.m4 |
|
||||||
m4_define([DETECT_BOOST_VERSION_PROGRAM], |
|
||||||
[AC_LANG_PROGRAM([[#include <boost/version.hpp>]], |
|
||||||
[[(void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($1))]));]])]) |
|
||||||
|
|
||||||
PKG_CHECK_MODULES(libtorrent, |
|
||||||
[libtorrent-rasterbar >= 2.0.9], |
|
||||||
[CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS" LIBS="$libtorrent_LIBS $LIBS" QBT_ADD_DEFINES="$QBT_ADD_DEFINES QBT_USES_LIBTORRENT2"], |
|
||||||
[PKG_CHECK_MODULES(libtorrent, |
|
||||||
[libtorrent-rasterbar >= 1.2.19 libtorrent-rasterbar < 2], |
|
||||||
[CXXFLAGS="$libtorrent_CFLAGS $CXXFLAGS" LIBS="$libtorrent_LIBS $LIBS"])]) |
|
||||||
|
|
||||||
PKG_CHECK_MODULES(openssl, |
|
||||||
[openssl >= 1.1.1], |
|
||||||
[CXXFLAGS="$openssl_CFLAGS $CXXFLAGS" |
|
||||||
LIBS="$openssl_LIBS $LIBS"]) |
|
||||||
|
|
||||||
PKG_CHECK_MODULES(zlib, |
|
||||||
[zlib >= 1.2.11], |
|
||||||
[CXXFLAGS="$zlib_CFLAGS $CXXFLAGS" |
|
||||||
LIBS="$zlib_LIBS $LIBS"]) |
|
||||||
|
|
||||||
# Check if already in >= C++17 mode because of the flags returned by one of the above packages |
|
||||||
TMP_CXXFLAGS="$CXXFLAGS" |
|
||||||
CXXFLAGS="" |
|
||||||
AC_MSG_CHECKING([if compiler defaults to C++17 or later mode]) |
|
||||||
AC_COMPILE_IFELSE([DETECT_CPP17_PROGRAM()], |
|
||||||
[AC_MSG_RESULT([yes]) |
|
||||||
QBT_CXX17_FOUND="yes"], |
|
||||||
[AC_MSG_RESULT([no]) |
|
||||||
QBT_CXX17_FOUND="no"]) |
|
||||||
|
|
||||||
# In case of no, check if the compiler can support at least C++17 |
|
||||||
# and if yes, enable it leaving a warning to the user |
|
||||||
AS_IF([test "x$QBT_CXX17_FOUND" = "xno"], |
|
||||||
[AC_MSG_CHECKING([if compiler supports C++17]) |
|
||||||
CXXFLAGS="-std=c++17" |
|
||||||
AC_COMPILE_IFELSE([DETECT_CPP17_PROGRAM()], |
|
||||||
[AC_MSG_RESULT([yes]) |
|
||||||
AC_MSG_CHECKING([if C++17 is disabled by the set compiler flags]) |
|
||||||
# prepend the flag so it won't override conflicting user defined flags |
|
||||||
CXXFLAGS="-std=c++17 $TMP_CXXFLAGS" |
|
||||||
AC_COMPILE_IFELSE([DETECT_CPP17_PROGRAM()], |
|
||||||
[AC_MSG_RESULT([no]) |
|
||||||
QBT_ADD_CONFIG="$QBT_ADD_CONFIG c++17" |
|
||||||
AC_MSG_WARN([C++17 mode is now force enabled. The C++ mode should match the mode that other libraries were built with, otherwise you'll likely get linking errors.])], |
|
||||||
[AC_MSG_RESULT([yes]) |
|
||||||
AC_MSG_ERROR([The compiler supports C++17 but the user or a dependency has explicitly enabled a lower mode.])])], |
|
||||||
[AC_MSG_RESULT([no]) |
|
||||||
AC_MSG_ERROR([A compiler supporting C++17 is required.])]) |
|
||||||
]) |
|
||||||
CXXFLAGS="$TMP_CXXFLAGS" |
|
||||||
|
|
||||||
# These are required because autoconf doesn't expand these **particular** |
|
||||||
# vars automatically. And qmake cannot autoexpand them. |
|
||||||
AX_DEFINE_DIR([EXPAND_PREFIX], [prefix]) |
|
||||||
AX_DEFINE_DIR([EXPAND_BINDIR], [bindir]) |
|
||||||
AX_DEFINE_DIR([EXPAND_DATADIR], [datadir]) |
|
||||||
AX_DEFINE_DIR([EXPAND_MANDIR], [mandir]) |
|
||||||
|
|
||||||
# Original extract() function contributed by pmzqla |
|
||||||
# $*: Strings to parse |
|
||||||
# Set $QBT_CONF_DEFINES, $QBT_CONF_INCLUDES, $QBT_CONF_EXTRA_CFLAGS |
|
||||||
extract() { |
|
||||||
if [[ -z "$*" ]]; then |
|
||||||
echo "Input string required" |
|
||||||
return 1 |
|
||||||
fi |
|
||||||
|
|
||||||
# BSD sed needs an actual newline character in the substitute command |
|
||||||
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:]]]*//') |
|
||||||
SAVEIFS=$IFS |
|
||||||
IFS=$(printf "\n\b") |
|
||||||
for i in $string; do |
|
||||||
case "$(echo "$i" | cut -c1)" in |
|
||||||
'') ;; |
|
||||||
D) QBT_CONF_DEFINES="$QBT_CONF_DEFINES $(echo $i | cut -c2-)";; |
|
||||||
I) QBT_CONF_INCLUDES="$QBT_CONF_INCLUDES $(echo $i | cut -c2-)";; |
|
||||||
*) QBT_CONF_EXTRA_CFLAGS="$QBT_CONF_EXTRA_CFLAGS -$i";; |
|
||||||
esac |
|
||||||
done |
|
||||||
IFS=$SAVEIFS |
|
||||||
} |
|
||||||
|
|
||||||
extract "$CFLAGS $CXXFLAGS" |
|
||||||
QBT_ADD_DEFINES="$QBT_ADD_DEFINES $QBT_CONF_DEFINES" |
|
||||||
|
|
||||||
# Substitute the values of these vars in conf.pri.in |
|
||||||
AC_SUBST(QBT_CC) |
|
||||||
AC_SUBST(QBT_CXX) |
|
||||||
AC_SUBST(QBT_CONF_INCLUDES) |
|
||||||
AC_SUBST(QBT_CONF_EXTRA_CFLAGS) |
|
||||||
AC_SUBST(QBT_ADD_CONFIG) |
|
||||||
AC_SUBST(QBT_REMOVE_CONFIG) |
|
||||||
AC_SUBST(QBT_ADD_DEFINES) |
|
||||||
AC_SUBST(QBT_REMOVE_DEFINES) |
|
||||||
|
|
||||||
QBT_CONFIG_FILES="conf.pri" |
|
||||||
|
|
||||||
AS_IF([test "x$enable_systemd" = "xyes"], |
|
||||||
[QBT_CONFIG_FILES="$QBT_CONFIG_FILES dist/unix/systemd/qbittorrent-nox@.service"]) |
|
||||||
|
|
||||||
AC_CONFIG_FILES(["$QBT_CONFIG_FILES"]) |
|
||||||
AC_OUTPUT |
|
||||||
|
|
||||||
AC_MSG_NOTICE([Running qmake to generate the makefile...]) |
|
||||||
TOPDIR="$(cd "$(dirname "$0")" && pwd)" |
|
||||||
$QT_QMAKE -r "$TOPDIR/qbittorrent.pro" "QMAKE_LRELEASE=$QMAKE_LRELEASE" |
|
||||||
qmake_ret="$?" |
|
||||||
|
|
||||||
AS_ECHO() |
|
||||||
AS_IF([test "x$qmake_ret" != "x0"], |
|
||||||
[AC_MSG_ERROR([$QT_QMAKE failed to generate the makefile])]) |
|
||||||
|
|
||||||
AC_MSG_NOTICE([Good, the configure finished.]) |
|
||||||
AS_ECHO() |
|
@ -1,303 +0,0 @@ |
|||||||
# =========================================================================== |
|
||||||
# https://www.gnu.org/software/autoconf-archive/ax_boost_base.html |
|
||||||
# =========================================================================== |
|
||||||
# |
|
||||||
# SYNOPSIS |
|
||||||
# |
|
||||||
# AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) |
|
||||||
# |
|
||||||
# DESCRIPTION |
|
||||||
# |
|
||||||
# Test for the Boost C++ libraries of a particular version (or newer) |
|
||||||
# |
|
||||||
# If no path to the installed boost library is given the macro searchs |
|
||||||
# under /usr, /usr/local, /opt and /opt/local and evaluates the |
|
||||||
# $BOOST_ROOT environment variable. Further documentation is available at |
|
||||||
# <http://randspringer.de/boost/index.html>. |
|
||||||
# |
|
||||||
# This macro calls: |
|
||||||
# |
|
||||||
# AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS) |
|
||||||
# |
|
||||||
# And sets: |
|
||||||
# |
|
||||||
# HAVE_BOOST |
|
||||||
# |
|
||||||
# LICENSE |
|
||||||
# |
|
||||||
# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de> |
|
||||||
# Copyright (c) 2009 Peter Adolphs |
|
||||||
# |
|
||||||
# Copying and distribution of this file, with or without modification, are |
|
||||||
# permitted in any medium without royalty provided the copyright notice |
|
||||||
# and this notice are preserved. This file is offered as-is, without any |
|
||||||
# warranty. |
|
||||||
|
|
||||||
#serial 49 |
|
||||||
|
|
||||||
# example boost program (need to pass version) |
|
||||||
m4_define([_AX_BOOST_BASE_PROGRAM], |
|
||||||
[AC_LANG_PROGRAM([[ |
|
||||||
#include <boost/version.hpp> |
|
||||||
]],[[ |
|
||||||
(void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($1))])); |
|
||||||
]])]) |
|
||||||
|
|
||||||
AC_DEFUN([AX_BOOST_BASE], |
|
||||||
[ |
|
||||||
AC_ARG_WITH([boost], |
|
||||||
[AS_HELP_STRING([--with-boost@<:@=ARG@:>@], |
|
||||||
[use Boost library from a standard location (ARG=yes), |
|
||||||
from the specified location (ARG=<path>), |
|
||||||
or disable it (ARG=no) |
|
||||||
@<:@ARG=yes@:>@ ])], |
|
||||||
[ |
|
||||||
AS_CASE([$withval], |
|
||||||
[no],[want_boost="no";_AX_BOOST_BASE_boost_path=""], |
|
||||||
[yes],[want_boost="yes";_AX_BOOST_BASE_boost_path=""], |
|
||||||
[want_boost="yes";_AX_BOOST_BASE_boost_path="$withval"]) |
|
||||||
], |
|
||||||
[want_boost="yes"]) |
|
||||||
|
|
||||||
|
|
||||||
AC_ARG_WITH([boost-libdir], |
|
||||||
[AS_HELP_STRING([--with-boost-libdir=LIB_DIR], |
|
||||||
[Force given directory for boost libraries. |
|
||||||
Note that this will override library path detection, |
|
||||||
so use this parameter only if default library detection fails |
|
||||||
and you know exactly where your boost libraries are located.])], |
|
||||||
[ |
|
||||||
AS_IF([test -d "$withval"], |
|
||||||
[_AX_BOOST_BASE_boost_lib_path="$withval"], |
|
||||||
[AC_MSG_ERROR([--with-boost-libdir expected directory name])]) |
|
||||||
], |
|
||||||
[_AX_BOOST_BASE_boost_lib_path=""]) |
|
||||||
|
|
||||||
BOOST_LDFLAGS="" |
|
||||||
BOOST_CPPFLAGS="" |
|
||||||
AS_IF([test "x$want_boost" = "xyes"], |
|
||||||
[_AX_BOOST_BASE_RUNDETECT([$1],[$2],[$3])]) |
|
||||||
AC_SUBST(BOOST_CPPFLAGS) |
|
||||||
AC_SUBST(BOOST_LDFLAGS) |
|
||||||
]) |
|
||||||
|
|
||||||
|
|
||||||
# convert a version string in $2 to numeric and affect to polymorphic var $1 |
|
||||||
AC_DEFUN([_AX_BOOST_BASE_TONUMERICVERSION],[ |
|
||||||
AS_IF([test "x$2" = "x"],[_AX_BOOST_BASE_TONUMERICVERSION_req="1.20.0"],[_AX_BOOST_BASE_TONUMERICVERSION_req="$2"]) |
|
||||||
_AX_BOOST_BASE_TONUMERICVERSION_req_shorten=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\.[[0-9]]*\)'` |
|
||||||
_AX_BOOST_BASE_TONUMERICVERSION_req_major=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\)'` |
|
||||||
AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_major" = "x"], |
|
||||||
[AC_MSG_ERROR([You should at least specify libboost major version])]) |
|
||||||
_AX_BOOST_BASE_TONUMERICVERSION_req_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.\([[0-9]]*\)'` |
|
||||||
AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_minor" = "x"], |
|
||||||
[_AX_BOOST_BASE_TONUMERICVERSION_req_minor="0"]) |
|
||||||
_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` |
|
||||||
AS_IF([test "X$_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor" = "X"], |
|
||||||
[_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor="0"]) |
|
||||||
_AX_BOOST_BASE_TONUMERICVERSION_RET=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req_major \* 100000 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_minor \* 100 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor` |
|
||||||
AS_VAR_SET($1,$_AX_BOOST_BASE_TONUMERICVERSION_RET) |
|
||||||
]) |
|
||||||
|
|
||||||
dnl Run the detection of boost should be run only if $want_boost |
|
||||||
AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ |
|
||||||
_AX_BOOST_BASE_TONUMERICVERSION(WANT_BOOST_VERSION,[$1]) |
|
||||||
succeeded=no |
|
||||||
|
|
||||||
|
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST]) |
|
||||||
dnl On 64-bit systems check for system libraries in both lib64 and lib. |
|
||||||
dnl The former is specified by FHS, but e.g. Debian does not adhere to |
|
||||||
dnl this (as it rises problems for generic multi-arch support). |
|
||||||
dnl The last entry in the list is chosen by default when no libraries |
|
||||||
dnl are found, e.g. when only header-only libraries are installed! |
|
||||||
AS_CASE([${host_cpu}], |
|
||||||
[x86_64],[libsubdirs="lib64 libx32 lib lib64"], |
|
||||||
[mips*64*],[libsubdirs="lib64 lib32 lib lib64"], |
|
||||||
[ppc64|powerpc64|s390x|sparc64|aarch64|ppc64le|powerpc64le|riscv64|e2k],[libsubdirs="lib64 lib lib64"], |
|
||||||
[libsubdirs="lib"] |
|
||||||
) |
|
||||||
|
|
||||||
dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give |
|
||||||
dnl them priority over the other paths since, if libs are found there, they |
|
||||||
dnl are almost assuredly the ones desired. |
|
||||||
AS_CASE([${host_cpu}], |
|
||||||
[i?86],[multiarch_libsubdir="lib/i386-${host_os}"], |
|
||||||
[armv7l],[multiarch_libsubdir="lib/arm-${host_os}"], |
|
||||||
[multiarch_libsubdir="lib/${host_cpu}-${host_os}"] |
|
||||||
) |
|
||||||
|
|
||||||
dnl first we check the system location for boost libraries |
|
||||||
dnl this location ist chosen if boost libraries are installed with the --layout=system option |
|
||||||
dnl or if you install boost with RPM |
|
||||||
AS_IF([test "x$_AX_BOOST_BASE_boost_path" != "x"],[ |
|
||||||
AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) includes in "$_AX_BOOST_BASE_boost_path/include"]) |
|
||||||
AS_IF([test -d "$_AX_BOOST_BASE_boost_path/include" && test -r "$_AX_BOOST_BASE_boost_path/include"],[ |
|
||||||
AC_MSG_RESULT([yes]) |
|
||||||
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include" |
|
||||||
for _AX_BOOST_BASE_boost_path_tmp in $multiarch_libsubdir $libsubdirs; do |
|
||||||
AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) lib path in "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp"]) |
|
||||||
AS_IF([test -d "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" && test -r "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" ],[ |
|
||||||
AC_MSG_RESULT([yes]) |
|
||||||
BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp"; |
|
||||||
break; |
|
||||||
], |
|
||||||
[AC_MSG_RESULT([no])]) |
|
||||||
done],[ |
|
||||||
AC_MSG_RESULT([no])]) |
|
||||||
],[ |
|
||||||
if test X"$cross_compiling" = Xyes; then |
|
||||||
search_libsubdirs=$multiarch_libsubdir |
|
||||||
else |
|
||||||
search_libsubdirs="$multiarch_libsubdir $libsubdirs" |
|
||||||
fi |
|
||||||
for _AX_BOOST_BASE_boost_path_tmp in /usr /usr/local /opt /opt/local ; do |
|
||||||
if test -d "$_AX_BOOST_BASE_boost_path_tmp/include/boost" && test -r "$_AX_BOOST_BASE_boost_path_tmp/include/boost" ; then |
|
||||||
for libsubdir in $search_libsubdirs ; do |
|
||||||
if ls "$_AX_BOOST_BASE_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi |
|
||||||
done |
|
||||||
BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path_tmp/$libsubdir" |
|
||||||
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path_tmp/include" |
|
||||||
break; |
|
||||||
fi |
|
||||||
done |
|
||||||
]) |
|
||||||
|
|
||||||
dnl overwrite ld flags if we have required special directory with |
|
||||||
dnl --with-boost-libdir parameter |
|
||||||
AS_IF([test "x$_AX_BOOST_BASE_boost_lib_path" != "x"], |
|
||||||
[BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_lib_path"]) |
|
||||||
|
|
||||||
AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION)]) |
|
||||||
CPPFLAGS_SAVED="$CPPFLAGS" |
|
||||||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" |
|
||||||
export CPPFLAGS |
|
||||||
|
|
||||||
LDFLAGS_SAVED="$LDFLAGS" |
|
||||||
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" |
|
||||||
export LDFLAGS |
|
||||||
|
|
||||||
AC_REQUIRE([AC_PROG_CXX]) |
|
||||||
AC_LANG_PUSH(C++) |
|
||||||
AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[ |
|
||||||
AC_MSG_RESULT(yes) |
|
||||||
succeeded=yes |
|
||||||
found_system=yes |
|
||||||
],[ |
|
||||||
]) |
|
||||||
AC_LANG_POP([C++]) |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
dnl if we found no boost with system layout we search for boost libraries |
|
||||||
dnl built and installed without the --layout=system option or for a staged(not installed) version |
|
||||||
if test "x$succeeded" != "xyes" ; then |
|
||||||
CPPFLAGS="$CPPFLAGS_SAVED" |
|
||||||
LDFLAGS="$LDFLAGS_SAVED" |
|
||||||
BOOST_CPPFLAGS= |
|
||||||
if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then |
|
||||||
BOOST_LDFLAGS= |
|
||||||
fi |
|
||||||
_version=0 |
|
||||||
if test -n "$_AX_BOOST_BASE_boost_path" ; then |
|
||||||
if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path"; then |
|
||||||
for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do |
|
||||||
_version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` |
|
||||||
V_CHECK=`expr $_version_tmp \> $_version` |
|
||||||
if test "x$V_CHECK" = "x1" ; then |
|
||||||
_version=$_version_tmp |
|
||||||
fi |
|
||||||
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` |
|
||||||
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include/boost-$VERSION_UNDERSCORE" |
|
||||||
done |
|
||||||
dnl if nothing found search for layout used in Windows distributions |
|
||||||
if test -z "$BOOST_CPPFLAGS"; then |
|
||||||
if test -d "$_AX_BOOST_BASE_boost_path/boost" && test -r "$_AX_BOOST_BASE_boost_path/boost"; then |
|
||||||
BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path" |
|
||||||
fi |
|
||||||
fi |
|
||||||
dnl if we found something and BOOST_LDFLAGS was unset before |
|
||||||
dnl (because "$_AX_BOOST_BASE_boost_lib_path" = ""), set it here. |
|
||||||
if test -n "$BOOST_CPPFLAGS" && test -z "$BOOST_LDFLAGS"; then |
|
||||||
for libsubdir in $libsubdirs ; do |
|
||||||
if ls "$_AX_BOOST_BASE_boost_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi |
|
||||||
done |
|
||||||
BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$libsubdir" |
|
||||||
fi |
|
||||||
fi |
|
||||||
else |
|
||||||
if test "x$cross_compiling" != "xyes" ; then |
|
||||||
for _AX_BOOST_BASE_boost_path in /usr /usr/local /opt /opt/local ; do |
|
||||||
if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path" ; then |
|
||||||
for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do |
|
||||||
_version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` |
|
||||||
V_CHECK=`expr $_version_tmp \> $_version` |
|
||||||
if test "x$V_CHECK" = "x1" ; then |
|
||||||
_version=$_version_tmp |
|
||||||
best_path=$_AX_BOOST_BASE_boost_path |
|
||||||
fi |
|
||||||
done |
|
||||||
fi |
|
||||||
done |
|
||||||
|
|
||||||
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` |
|
||||||
BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE" |
|
||||||
if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then |
|
||||||
for libsubdir in $libsubdirs ; do |
|
||||||
if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi |
|
||||||
done |
|
||||||
BOOST_LDFLAGS="-L$best_path/$libsubdir" |
|
||||||
fi |
|
||||||
fi |
|
||||||
|
|
||||||
if test -n "$BOOST_ROOT" ; then |
|
||||||
for libsubdir in $libsubdirs ; do |
|
||||||
if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi |
|
||||||
done |
|
||||||
if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then |
|
||||||
version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'` |
|
||||||
stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'` |
|
||||||
stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'` |
|
||||||
V_CHECK=`expr $stage_version_shorten \>\= $_version` |
|
||||||
if test "x$V_CHECK" = "x1" && test -z "$_AX_BOOST_BASE_boost_lib_path" ; then |
|
||||||
AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT) |
|
||||||
BOOST_CPPFLAGS="-I$BOOST_ROOT" |
|
||||||
BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir" |
|
||||||
fi |
|
||||||
fi |
|
||||||
fi |
|
||||||
fi |
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" |
|
||||||
export CPPFLAGS |
|
||||||
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" |
|
||||||
export LDFLAGS |
|
||||||
|
|
||||||
AC_LANG_PUSH(C++) |
|
||||||
AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[ |
|
||||||
AC_MSG_RESULT(yes) |
|
||||||
succeeded=yes |
|
||||||
found_system=yes |
|
||||||
],[ |
|
||||||
]) |
|
||||||
AC_LANG_POP([C++]) |
|
||||||
fi |
|
||||||
|
|
||||||
if test "x$succeeded" != "xyes" ; then |
|
||||||
if test "x$_version" = "x0" ; then |
|
||||||
AC_MSG_NOTICE([[We could not detect the boost libraries (version $1 or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]]) |
|
||||||
else |
|
||||||
AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).]) |
|
||||||
fi |
|
||||||
# execute ACTION-IF-NOT-FOUND (if present): |
|
||||||
ifelse([$3], , :, [$3]) |
|
||||||
else |
|
||||||
AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available]) |
|
||||||
# execute ACTION-IF-FOUND (if present): |
|
||||||
ifelse([$2], , :, [$2]) |
|
||||||
fi |
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS_SAVED" |
|
||||||
LDFLAGS="$LDFLAGS_SAVED" |
|
||||||
|
|
||||||
]) |
|
@ -1,49 +0,0 @@ |
|||||||
# =========================================================================== |
|
||||||
# http://www.gnu.org/software/autoconf-archive/ax_define_dir.html |
|
||||||
# =========================================================================== |
|
||||||
# |
|
||||||
# SYNOPSIS |
|
||||||
# |
|
||||||
# AX_DEFINE_DIR(VARNAME, DIR [, DESCRIPTION]) |
|
||||||
# |
|
||||||
# DESCRIPTION |
|
||||||
# |
|
||||||
# This macro sets VARNAME to the expansion of the DIR variable, taking |
|
||||||
# care of fixing up ${prefix} and such. |
|
||||||
# |
|
||||||
# VARNAME is then offered as both an output variable and a C preprocessor |
|
||||||
# symbol. |
|
||||||
# |
|
||||||
# Example: |
|
||||||
# |
|
||||||
# AX_DEFINE_DIR([DATADIR], [datadir], [Where data are placed to.]) |
|
||||||
# |
|
||||||
# LICENSE |
|
||||||
# |
|
||||||
# Copyright (c) 2008 Stepan Kasal <kasal@ucw.cz> |
|
||||||
# Copyright (c) 2008 Andreas Schwab <schwab@suse.de> |
|
||||||
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de> |
|
||||||
# Copyright (c) 2008 Alexandre Oliva |
|
||||||
# |
|
||||||
# Copying and distribution of this file, with or without modification, are |
|
||||||
# permitted in any medium without royalty provided the copyright notice |
|
||||||
# and this notice are preserved. This file is offered as-is, without any |
|
||||||
# warranty. |
|
||||||
|
|
||||||
#serial 6 |
|
||||||
|
|
||||||
AU_ALIAS([AC_DEFINE_DIR], [AX_DEFINE_DIR]) |
|
||||||
AC_DEFUN([AX_DEFINE_DIR], [ |
|
||||||
prefix_NONE= |
|
||||||
exec_prefix_NONE= |
|
||||||
test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix |
|
||||||
test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix |
|
||||||
dnl In Autoconf 2.60, ${datadir} refers to ${datarootdir}, which in turn |
|
||||||
dnl refers to ${prefix}. Thus we have to use `eval' twice. |
|
||||||
eval ax_define_dir="\"[$]$2\"" |
|
||||||
eval ax_define_dir="\"$ax_define_dir\"" |
|
||||||
AC_SUBST($1, "$ax_define_dir") |
|
||||||
AC_DEFINE_UNQUOTED($1, "$ax_define_dir", [$3]) |
|
||||||
test "$prefix_NONE" && prefix=NONE |
|
||||||
test "$exec_prefix_NONE" && exec_prefix=NONE |
|
||||||
]) |
|
@ -1,275 +0,0 @@ |
|||||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- |
|
||||||
# serial 12 (pkg-config-0.29.2) |
|
||||||
|
|
||||||
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. |
|
||||||
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com> |
|
||||||
dnl |
|
||||||
dnl This program is free software; you can redistribute it and/or modify |
|
||||||
dnl it under the terms of the GNU General Public License as published by |
|
||||||
dnl the Free Software Foundation; either version 2 of the License, or |
|
||||||
dnl (at your option) any later version. |
|
||||||
dnl |
|
||||||
dnl This program is distributed in the hope that it will be useful, but |
|
||||||
dnl WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
||||||
dnl General Public License for more details. |
|
||||||
dnl |
|
||||||
dnl You should have received a copy of the GNU General Public License |
|
||||||
dnl along with this program; if not, write to the Free Software |
|
||||||
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
|
||||||
dnl 02111-1307, USA. |
|
||||||
dnl |
|
||||||
dnl As a special exception to the GNU General Public License, if you |
|
||||||
dnl distribute this file as part of a program that contains a |
|
||||||
dnl configuration script generated by Autoconf, you may include it under |
|
||||||
dnl the same distribution terms that you use for the rest of that |
|
||||||
dnl program. |
|
||||||
|
|
||||||
dnl PKG_PREREQ(MIN-VERSION) |
|
||||||
dnl ----------------------- |
|
||||||
dnl Since: 0.29 |
|
||||||
dnl |
|
||||||
dnl Verify that the version of the pkg-config macros are at least |
|
||||||
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's |
|
||||||
dnl installed version of pkg-config, this checks the developer's version |
|
||||||
dnl of pkg.m4 when generating configure. |
|
||||||
dnl |
|
||||||
dnl To ensure that this macro is defined, also add: |
|
||||||
dnl m4_ifndef([PKG_PREREQ], |
|
||||||
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) |
|
||||||
dnl |
|
||||||
dnl See the "Since" comment for each macro you use to see what version |
|
||||||
dnl of the macros you require. |
|
||||||
m4_defun([PKG_PREREQ], |
|
||||||
[m4_define([PKG_MACROS_VERSION], [0.29.2]) |
|
||||||
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, |
|
||||||
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) |
|
||||||
])dnl PKG_PREREQ |
|
||||||
|
|
||||||
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) |
|
||||||
dnl ---------------------------------- |
|
||||||
dnl Since: 0.16 |
|
||||||
dnl |
|
||||||
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to |
|
||||||
dnl first found in the path. Checks that the version of pkg-config found |
|
||||||
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is |
|
||||||
dnl used since that's the first version where most current features of |
|
||||||
dnl pkg-config existed. |
|
||||||
AC_DEFUN([PKG_PROG_PKG_CONFIG], |
|
||||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) |
|
||||||
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) |
|
||||||
m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) |
|
||||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) |
|
||||||
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) |
|
||||||
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) |
|
||||||
|
|
||||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then |
|
||||||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) |
|
||||||
fi |
|
||||||
if test -n "$PKG_CONFIG"; then |
|
||||||
_pkg_min_version=m4_default([$1], [0.9.0]) |
|
||||||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) |
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then |
|
||||||
AC_MSG_RESULT([yes]) |
|
||||||
else |
|
||||||
AC_MSG_RESULT([no]) |
|
||||||
PKG_CONFIG="" |
|
||||||
fi |
|
||||||
fi[]dnl |
|
||||||
])dnl PKG_PROG_PKG_CONFIG |
|
||||||
|
|
||||||
dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) |
|
||||||
dnl ------------------------------------------------------------------- |
|
||||||
dnl Since: 0.18 |
|
||||||
dnl |
|
||||||
dnl Check to see whether a particular set of modules exists. Similar to |
|
||||||
dnl PKG_CHECK_MODULES(), but does not set variables or print errors. |
|
||||||
dnl |
|
||||||
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) |
|
||||||
dnl only at the first occurence in configure.ac, so if the first place |
|
||||||
dnl it's called might be skipped (such as if it is within an "if", you |
|
||||||
dnl have to call PKG_CHECK_EXISTS manually |
|
||||||
AC_DEFUN([PKG_CHECK_EXISTS], |
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl |
|
||||||
if test -n "$PKG_CONFIG" && \ |
|
||||||
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then |
|
||||||
m4_default([$2], [:]) |
|
||||||
m4_ifvaln([$3], [else |
|
||||||
$3])dnl |
|
||||||
fi]) |
|
||||||
|
|
||||||
dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) |
|
||||||
dnl --------------------------------------------- |
|
||||||
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting |
|
||||||
dnl pkg_failed based on the result. |
|
||||||
m4_define([_PKG_CONFIG], |
|
||||||
[if test -n "$$1"; then |
|
||||||
pkg_cv_[]$1="$$1" |
|
||||||
elif test -n "$PKG_CONFIG"; then |
|
||||||
PKG_CHECK_EXISTS([$3], |
|
||||||
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` |
|
||||||
test "x$?" != "x0" && pkg_failed=yes ], |
|
||||||
[pkg_failed=yes]) |
|
||||||
else |
|
||||||
pkg_failed=untried |
|
||||||
fi[]dnl |
|
||||||
])dnl _PKG_CONFIG |
|
||||||
|
|
||||||
dnl _PKG_SHORT_ERRORS_SUPPORTED |
|
||||||
dnl --------------------------- |
|
||||||
dnl Internal check to see if pkg-config supports short errors. |
|
||||||
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], |
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) |
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then |
|
||||||
_pkg_short_errors_supported=yes |
|
||||||
else |
|
||||||
_pkg_short_errors_supported=no |
|
||||||
fi[]dnl |
|
||||||
])dnl _PKG_SHORT_ERRORS_SUPPORTED |
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], |
|
||||||
dnl [ACTION-IF-NOT-FOUND]) |
|
||||||
dnl -------------------------------------------------------------- |
|
||||||
dnl Since: 0.4.0 |
|
||||||
dnl |
|
||||||
dnl Note that if there is a possibility the first call to |
|
||||||
dnl PKG_CHECK_MODULES might not happen, you should be sure to include an |
|
||||||
dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac |
|
||||||
AC_DEFUN([PKG_CHECK_MODULES], |
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl |
|
||||||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl |
|
||||||
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl |
|
||||||
|
|
||||||
pkg_failed=no |
|
||||||
AC_MSG_CHECKING([for $2]) |
|
||||||
|
|
||||||
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) |
|
||||||
_PKG_CONFIG([$1][_LIBS], [libs], [$2]) |
|
||||||
|
|
||||||
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS |
|
||||||
and $1[]_LIBS to avoid the need to call pkg-config. |
|
||||||
See the pkg-config man page for more details.]) |
|
||||||
|
|
||||||
if test $pkg_failed = yes; then |
|
||||||
AC_MSG_RESULT([no]) |
|
||||||
_PKG_SHORT_ERRORS_SUPPORTED |
|
||||||
if test $_pkg_short_errors_supported = yes; then |
|
||||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` |
|
||||||
else |
|
||||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` |
|
||||||
fi |
|
||||||
# Put the nasty error message in config.log where it belongs |
|
||||||
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD |
|
||||||
|
|
||||||
m4_default([$4], [AC_MSG_ERROR( |
|
||||||
[Package requirements ($2) were not met: |
|
||||||
|
|
||||||
$$1_PKG_ERRORS |
|
||||||
|
|
||||||
Consider adjusting the PKG_CONFIG_PATH environment variable if you |
|
||||||
installed software in a non-standard prefix. |
|
||||||
|
|
||||||
_PKG_TEXT])[]dnl |
|
||||||
]) |
|
||||||
elif test $pkg_failed = untried; then |
|
||||||
AC_MSG_RESULT([no]) |
|
||||||
m4_default([$4], [AC_MSG_FAILURE( |
|
||||||
[The pkg-config script could not be found or is too old. Make sure it |
|
||||||
is in your PATH or set the PKG_CONFIG environment variable to the full |
|
||||||
path to pkg-config. |
|
||||||
|
|
||||||
_PKG_TEXT |
|
||||||
|
|
||||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl |
|
||||||
]) |
|
||||||
else |
|
||||||
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS |
|
||||||
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS |
|
||||||
AC_MSG_RESULT([yes]) |
|
||||||
$3 |
|
||||||
fi[]dnl |
|
||||||
])dnl PKG_CHECK_MODULES |
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], |
|
||||||
dnl [ACTION-IF-NOT-FOUND]) |
|
||||||
dnl --------------------------------------------------------------------- |
|
||||||
dnl Since: 0.29 |
|
||||||
dnl |
|
||||||
dnl Checks for existence of MODULES and gathers its build flags with |
|
||||||
dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags |
|
||||||
dnl and VARIABLE-PREFIX_LIBS from --libs. |
|
||||||
dnl |
|
||||||
dnl Note that if there is a possibility the first call to |
|
||||||
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to |
|
||||||
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your |
|
||||||
dnl configure.ac. |
|
||||||
AC_DEFUN([PKG_CHECK_MODULES_STATIC], |
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl |
|
||||||
_save_PKG_CONFIG=$PKG_CONFIG |
|
||||||
PKG_CONFIG="$PKG_CONFIG --static" |
|
||||||
PKG_CHECK_MODULES($@) |
|
||||||
PKG_CONFIG=$_save_PKG_CONFIG[]dnl |
|
||||||
])dnl PKG_CHECK_MODULES_STATIC |
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_INSTALLDIR([DIRECTORY]) |
|
||||||
dnl ------------------------- |
|
||||||
dnl Since: 0.27 |
|
||||||
dnl |
|
||||||
dnl Substitutes the variable pkgconfigdir as the location where a module |
|
||||||
dnl should install pkg-config .pc files. By default the directory is |
|
||||||
dnl $libdir/pkgconfig, but the default can be changed by passing |
|
||||||
dnl DIRECTORY. The user can override through the --with-pkgconfigdir |
|
||||||
dnl parameter. |
|
||||||
AC_DEFUN([PKG_INSTALLDIR], |
|
||||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) |
|
||||||
m4_pushdef([pkg_description], |
|
||||||
[pkg-config installation directory @<:@]pkg_default[@:>@]) |
|
||||||
AC_ARG_WITH([pkgconfigdir], |
|
||||||
[AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, |
|
||||||
[with_pkgconfigdir=]pkg_default) |
|
||||||
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) |
|
||||||
m4_popdef([pkg_default]) |
|
||||||
m4_popdef([pkg_description]) |
|
||||||
])dnl PKG_INSTALLDIR |
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) |
|
||||||
dnl -------------------------------- |
|
||||||
dnl Since: 0.27 |
|
||||||
dnl |
|
||||||
dnl Substitutes the variable noarch_pkgconfigdir as the location where a |
|
||||||
dnl module should install arch-independent pkg-config .pc files. By |
|
||||||
dnl default the directory is $datadir/pkgconfig, but the default can be |
|
||||||
dnl changed by passing DIRECTORY. The user can override through the |
|
||||||
dnl --with-noarch-pkgconfigdir parameter. |
|
||||||
AC_DEFUN([PKG_NOARCH_INSTALLDIR], |
|
||||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) |
|
||||||
m4_pushdef([pkg_description], |
|
||||||
[pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) |
|
||||||
AC_ARG_WITH([noarch-pkgconfigdir], |
|
||||||
[AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, |
|
||||||
[with_noarch_pkgconfigdir=]pkg_default) |
|
||||||
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) |
|
||||||
m4_popdef([pkg_default]) |
|
||||||
m4_popdef([pkg_description]) |
|
||||||
])dnl PKG_NOARCH_INSTALLDIR |
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, |
|
||||||
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) |
|
||||||
dnl ------------------------------------------- |
|
||||||
dnl Since: 0.28 |
|
||||||
dnl |
|
||||||
dnl Retrieves the value of the pkg-config variable for the given module. |
|
||||||
AC_DEFUN([PKG_CHECK_VAR], |
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl |
|
||||||
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl |
|
||||||
|
|
||||||
_PKG_CONFIG([$1], [variable="][$3]["], [$2]) |
|
||||||
AS_VAR_COPY([$1], [pkg_cv_][$1]) |
|
||||||
|
|
||||||
AS_VAR_IF([$1], [""], [$5], [$4])dnl |
|
||||||
])dnl PKG_CHECK_VAR |
|
@ -1,51 +0,0 @@ |
|||||||
# Checking for pkg-config. If found, check for QtCore and query pkg-config |
|
||||||
# for its exec-prefix variable. |
|
||||||
|
|
||||||
# FIND_QT5() |
|
||||||
# Sets the QT_QMAKE variable to the path of Qt5 qmake if found. |
|
||||||
# -------------------------------------- |
|
||||||
AC_DEFUN([FIND_QT5], |
|
||||||
[PKG_CHECK_EXISTS([Qt5Core >= 5.15.2], |
|
||||||
[PKG_CHECK_VAR(QT_QMAKE, |
|
||||||
[Qt5Core >= 5.15.2], |
|
||||||
[host_bins]) |
|
||||||
]) |
|
||||||
|
|
||||||
AS_IF([test -f "$QT_QMAKE/qmake"], |
|
||||||
[QT_QMAKE="$QT_QMAKE/qmake"], |
|
||||||
[AS_IF([test -f "$QT_QMAKE/qmake-qt5"], |
|
||||||
[QT_QMAKE="$QT_QMAKE/qmake-qt5"], |
|
||||||
[QT_QMAKE=""]) |
|
||||||
]) |
|
||||||
|
|
||||||
AC_MSG_CHECKING([for Qt5 qmake >= 5.15.2]) |
|
||||||
AS_IF([test "x$QT_QMAKE" != "x"], |
|
||||||
[AC_MSG_RESULT([$QT_QMAKE])], |
|
||||||
[AC_MSG_RESULT([not found])] |
|
||||||
) |
|
||||||
]) |
|
||||||
|
|
||||||
# FIND_QTDBUS() |
|
||||||
# Sets the HAVE_QTDBUS variable to true or false. |
|
||||||
# -------------------------------------- |
|
||||||
AC_DEFUN([FIND_QTDBUS], |
|
||||||
[AC_MSG_CHECKING([for Qt5DBus >= 5.15.2]) |
|
||||||
PKG_CHECK_EXISTS([Qt5DBus >= 5.15.2], |
|
||||||
[AC_MSG_RESULT([found]) |
|
||||||
HAVE_QTDBUS=[true]], |
|
||||||
[AC_MSG_RESULT([not found]) |
|
||||||
HAVE_QTDBUS=[false]]) |
|
||||||
]) |
|
||||||
|
|
||||||
# DETECT_CPP17_PROGRAM() |
|
||||||
# Detects if at least C++17 mode is enabled. |
|
||||||
# -------------------------------------- |
|
||||||
AC_DEFUN([DETECT_CPP17_PROGRAM], |
|
||||||
[AC_LANG_PROGRAM([[ |
|
||||||
#ifndef __cplusplus |
|
||||||
#error "This is not a C++ compiler" |
|
||||||
#elif __cplusplus < 201703L |
|
||||||
#error "This is not a C++17 compiler" |
|
||||||
#endif]], |
|
||||||
[[]]) |
|
||||||
]) |
|
@ -1,50 +0,0 @@ |
|||||||
# The first path is used when the source is being build by packagers (pbuilder/sbuild/etc) |
|
||||||
# The second path is used when you manually run the configure script in the root folder (eg when using qt creator) |
|
||||||
exists($$OUT_PWD/../conf.pri) { |
|
||||||
include($$OUT_PWD/../conf.pri) |
|
||||||
} |
|
||||||
else { |
|
||||||
include(conf.pri) |
|
||||||
} |
|
||||||
|
|
||||||
# Custom function |
|
||||||
# Return Qt translations files as list of paths |
|
||||||
# It will return .qm files of qt/qtbase that aren't stub files. |
|
||||||
defineReplace(qbt_get_qt_translations) { |
|
||||||
# The $$[] syntax queries qmake properties |
|
||||||
TMP_TRANSLATIONS = $$files($$[QT_INSTALL_TRANSLATIONS]/qt_??.qm) |
|
||||||
TMP_TRANSLATIONS += $$files($$[QT_INSTALL_TRANSLATIONS]/qt_??_??.qm) |
|
||||||
TMP_TRANSLATIONS += $$files($$[QT_INSTALL_TRANSLATIONS]/qtbase_??.qm) |
|
||||||
TMP_TRANSLATIONS += $$files($$[QT_INSTALL_TRANSLATIONS]/qtbase_??_??.qm) |
|
||||||
|
|
||||||
# Consider files less than 10KB as stub translations |
|
||||||
for (TRANSLATION, TMP_TRANSLATIONS) { |
|
||||||
TRANSLATION_SIZE = $$system("stat -f%z $${TRANSLATION}", true, EXIT_STATUS) |
|
||||||
equals(EXIT_STATUS, 0):!lessThan(TRANSLATION_SIZE, 10240): FINAL_TRANSLATIONS += $${TRANSLATION} |
|
||||||
} |
|
||||||
|
|
||||||
return($$FINAL_TRANSLATIONS) |
|
||||||
} |
|
||||||
|
|
||||||
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.15 |
|
||||||
|
|
||||||
DEFINES += _DARWIN_FEATURE_64_BIT_INODE |
|
||||||
|
|
||||||
LIBS += -framework Carbon -framework IOKit -framework AppKit |
|
||||||
|
|
||||||
DIST_PATH = ../dist/mac |
|
||||||
|
|
||||||
document_icon.path = Contents/Resources |
|
||||||
document_icon.files = $$DIST_PATH/qBitTorrentDocument.icns |
|
||||||
QMAKE_BUNDLE_DATA += document_icon |
|
||||||
|
|
||||||
qt_conf.path = Contents/Resources |
|
||||||
qt_conf.files = $$DIST_PATH/qt.conf |
|
||||||
QMAKE_BUNDLE_DATA += qt_conf |
|
||||||
|
|
||||||
qt_translations.path = Contents/translations |
|
||||||
qt_translations.files = $$qbt_get_qt_translations() |
|
||||||
QMAKE_BUNDLE_DATA += qt_translations |
|
||||||
|
|
||||||
ICON = $$DIST_PATH/qbittorrent_mac.icns |
|
||||||
QMAKE_INFO_PLIST = $$DIST_PATH/Info.plist |
|
@ -1,9 +0,0 @@ |
|||||||
TEMPLATE = subdirs |
|
||||||
|
|
||||||
SUBDIRS += src |
|
||||||
|
|
||||||
include(version.pri) |
|
||||||
|
|
||||||
# For Qt Creator beautifier |
|
||||||
DISTFILES += \ |
|
||||||
uncrustify.cfg |
|
@ -1,25 +0,0 @@ |
|||||||
INCLUDEPATH += $$PWD |
|
||||||
|
|
||||||
HEADERS += \ |
|
||||||
$$PWD/application.h \ |
|
||||||
$$PWD/applicationinstancemanager.h \ |
|
||||||
$$PWD/cmdoptions.h \ |
|
||||||
$$PWD/filelogger.h \ |
|
||||||
$$PWD/qtlocalpeer/qtlocalpeer.h \ |
|
||||||
$$PWD/signalhandler.h \ |
|
||||||
$$PWD/upgrade.h |
|
||||||
|
|
||||||
SOURCES += \ |
|
||||||
$$PWD/application.cpp \ |
|
||||||
$$PWD/applicationinstancemanager.cpp \ |
|
||||||
$$PWD/cmdoptions.cpp \ |
|
||||||
$$PWD/filelogger.cpp \ |
|
||||||
$$PWD/main.cpp \ |
|
||||||
$$PWD/qtlocalpeer/qtlocalpeer.cpp \ |
|
||||||
$$PWD/signalhandler.cpp \ |
|
||||||
$$PWD/upgrade.cpp |
|
||||||
|
|
||||||
stacktrace { |
|
||||||
HEADERS += $$PWD/stacktrace.h |
|
||||||
SOURCES += $$PWD/stacktrace.cpp |
|
||||||
} |
|
@ -1,190 +0,0 @@ |
|||||||
HEADERS += \ |
|
||||||
$$PWD/3rdparty/expected.hpp \ |
|
||||||
$$PWD/algorithm.h \ |
|
||||||
$$PWD/applicationcomponent.h \ |
|
||||||
$$PWD/asyncfilestorage.h \ |
|
||||||
$$PWD/bittorrent/abstractfilestorage.h \ |
|
||||||
$$PWD/bittorrent/addtorrentparams.h \ |
|
||||||
$$PWD/bittorrent/bandwidthscheduler.h \ |
|
||||||
$$PWD/bittorrent/bencoderesumedatastorage.h \ |
|
||||||
$$PWD/bittorrent/cachestatus.h \ |
|
||||||
$$PWD/bittorrent/categoryoptions.h \ |
|
||||||
$$PWD/bittorrent/common.h \ |
|
||||||
$$PWD/bittorrent/customstorage.h \ |
|
||||||
$$PWD/bittorrent/downloadpriority.h \ |
|
||||||
$$PWD/bittorrent/dbresumedatastorage.h \ |
|
||||||
$$PWD/bittorrent/extensiondata.h \ |
|
||||||
$$PWD/bittorrent/filesearcher.h \ |
|
||||||
$$PWD/bittorrent/filterparserthread.h \ |
|
||||||
$$PWD/bittorrent/infohash.h \ |
|
||||||
$$PWD/bittorrent/loadtorrentparams.h \ |
|
||||||
$$PWD/bittorrent/ltqbitarray.h \ |
|
||||||
$$PWD/bittorrent/ltqhash.h \ |
|
||||||
$$PWD/bittorrent/lttypecast.h \ |
|
||||||
$$PWD/bittorrent/magneturi.h \ |
|
||||||
$$PWD/bittorrent/nativesessionextension.h \ |
|
||||||
$$PWD/bittorrent/nativetorrentextension.h \ |
|
||||||
$$PWD/bittorrent/peeraddress.h \ |
|
||||||
$$PWD/bittorrent/peerinfo.h \ |
|
||||||
$$PWD/bittorrent/portforwarderimpl.h \ |
|
||||||
$$PWD/bittorrent/resumedatastorage.h \ |
|
||||||
$$PWD/bittorrent/session.h \ |
|
||||||
$$PWD/bittorrent/sessionimpl.h \ |
|
||||||
$$PWD/bittorrent/sessionstatus.h \ |
|
||||||
$$PWD/bittorrent/speedmonitor.h \ |
|
||||||
$$PWD/bittorrent/torrent.h \ |
|
||||||
$$PWD/bittorrent/torrentcontentlayout.h \ |
|
||||||
$$PWD/bittorrent/torrentcontenthandler.h \ |
|
||||||
$$PWD/bittorrent/torrentcreatorthread.h \ |
|
||||||
$$PWD/bittorrent/torrentimpl.h \ |
|
||||||
$$PWD/bittorrent/torrentinfo.h \ |
|
||||||
$$PWD/bittorrent/tracker.h \ |
|
||||||
$$PWD/bittorrent/trackerentry.h \ |
|
||||||
$$PWD/digest32.h \ |
|
||||||
$$PWD/exceptions.h \ |
|
||||||
$$PWD/global.h \ |
|
||||||
$$PWD/http/connection.h \ |
|
||||||
$$PWD/http/httperror.h \ |
|
||||||
$$PWD/http/irequesthandler.h \ |
|
||||||
$$PWD/http/requestparser.h \ |
|
||||||
$$PWD/http/responsebuilder.h \ |
|
||||||
$$PWD/http/responsegenerator.h \ |
|
||||||
$$PWD/http/server.h \ |
|
||||||
$$PWD/http/types.h \ |
|
||||||
$$PWD/iconprovider.h \ |
|
||||||
$$PWD/indexrange.h \ |
|
||||||
$$PWD/interfaces/iapplication.h \ |
|
||||||
$$PWD/interfaces/istringable.h \ |
|
||||||
$$PWD/logger.h \ |
|
||||||
$$PWD/net/dnsupdater.h \ |
|
||||||
$$PWD/net/downloadhandlerimpl.h \ |
|
||||||
$$PWD/net/downloadmanager.h \ |
|
||||||
$$PWD/net/geoipdatabase.h \ |
|
||||||
$$PWD/net/geoipmanager.h \ |
|
||||||
$$PWD/net/portforwarder.h \ |
|
||||||
$$PWD/net/proxyconfigurationmanager.h \ |
|
||||||
$$PWD/net/reverseresolution.h \ |
|
||||||
$$PWD/net/smtp.h \ |
|
||||||
$$PWD/orderedset.h \ |
|
||||||
$$PWD/path.h \ |
|
||||||
$$PWD/pathfwd.h \ |
|
||||||
$$PWD/preferences.h \ |
|
||||||
$$PWD/profile.h \ |
|
||||||
$$PWD/profile_p.h \ |
|
||||||
$$PWD/rss/feed_serializer.h \ |
|
||||||
$$PWD/rss/rss_article.h \ |
|
||||||
$$PWD/rss/rss_autodownloader.h \ |
|
||||||
$$PWD/rss/rss_autodownloadrule.h \ |
|
||||||
$$PWD/rss/rss_feed.h \ |
|
||||||
$$PWD/rss/rss_folder.h \ |
|
||||||
$$PWD/rss/rss_item.h \ |
|
||||||
$$PWD/rss/rss_parser.h \ |
|
||||||
$$PWD/rss/rss_session.h \ |
|
||||||
$$PWD/search/searchdownloadhandler.h \ |
|
||||||
$$PWD/search/searchhandler.h \ |
|
||||||
$$PWD/search/searchpluginmanager.h \ |
|
||||||
$$PWD/settingsstorage.h \ |
|
||||||
$$PWD/settingvalue.h \ |
|
||||||
$$PWD/tagset.h \ |
|
||||||
$$PWD/torrentfileguard.h \ |
|
||||||
$$PWD/torrentfileswatcher.h \ |
|
||||||
$$PWD/torrentfilter.h \ |
|
||||||
$$PWD/types.h \ |
|
||||||
$$PWD/unicodestrings.h \ |
|
||||||
$$PWD/utils/bytearray.h \ |
|
||||||
$$PWD/utils/compare.h \ |
|
||||||
$$PWD/utils/foreignapps.h \ |
|
||||||
$$PWD/utils/fs.h \ |
|
||||||
$$PWD/utils/gzip.h \ |
|
||||||
$$PWD/utils/io.h \ |
|
||||||
$$PWD/utils/misc.h \ |
|
||||||
$$PWD/utils/net.h \ |
|
||||||
$$PWD/utils/password.h \ |
|
||||||
$$PWD/utils/random.h \ |
|
||||||
$$PWD/utils/string.h \ |
|
||||||
$$PWD/utils/thread.h \ |
|
||||||
$$PWD/utils/version.h \ |
|
||||||
$$PWD/version.h |
|
||||||
|
|
||||||
SOURCES += \ |
|
||||||
$$PWD/applicationcomponent.cpp \ |
|
||||||
$$PWD/asyncfilestorage.cpp \ |
|
||||||
$$PWD/bittorrent/abstractfilestorage.cpp \ |
|
||||||
$$PWD/bittorrent/addtorrentparams.cpp \ |
|
||||||
$$PWD/bittorrent/bandwidthscheduler.cpp \ |
|
||||||
$$PWD/bittorrent/bencoderesumedatastorage.cpp \ |
|
||||||
$$PWD/bittorrent/categoryoptions.cpp \ |
|
||||||
$$PWD/bittorrent/customstorage.cpp \ |
|
||||||
$$PWD/bittorrent/dbresumedatastorage.cpp \ |
|
||||||
$$PWD/bittorrent/downloadpriority.cpp \ |
|
||||||
$$PWD/bittorrent/filesearcher.cpp \ |
|
||||||
$$PWD/bittorrent/filterparserthread.cpp \ |
|
||||||
$$PWD/bittorrent/infohash.cpp \ |
|
||||||
$$PWD/bittorrent/ltqbitarray.cpp \ |
|
||||||
$$PWD/bittorrent/magneturi.cpp \ |
|
||||||
$$PWD/bittorrent/nativesessionextension.cpp \ |
|
||||||
$$PWD/bittorrent/nativetorrentextension.cpp \ |
|
||||||
$$PWD/bittorrent/peeraddress.cpp \ |
|
||||||
$$PWD/bittorrent/peerinfo.cpp \ |
|
||||||
$$PWD/bittorrent/portforwarderimpl.cpp \ |
|
||||||
$$PWD/bittorrent/resumedatastorage.cpp \ |
|
||||||
$$PWD/bittorrent/sessionimpl.cpp \ |
|
||||||
$$PWD/bittorrent/speedmonitor.cpp \ |
|
||||||
$$PWD/bittorrent/torrent.cpp \ |
|
||||||
$$PWD/bittorrent/torrentcontenthandler.h \ |
|
||||||
$$PWD/bittorrent/torrentcreatorthread.cpp \ |
|
||||||
$$PWD/bittorrent/torrentimpl.cpp \ |
|
||||||
$$PWD/bittorrent/torrentinfo.cpp \ |
|
||||||
$$PWD/bittorrent/tracker.cpp \ |
|
||||||
$$PWD/bittorrent/trackerentry.cpp \ |
|
||||||
$$PWD/exceptions.cpp \ |
|
||||||
$$PWD/http/connection.cpp \ |
|
||||||
$$PWD/http/httperror.cpp \ |
|
||||||
$$PWD/http/requestparser.cpp \ |
|
||||||
$$PWD/http/responsebuilder.cpp \ |
|
||||||
$$PWD/http/responsegenerator.cpp \ |
|
||||||
$$PWD/http/server.cpp \ |
|
||||||
$$PWD/iconprovider.cpp \ |
|
||||||
$$PWD/logger.cpp \ |
|
||||||
$$PWD/net/dnsupdater.cpp \ |
|
||||||
$$PWD/net/downloadhandlerimpl.cpp \ |
|
||||||
$$PWD/net/downloadmanager.cpp \ |
|
||||||
$$PWD/net/geoipdatabase.cpp \ |
|
||||||
$$PWD/net/geoipmanager.cpp \ |
|
||||||
$$PWD/net/portforwarder.cpp \ |
|
||||||
$$PWD/net/proxyconfigurationmanager.cpp \ |
|
||||||
$$PWD/net/reverseresolution.cpp \ |
|
||||||
$$PWD/net/smtp.cpp \ |
|
||||||
$$PWD/path.cpp \ |
|
||||||
$$PWD/preferences.cpp \ |
|
||||||
$$PWD/profile.cpp \ |
|
||||||
$$PWD/profile_p.cpp \ |
|
||||||
$$PWD/rss/feed_serializer.cpp \ |
|
||||||
$$PWD/rss/rss_article.cpp \ |
|
||||||
$$PWD/rss/rss_autodownloader.cpp \ |
|
||||||
$$PWD/rss/rss_autodownloadrule.cpp \ |
|
||||||
$$PWD/rss/rss_feed.cpp \ |
|
||||||
$$PWD/rss/rss_folder.cpp \ |
|
||||||
$$PWD/rss/rss_item.cpp \ |
|
||||||
$$PWD/rss/rss_parser.cpp \ |
|
||||||
$$PWD/rss/rss_session.cpp \ |
|
||||||
$$PWD/search/searchdownloadhandler.cpp \ |
|
||||||
$$PWD/search/searchhandler.cpp \ |
|
||||||
$$PWD/search/searchpluginmanager.cpp \ |
|
||||||
$$PWD/settingsstorage.cpp \ |
|
||||||
$$PWD/tagset.cpp \ |
|
||||||
$$PWD/torrentfileguard.cpp \ |
|
||||||
$$PWD/torrentfileswatcher.cpp \ |
|
||||||
$$PWD/torrentfilter.cpp \ |
|
||||||
$$PWD/utils/bytearray.cpp \ |
|
||||||
$$PWD/utils/compare.cpp \ |
|
||||||
$$PWD/utils/foreignapps.cpp \ |
|
||||||
$$PWD/utils/fs.cpp \ |
|
||||||
$$PWD/utils/gzip.cpp \ |
|
||||||
$$PWD/utils/io.cpp \ |
|
||||||
$$PWD/utils/misc.cpp \ |
|
||||||
$$PWD/utils/net.cpp \ |
|
||||||
$$PWD/utils/password.cpp \ |
|
||||||
$$PWD/utils/random.cpp \ |
|
||||||
$$PWD/utils/string.cpp \ |
|
||||||
$$PWD/utils/thread.cpp |
|
@ -1,251 +0,0 @@ |
|||||||
INCLUDEPATH += $$PWD |
|
||||||
|
|
||||||
HEADERS += \ |
|
||||||
$$PWD/aboutdialog.h \ |
|
||||||
$$PWD/addnewtorrentdialog.h \ |
|
||||||
$$PWD/addtorrentparamswidget.h \ |
|
||||||
$$PWD/advancedsettings.h \ |
|
||||||
$$PWD/autoexpandabledialog.h \ |
|
||||||
$$PWD/banlistoptionsdialog.h \ |
|
||||||
$$PWD/color.h \ |
|
||||||
$$PWD/cookiesdialog.h \ |
|
||||||
$$PWD/cookiesmodel.h \ |
|
||||||
$$PWD/deletionconfirmationdialog.h \ |
|
||||||
$$PWD/desktopintegration.h \ |
|
||||||
$$PWD/downloadfromurldialog.h \ |
|
||||||
$$PWD/executionlogwidget.h \ |
|
||||||
$$PWD/flowlayout.h \ |
|
||||||
$$PWD/fspathedit.h \ |
|
||||||
$$PWD/fspathedit_p.h \ |
|
||||||
$$PWD/guiapplicationcomponent.h \ |
|
||||||
$$PWD/hidabletabwidget.h \ |
|
||||||
$$PWD/interfaces/iguiapplication.h \ |
|
||||||
$$PWD/ipsubnetwhitelistoptionsdialog.h \ |
|
||||||
$$PWD/lineedit.h \ |
|
||||||
$$PWD/log/logfiltermodel.h \ |
|
||||||
$$PWD/log/loglistview.h \ |
|
||||||
$$PWD/log/logmodel.h \ |
|
||||||
$$PWD/mainwindow.h \ |
|
||||||
$$PWD/optionsdialog.h \ |
|
||||||
$$PWD/powermanagement/powermanagement.h \ |
|
||||||
$$PWD/previewlistdelegate.h \ |
|
||||||
$$PWD/previewselectdialog.h \ |
|
||||||
$$PWD/progressbarpainter.h \ |
|
||||||
$$PWD/properties/downloadedpiecesbar.h \ |
|
||||||
$$PWD/properties/peerlistsortmodel.h \ |
|
||||||
$$PWD/properties/peerlistwidget.h \ |
|
||||||
$$PWD/properties/peersadditiondialog.h \ |
|
||||||
$$PWD/properties/pieceavailabilitybar.h \ |
|
||||||
$$PWD/properties/piecesbar.h \ |
|
||||||
$$PWD/properties/propertieswidget.h \ |
|
||||||
$$PWD/properties/proptabbar.h \ |
|
||||||
$$PWD/properties/speedplotview.h \ |
|
||||||
$$PWD/properties/speedwidget.h \ |
|
||||||
$$PWD/properties/trackerlistwidget.h \ |
|
||||||
$$PWD/properties/trackersadditiondialog.h \ |
|
||||||
$$PWD/raisedmessagebox.h \ |
|
||||||
$$PWD/rss/articlelistwidget.h \ |
|
||||||
$$PWD/rss/automatedrssdownloader.h \ |
|
||||||
$$PWD/rss/feedlistwidget.h \ |
|
||||||
$$PWD/rss/htmlbrowser.h \ |
|
||||||
$$PWD/rss/rsswidget.h \ |
|
||||||
$$PWD/search/pluginselectdialog.h \ |
|
||||||
$$PWD/search/pluginsourcedialog.h \ |
|
||||||
$$PWD/search/searchjobwidget.h \ |
|
||||||
$$PWD/search/searchsortmodel.h \ |
|
||||||
$$PWD/search/searchwidget.h \ |
|
||||||
$$PWD/shutdownconfirmdialog.h \ |
|
||||||
$$PWD/speedlimitdialog.h \ |
|
||||||
$$PWD/statsdialog.h \ |
|
||||||
$$PWD/statusbar.h \ |
|
||||||
$$PWD/torrentcategorydialog.h \ |
|
||||||
$$PWD/torrentcontentfiltermodel.h \ |
|
||||||
$$PWD/torrentcontentitemdelegate.h \ |
|
||||||
$$PWD/torrentcontentmodel.h \ |
|
||||||
$$PWD/torrentcontentmodelfile.h \ |
|
||||||
$$PWD/torrentcontentmodelfolder.h \ |
|
||||||
$$PWD/torrentcontentmodelitem.h \ |
|
||||||
$$PWD/torrentcontentwidget.h \ |
|
||||||
$$PWD/torrentcreatordialog.h \ |
|
||||||
$$PWD/torrentoptionsdialog.h \ |
|
||||||
$$PWD/torrenttagsdialog.h \ |
|
||||||
$$PWD/trackerentriesdialog.h \ |
|
||||||
$$PWD/transferlistdelegate.h \ |
|
||||||
$$PWD/transferlistfilters/basefilterwidget.h \ |
|
||||||
$$PWD/transferlistfilters/categoryfiltermodel.h \ |
|
||||||
$$PWD/transferlistfilters/categoryfilterproxymodel.h \ |
|
||||||
$$PWD/transferlistfilters/categoryfilterwidget.h \ |
|
||||||
$$PWD/transferlistfilters/statusfilterwidget.h \ |
|
||||||
$$PWD/transferlistfilters/tagfiltermodel.h \ |
|
||||||
$$PWD/transferlistfilters/tagfilterproxymodel.h \ |
|
||||||
$$PWD/transferlistfilters/tagfilterwidget.h \ |
|
||||||
$$PWD/transferlistfilters/trackersfilterwidget.h \ |
|
||||||
$$PWD/transferlistfilterswidget.h \ |
|
||||||
$$PWD/transferlistmodel.h \ |
|
||||||
$$PWD/transferlistsortmodel.h \ |
|
||||||
$$PWD/transferlistwidget.h \ |
|
||||||
$$PWD/tristateaction.h \ |
|
||||||
$$PWD/tristatewidget.h \ |
|
||||||
$$PWD/uithemecommon.h \ |
|
||||||
$$PWD/uithemedialog.h \ |
|
||||||
$$PWD/uithememanager.h \ |
|
||||||
$$PWD/uithemesource.h \ |
|
||||||
$$PWD/utils.h \ |
|
||||||
$$PWD/watchedfolderoptionsdialog.h \ |
|
||||||
$$PWD/watchedfoldersmodel.h \ |
|
||||||
$$PWD/windowstate.h |
|
||||||
|
|
||||||
SOURCES += \ |
|
||||||
$$PWD/aboutdialog.cpp \ |
|
||||||
$$PWD/addnewtorrentdialog.cpp \ |
|
||||||
$$PWD/addtorrentparamswidget.cpp \ |
|
||||||
$$PWD/advancedsettings.cpp \ |
|
||||||
$$PWD/autoexpandabledialog.cpp \ |
|
||||||
$$PWD/banlistoptionsdialog.cpp \ |
|
||||||
$$PWD/cookiesdialog.cpp \ |
|
||||||
$$PWD/cookiesmodel.cpp \ |
|
||||||
$$PWD/deletionconfirmationdialog.cpp \ |
|
||||||
$$PWD/desktopintegration.cpp \ |
|
||||||
$$PWD/downloadfromurldialog.cpp \ |
|
||||||
$$PWD/executionlogwidget.cpp \ |
|
||||||
$$PWD/flowlayout.cpp \ |
|
||||||
$$PWD/fspathedit.cpp \ |
|
||||||
$$PWD/fspathedit_p.cpp \ |
|
||||||
$$PWD/guiapplicationcomponent.cpp \ |
|
||||||
$$PWD/hidabletabwidget.cpp \ |
|
||||||
$$PWD/ipsubnetwhitelistoptionsdialog.cpp \ |
|
||||||
$$PWD/lineedit.cpp \ |
|
||||||
$$PWD/log/logfiltermodel.cpp \ |
|
||||||
$$PWD/log/loglistview.cpp \ |
|
||||||
$$PWD/log/logmodel.cpp \ |
|
||||||
$$PWD/mainwindow.cpp \ |
|
||||||
$$PWD/optionsdialog.cpp \ |
|
||||||
$$PWD/powermanagement/powermanagement.cpp \ |
|
||||||
$$PWD/previewlistdelegate.cpp \ |
|
||||||
$$PWD/previewselectdialog.cpp \ |
|
||||||
$$PWD/progressbarpainter.cpp \ |
|
||||||
$$PWD/properties/downloadedpiecesbar.cpp \ |
|
||||||
$$PWD/properties/peerlistsortmodel.cpp \ |
|
||||||
$$PWD/properties/peerlistwidget.cpp \ |
|
||||||
$$PWD/properties/peersadditiondialog.cpp \ |
|
||||||
$$PWD/properties/pieceavailabilitybar.cpp \ |
|
||||||
$$PWD/properties/piecesbar.cpp \ |
|
||||||
$$PWD/properties/propertieswidget.cpp \ |
|
||||||
$$PWD/properties/proptabbar.cpp \ |
|
||||||
$$PWD/properties/speedplotview.cpp \ |
|
||||||
$$PWD/properties/speedwidget.cpp \ |
|
||||||
$$PWD/properties/trackerlistwidget.cpp \ |
|
||||||
$$PWD/properties/trackersadditiondialog.cpp \ |
|
||||||
$$PWD/raisedmessagebox.cpp \ |
|
||||||
$$PWD/rss/articlelistwidget.cpp \ |
|
||||||
$$PWD/rss/automatedrssdownloader.cpp \ |
|
||||||
$$PWD/rss/feedlistwidget.cpp \ |
|
||||||
$$PWD/rss/htmlbrowser.cpp \ |
|
||||||
$$PWD/rss/rsswidget.cpp \ |
|
||||||
$$PWD/search/pluginselectdialog.cpp \ |
|
||||||
$$PWD/search/pluginsourcedialog.cpp \ |
|
||||||
$$PWD/search/searchjobwidget.cpp \ |
|
||||||
$$PWD/search/searchsortmodel.cpp \ |
|
||||||
$$PWD/search/searchwidget.cpp \ |
|
||||||
$$PWD/shutdownconfirmdialog.cpp \ |
|
||||||
$$PWD/speedlimitdialog.cpp \ |
|
||||||
$$PWD/statsdialog.cpp \ |
|
||||||
$$PWD/statusbar.cpp \ |
|
||||||
$$PWD/torrentcategorydialog.cpp \ |
|
||||||
$$PWD/torrentcontentfiltermodel.cpp \ |
|
||||||
$$PWD/torrentcontentitemdelegate.cpp \ |
|
||||||
$$PWD/torrentcontentmodel.cpp \ |
|
||||||
$$PWD/torrentcontentmodelfile.cpp \ |
|
||||||
$$PWD/torrentcontentmodelfolder.cpp \ |
|
||||||
$$PWD/torrentcontentmodelitem.cpp \ |
|
||||||
$$PWD/torrentcontentwidget.cpp \ |
|
||||||
$$PWD/torrentcreatordialog.cpp \ |
|
||||||
$$PWD/torrentoptionsdialog.cpp \ |
|
||||||
$$PWD/torrenttagsdialog.cpp \ |
|
||||||
$$PWD/trackerentriesdialog.cpp \ |
|
||||||
$$PWD/transferlistdelegate.cpp \ |
|
||||||
$$PWD/transferlistfilters/basefilterwidget.cpp \ |
|
||||||
$$PWD/transferlistfilters/categoryfiltermodel.cpp \ |
|
||||||
$$PWD/transferlistfilters/categoryfilterproxymodel.cpp \ |
|
||||||
$$PWD/transferlistfilters/categoryfilterwidget.cpp \ |
|
||||||
$$PWD/transferlistfilters/statusfilterwidget.cpp \ |
|
||||||
$$PWD/transferlistfilters/tagfiltermodel.cpp \ |
|
||||||
$$PWD/transferlistfilters/tagfilterproxymodel.cpp \ |
|
||||||
$$PWD/transferlistfilters/tagfilterwidget.cpp \ |
|
||||||
$$PWD/transferlistfilters/trackersfilterwidget.cpp \ |
|
||||||
$$PWD/transferlistfilterswidget.cpp \ |
|
||||||
$$PWD/transferlistmodel.cpp \ |
|
||||||
$$PWD/transferlistsortmodel.cpp \ |
|
||||||
$$PWD/transferlistwidget.cpp \ |
|
||||||
$$PWD/tristateaction.cpp \ |
|
||||||
$$PWD/tristatewidget.cpp \ |
|
||||||
$$PWD/uithemedialog.cpp \ |
|
||||||
$$PWD/uithememanager.cpp \ |
|
||||||
$$PWD/uithemesource.cpp \ |
|
||||||
$$PWD/utils.cpp \ |
|
||||||
$$PWD/watchedfolderoptionsdialog.cpp \ |
|
||||||
$$PWD/watchedfoldersmodel.cpp |
|
||||||
|
|
||||||
FORMS += \ |
|
||||||
$$PWD/aboutdialog.ui \ |
|
||||||
$$PWD/addnewtorrentdialog.ui \ |
|
||||||
$$PWD/addtorrentparamswidget.ui \ |
|
||||||
$$PWD/autoexpandabledialog.ui \ |
|
||||||
$$PWD/banlistoptionsdialog.ui \ |
|
||||||
$$PWD/cookiesdialog.ui \ |
|
||||||
$$PWD/deletionconfirmationdialog.ui \ |
|
||||||
$$PWD/downloadfromurldialog.ui \ |
|
||||||
$$PWD/executionlogwidget.ui \ |
|
||||||
$$PWD/ipsubnetwhitelistoptionsdialog.ui \ |
|
||||||
$$PWD/mainwindow.ui \ |
|
||||||
$$PWD/optionsdialog.ui \ |
|
||||||
$$PWD/previewselectdialog.ui \ |
|
||||||
$$PWD/properties/peersadditiondialog.ui \ |
|
||||||
$$PWD/properties/propertieswidget.ui \ |
|
||||||
$$PWD/properties/trackersadditiondialog.ui \ |
|
||||||
$$PWD/rss/automatedrssdownloader.ui \ |
|
||||||
$$PWD/rss/rsswidget.ui \ |
|
||||||
$$PWD/search/pluginselectdialog.ui \ |
|
||||||
$$PWD/search/pluginsourcedialog.ui \ |
|
||||||
$$PWD/search/searchjobwidget.ui \ |
|
||||||
$$PWD/search/searchwidget.ui \ |
|
||||||
$$PWD/shutdownconfirmdialog.ui \ |
|
||||||
$$PWD/speedlimitdialog.ui \ |
|
||||||
$$PWD/statsdialog.ui \ |
|
||||||
$$PWD/torrentcategorydialog.ui \ |
|
||||||
$$PWD/torrentcreatordialog.ui \ |
|
||||||
$$PWD/torrentoptionsdialog.ui \ |
|
||||||
$$PWD/torrenttagsdialog.ui \ |
|
||||||
$$PWD/trackerentriesdialog.ui \ |
|
||||||
$$PWD/uithemedialog.ui \ |
|
||||||
$$PWD/watchedfolderoptionsdialog.ui |
|
||||||
|
|
||||||
RESOURCES += $$PWD/about.qrc |
|
||||||
|
|
||||||
stacktrace { |
|
||||||
HEADERS += $$PWD/stacktracedialog.h |
|
||||||
SOURCES += $$PWD/stacktracedialog.cpp |
|
||||||
FORMS += $$PWD/stacktracedialog.ui |
|
||||||
} |
|
||||||
|
|
||||||
win32|macx { |
|
||||||
HEADERS += $$PWD/programupdater.h |
|
||||||
SOURCES += $$PWD/programupdater.cpp |
|
||||||
} |
|
||||||
|
|
||||||
unix:!macx:dbus { |
|
||||||
HEADERS += \ |
|
||||||
$$PWD/notifications/dbusnotifier.h \ |
|
||||||
$$PWD/notifications/dbusnotificationsinterface.h \ |
|
||||||
$$PWD/powermanagement/powermanagement_x11.h |
|
||||||
|
|
||||||
SOURCES += \ |
|
||||||
$$PWD/notifications/dbusnotifier.cpp \ |
|
||||||
$$PWD/notifications/dbusnotificationsinterface.cpp \ |
|
||||||
$$PWD/powermanagement/powermanagement_x11.cpp |
|
||||||
} |
|
||||||
|
|
||||||
macx { |
|
||||||
HEADERS += $$PWD/macutilities.h |
|
||||||
OBJECTIVE_SOURCES += $$PWD/macutilities.mm |
|
||||||
} |
|
@ -1,108 +0,0 @@ |
|||||||
# Global |
|
||||||
TEMPLATE = app |
|
||||||
CONFIG += qt thread silent |
|
||||||
|
|
||||||
# Platform specific configuration |
|
||||||
win32: include(../winconf.pri) |
|
||||||
macx: include(../macxconf.pri) |
|
||||||
unix:!macx: include(../unixconf.pri) |
|
||||||
|
|
||||||
QT += network sql xml |
|
||||||
|
|
||||||
macx|*-clang*: QMAKE_CXXFLAGS_WARN_ON += -Wno-range-loop-analysis |
|
||||||
|
|
||||||
nogui { |
|
||||||
TARGET = qbittorrent-nox |
|
||||||
QT -= gui |
|
||||||
DEFINES += DISABLE_GUI |
|
||||||
} else { |
|
||||||
TARGET = qbittorrent |
|
||||||
QT += xml svg widgets |
|
||||||
|
|
||||||
CONFIG(static) { |
|
||||||
DEFINES += QBT_STATIC_QT |
|
||||||
QTPLUGIN += qico |
|
||||||
} |
|
||||||
win32: lessThan(QT_MAJOR_VERSION, 6) { |
|
||||||
QT += winextras |
|
||||||
} |
|
||||||
macx { |
|
||||||
LIBS += -lobjc |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
nowebui { |
|
||||||
DEFINES += DISABLE_WEBUI |
|
||||||
} |
|
||||||
|
|
||||||
stacktrace { |
|
||||||
DEFINES += STACKTRACE |
|
||||||
|
|
||||||
macx { |
|
||||||
DEFINES += BOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED |
|
||||||
QMAKE_LFLAGS += -rdynamic |
|
||||||
} |
|
||||||
unix { |
|
||||||
LIBS += -ldl |
|
||||||
QMAKE_LFLAGS += -rdynamic |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
CONFIG(debug, debug|release): message(Project is built in DEBUG mode.) |
|
||||||
CONFIG(release, debug|release): message(Project is built in RELEASE mode.) |
|
||||||
|
|
||||||
# Disable debug output in release mode |
|
||||||
CONFIG(release, debug|release) { |
|
||||||
message(Disabling debug output.) |
|
||||||
DEFINES += QT_NO_DEBUG_OUTPUT |
|
||||||
} |
|
||||||
|
|
||||||
# VERSION DEFINES |
|
||||||
include(../version.pri) |
|
||||||
|
|
||||||
# Qt defines |
|
||||||
DEFINES += \ |
|
||||||
QT_DISABLE_DEPRECATED_BEFORE=0x050f02 \ |
|
||||||
QT_NO_CAST_FROM_ASCII \ |
|
||||||
QT_NO_CAST_TO_ASCII \ |
|
||||||
QT_NO_CAST_FROM_BYTEARRAY \ |
|
||||||
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT \ |
|
||||||
QT_USE_QSTRINGBUILDER \ |
|
||||||
QT_STRICT_ITERATORS |
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD |
|
||||||
|
|
||||||
include(app/app.pri) |
|
||||||
include(base/base.pri) |
|
||||||
!nogui: include(gui/gui.pri) |
|
||||||
!nowebui: include(webui/webui.pri) |
|
||||||
|
|
||||||
isEmpty(QMAKE_LRELEASE) { |
|
||||||
win32: QMAKE_LRELEASE = $$[QT_HOST_BINS]/lrelease.exe |
|
||||||
else: QMAKE_LRELEASE = $$[QT_HOST_BINS]/lrelease |
|
||||||
unix { |
|
||||||
equals(QT_MAJOR_VERSION, 5) { |
|
||||||
!exists($$QMAKE_LRELEASE): QMAKE_LRELEASE = lrelease-qt5 |
|
||||||
} |
|
||||||
} |
|
||||||
else { |
|
||||||
!exists($$QMAKE_LRELEASE): QMAKE_LRELEASE = lrelease |
|
||||||
} |
|
||||||
} |
|
||||||
lrelease.input = TS_SOURCES |
|
||||||
lrelease.output = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.qm |
|
||||||
lrelease.commands = @echo "lrelease ${QMAKE_FILE_NAME}" && $$QMAKE_LRELEASE -silent ${QMAKE_FILE_NAME} -qm ${QMAKE_FILE_OUT} |
|
||||||
lrelease.CONFIG += no_link target_predeps |
|
||||||
QMAKE_EXTRA_COMPILERS += lrelease |
|
||||||
|
|
||||||
TRANSLATIONS = $$files($$PWD/lang/qbittorrent_*.ts) |
|
||||||
TS_SOURCES += $$TRANSLATIONS |
|
||||||
|
|
||||||
# Resource files |
|
||||||
QMAKE_RESOURCE_FLAGS += -compress 9 -threshold 5 |
|
||||||
RESOURCES += \ |
|
||||||
icons/icons.qrc \ |
|
||||||
lang/lang.qrc \ |
|
||||||
searchengine/searchengine.qrc |
|
||||||
|
|
||||||
DESTDIR = . |
|
@ -1,36 +0,0 @@ |
|||||||
HEADERS += \ |
|
||||||
$$PWD/api/apicontroller.h \ |
|
||||||
$$PWD/api/apierror.h \ |
|
||||||
$$PWD/api/appcontroller.h \ |
|
||||||
$$PWD/api/authcontroller.h \ |
|
||||||
$$PWD/api/freediskspacechecker.h \ |
|
||||||
$$PWD/api/isessionmanager.h \ |
|
||||||
$$PWD/api/logcontroller.h \ |
|
||||||
$$PWD/api/rsscontroller.h \ |
|
||||||
$$PWD/api/searchcontroller.h \ |
|
||||||
$$PWD/api/synccontroller.h \ |
|
||||||
$$PWD/api/torrentscontroller.h \ |
|
||||||
$$PWD/api/transfercontroller.h \ |
|
||||||
$$PWD/api/serialize/serialize_torrent.h \ |
|
||||||
$$PWD/webapplication.h \ |
|
||||||
$$PWD/webui.h |
|
||||||
|
|
||||||
SOURCES += \ |
|
||||||
$$PWD/api/apicontroller.cpp \ |
|
||||||
$$PWD/api/apierror.cpp \ |
|
||||||
$$PWD/api/appcontroller.cpp \ |
|
||||||
$$PWD/api/authcontroller.cpp \ |
|
||||||
$$PWD/api/freediskspacechecker.cpp \ |
|
||||||
$$PWD/api/logcontroller.cpp \ |
|
||||||
$$PWD/api/rsscontroller.cpp \ |
|
||||||
$$PWD/api/searchcontroller.cpp \ |
|
||||||
$$PWD/api/synccontroller.cpp \ |
|
||||||
$$PWD/api/torrentscontroller.cpp \ |
|
||||||
$$PWD/api/transfercontroller.cpp \ |
|
||||||
$$PWD/api/serialize/serialize_torrent.cpp \ |
|
||||||
$$PWD/webapplication.cpp \ |
|
||||||
$$PWD/webui.cpp |
|
||||||
|
|
||||||
TS_SOURCES += $$files($$PWD/www/translations/webui_*.ts) |
|
||||||
|
|
||||||
RESOURCES += $$PWD/www/webui.qrc $$PWD/www/translations/webui_translations.qrc |
|
@ -1,58 +0,0 @@ |
|||||||
# The first path is used when the source is being build by packagers (pbuilder/sbuild/etc) |
|
||||||
# The second path is used when you manually run the configure script in the root folder (eg when using qt creator) |
|
||||||
exists($$OUT_PWD/../conf.pri) { |
|
||||||
include($$OUT_PWD/../conf.pri) |
|
||||||
} |
|
||||||
else { |
|
||||||
include(conf.pri) |
|
||||||
} |
|
||||||
|
|
||||||
# COMPILATION SPECIFIC |
|
||||||
!nogui:dbus: QT += dbus |
|
||||||
|
|
||||||
QMAKE_CXXFLAGS += -Wall -Wextra -Wpedantic -Wformat-security |
|
||||||
|
|
||||||
# Man page |
|
||||||
nogui { |
|
||||||
man.files = ../doc/qbittorrent-nox.1 |
|
||||||
} |
|
||||||
else { |
|
||||||
man.files = ../doc/qbittorrent.1 |
|
||||||
} |
|
||||||
|
|
||||||
man.path = $$MANPREFIX/man1 |
|
||||||
INSTALLS += man |
|
||||||
|
|
||||||
DIST_PATH = ../dist/unix |
|
||||||
|
|
||||||
# Systemd Service file |
|
||||||
nogui:systemd { |
|
||||||
systemdService.files = $$DIST_PATH/systemd/qbittorrent-nox@.service |
|
||||||
systemdService.path = $$PREFIX/lib/systemd/system |
|
||||||
INSTALLS += systemdService |
|
||||||
} |
|
||||||
|
|
||||||
# Menu Icon |
|
||||||
!nogui { |
|
||||||
desktopEntry.files = $$DIST_PATH/org.qbittorrent.qBittorrent.desktop |
|
||||||
desktopEntry.path = $$DATADIR/applications |
|
||||||
INSTALLS += desktopEntry |
|
||||||
|
|
||||||
appdata.files = $$DIST_PATH/org.qbittorrent.qBittorrent.appdata.xml |
|
||||||
appdata.path = $$DATADIR/metainfo |
|
||||||
INSTALLS += appdata |
|
||||||
|
|
||||||
menuicons.files = $$DIST_PATH/menuicons/* |
|
||||||
menuicons.path = $$DATADIR/icons/hicolor |
|
||||||
statusIconScalable.files = $$PWD/src/icons/qbittorrent-tray.svg \ |
|
||||||
$$PWD/src/icons/qbittorrent-tray-dark.svg \ |
|
||||||
$$PWD/src/icons/qbittorrent-tray-light.svg |
|
||||||
statusIconScalable.path = $$DATADIR/icons/hicolor/scalable/status |
|
||||||
INSTALLS += \ |
|
||||||
menuicons \ |
|
||||||
statusIconScalable |
|
||||||
} |
|
||||||
|
|
||||||
# INSTALL |
|
||||||
target.path = $$PREFIX/bin |
|
||||||
INSTALLS += target |
|
@ -1,3 +0,0 @@ |
|||||||
# Generate version header |
|
||||||
versionHeader = $$cat(src/base/version.h.in, blob) |
|
||||||
write_file(src/base/version.h, versionHeader) |
|
@ -1,79 +0,0 @@ |
|||||||
CONFIG += c++17 |
|
||||||
|
|
||||||
# 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 |
|
||||||
DEFINES += BOOST_EXCEPTION_DISABLE |
|
||||||
|
|
||||||
DEFINES += TORRENT_USE_LIBCRYPTO |
|
||||||
DEFINES += TORRENT_USE_OPENSSL |
|
||||||
|
|
||||||
DEFINES += NTDDI_VERSION=0x06010000 |
|
||||||
DEFINES += _WIN32_WINNT=0x0601 |
|
||||||
DEFINES += _WIN32_IE=0x0601 |
|
||||||
DEFINES += UNICODE |
|
||||||
DEFINES += _UNICODE |
|
||||||
DEFINES += WIN32 |
|
||||||
DEFINES += _WIN32 |
|
||||||
DEFINES += WIN32_LEAN_AND_MEAN |
|
||||||
DEFINES += NOMINMAX |
|
||||||
|
|
||||||
CONFIG(debug, debug|release) { |
|
||||||
DEFINES += TORRENT_DEBUG |
|
||||||
} |
|
||||||
else { |
|
||||||
DEFINES += NDEBUG |
|
||||||
} |
|
||||||
|
|
||||||
win32-g++*|win32-clang-g++* { |
|
||||||
CONFIG(debug, debug|release) { |
|
||||||
# Make sure binary is not relocatable, otherwise debugging will fail |
|
||||||
QMAKE_LFLAGS -= -Wl,--dynamicbase |
|
||||||
} |
|
||||||
|
|
||||||
DEFINES += _FILE_OFFSET_BITS=64 |
|
||||||
DEFINES += __USE_W32_SOCKETS |
|
||||||
|
|
||||||
RC_FILE = qbittorrent_mingw.rc |
|
||||||
|
|
||||||
LIBS += libadvapi32 libiphlpapi libole32 libpowrprof libshell32 libuser32 libwsock32 libws2_32 |
|
||||||
} |
|
||||||
else:win32-msvc* { |
|
||||||
CONFIG -= embed_manifest_exe |
|
||||||
|
|
||||||
QMAKE_CXXFLAGS += /utf-8 |
|
||||||
QMAKE_LFLAGS += "/MANIFEST:EMBED /MANIFESTINPUT:$$quote($${PWD}/src/qbittorrent.exe.manifest) /STACK:0x800000" |
|
||||||
|
|
||||||
RC_FILE = qbittorrent.rc |
|
||||||
|
|
||||||
LIBS += advapi32.lib crypt32.lib Iphlpapi.lib ole32.lib PowrProf.lib shell32.lib User32.lib |
|
||||||
} |
|
||||||
|
|
||||||
# See an example build configuration in "conf.pri.windows" |
|
||||||
exists(conf.pri) { |
|
||||||
include(conf.pri) |
|
||||||
} |
|
||||||
else { |
|
||||||
error("'conf.pri' does not exist. See an example configuration in 'conf.pri.windows'.") |
|
||||||
} |
|
||||||
|
|
||||||
# Stack trace support can be enabled in 'conf.pri' |
|
||||||
stacktrace { |
|
||||||
win32-g++*|win32-clang-g++* { |
|
||||||
QMAKE_LFLAGS += -Wl,--export-dynamic |
|
||||||
|
|
||||||
contains(QMAKE_HOST.arch, x86) { |
|
||||||
# i686 arch requires frame pointer preservation |
|
||||||
QMAKE_CXXFLAGS += -fno-omit-frame-pointer |
|
||||||
} |
|
||||||
} |
|
||||||
else:win32-msvc* { |
|
||||||
QMAKE_CXXFLAGS += /Zi |
|
||||||
QMAKE_LFLAGS += "/DEBUG /PDBALTPATH:%_PDB%" |
|
||||||
|
|
||||||
contains(QMAKE_HOST.arch, x86) { |
|
||||||
# i686 arch requires frame pointer preservation |
|
||||||
QMAKE_CXXFLAGS += /Oy- |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue