mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
989 lines
27 KiB
Prolog
989 lines
27 KiB
Prolog
################################################################################
|
|
# libretroshare.pro #
|
|
# Copyright (C) 2018, Retroshare team <retroshare.team@gmailcom> #
|
|
# #
|
|
# This program is free software: you can redistribute it and/or modify #
|
|
# it under the terms of the GNU Lesser General Public License as #
|
|
# published by the Free Software Foundation, either version 3 of the #
|
|
# License, or (at your option) any later version. #
|
|
# #
|
|
# This program is distributed in the hope that it will be useful, #
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
|
# GNU Lesser General Public License for more details. #
|
|
# #
|
|
# You should have received a copy of the GNU Lesser General Public License #
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
|
|
################################################################################
|
|
!include("../../retroshare.pri"): error("Could not include file ../../retroshare.pri")
|
|
|
|
TEMPLATE = lib
|
|
CONFIG += staticlib
|
|
CONFIG -= qt
|
|
TARGET = retroshare
|
|
TARGET_PRL = libretroshare
|
|
DESTDIR = lib
|
|
|
|
!include("use_libretroshare.pri"):error("Including")
|
|
|
|
# the dht stunner is used to obtain RS external ip addr. when it is natted
|
|
# this system is unreliable and rs supports a newer and better one (asking connected peers)
|
|
# CONFIG += useDhtStunner
|
|
|
|
# treat warnings as error for better removing
|
|
#QMAKE_CFLAGS += -Werror
|
|
#QMAKE_CXXFLAGS += -Werror
|
|
|
|
debug {
|
|
# DEFINES *= DEBUG
|
|
# DEFINES *= OPENDHT_DEBUG DHT_DEBUG CONN_DEBUG DEBUG_UDP_SORTER P3DISC_DEBUG DEBUG_UDP_LAYER FT_DEBUG EXTADDRSEARCH_DEBUG
|
|
# DEFINES *= CONTROL_DEBUG FT_DEBUG DEBUG_FTCHUNK P3TURTLE_DEBUG
|
|
# DEFINES *= P3TURTLE_DEBUG
|
|
# DEFINES *= NET_DEBUG
|
|
# DEFINES *= DISTRIB_DEBUG
|
|
# DEFINES *= P3TURTLE_DEBUG FT_DEBUG DEBUG_FTCHUNK MPLEX_DEBUG
|
|
# DEFINES *= STATUS_DEBUG SERV_DEBUG RSSERIAL_DEBUG #CONN_DEBUG
|
|
|
|
QMAKE_CXXFLAGS -= -O2 -fomit-frame-pointer
|
|
QMAKE_CXXFLAGS *= -g -fno-omit-frame-pointer
|
|
}
|
|
|
|
CONFIG += file_lists
|
|
|
|
file_lists {
|
|
HEADERS *= file_sharing/p3filelists.h \
|
|
file_sharing/hash_cache.h \
|
|
file_sharing/filelist_io.h \
|
|
file_sharing/directory_storage.h \
|
|
file_sharing/directory_updater.h \
|
|
file_sharing/rsfilelistitems.h \
|
|
file_sharing/dir_hierarchy.h \
|
|
file_sharing/file_tree.h \
|
|
file_sharing/file_sharing_defaults.h
|
|
|
|
SOURCES *= file_sharing/p3filelists.cc \
|
|
file_sharing/hash_cache.cc \
|
|
file_sharing/filelist_io.cc \
|
|
file_sharing/directory_storage.cc \
|
|
file_sharing/directory_updater.cc \
|
|
file_sharing/dir_hierarchy.cc \
|
|
file_sharing/file_tree.cc \
|
|
file_sharing/rsfilelistitems.cc
|
|
}
|
|
|
|
|
|
dsdv {
|
|
DEFINES *= SERVICES_DSDV
|
|
HEADERS += unused/p3dsdv.h \
|
|
unused/rstlvdsdv.h \
|
|
unused/rsdsdvitems.h \
|
|
unused/rsdsdv.h
|
|
|
|
SOURCES *= unused/rstlvdsdv.cc \
|
|
unused/rsdsdvitems.cc \
|
|
unused/p3dsdv.cc
|
|
}
|
|
bitdht {
|
|
|
|
HEADERS += dht/p3bitdht.h \
|
|
dht/connectstatebox.h
|
|
|
|
SOURCES += dht/p3bitdht.cc \
|
|
dht/p3bitdht_interface.cc \
|
|
dht/p3bitdht_peers.cc \
|
|
dht/p3bitdht_peernet.cc \
|
|
dht/p3bitdht_relay.cc \
|
|
dht/connectstatebox.cc
|
|
|
|
HEADERS += tcponudp/udppeer.h \
|
|
tcponudp/bio_tou.h \
|
|
tcponudp/tcppacket.h \
|
|
tcponudp/tcpstream.h \
|
|
tcponudp/tou.h \
|
|
tcponudp/udprelay.h \
|
|
tcponudp/rsudpstack.h \
|
|
pqi/pqissludp.h \
|
|
|
|
SOURCES += tcponudp/udppeer.cc \
|
|
tcponudp/tcppacket.cc \
|
|
tcponudp/tcpstream.cc \
|
|
tcponudp/tou.cc \
|
|
tcponudp/bss_tou.c \
|
|
tcponudp/udprelay.cc \
|
|
pqi/pqissludp.cc \
|
|
|
|
useDhtStunner {
|
|
HEADERS += dht/stunaddrassist.h \
|
|
tcponudp/udpstunner.h
|
|
|
|
SOURCES += tcponudp/udpstunner.cc
|
|
|
|
DEFINES += RS_USE_DHT_STUNNER
|
|
}
|
|
|
|
DEFINES *= RS_USE_BITDHT
|
|
|
|
BITDHT_DIR = ../../libbitdht/src
|
|
DEPENDPATH += . $${BITDHT_DIR}
|
|
INCLUDEPATH += . $${BITDHT_DIR}
|
|
PRE_TARGETDEPS *= $${BITDHT_DIR}/lib/libbitdht.a
|
|
LIBS *= $${BITDHT_DIR}/lib/libbitdht.a
|
|
}
|
|
|
|
|
|
|
|
|
|
PUBLIC_HEADERS = retroshare/rsdisc.h \
|
|
retroshare/rsexpr.h \
|
|
retroshare/rsfiles.h \
|
|
retroshare/rshistory.h \
|
|
retroshare/rsids.h \
|
|
retroshare/rsiface.h \
|
|
retroshare/rsinit.h \
|
|
retroshare/rsplugin.h \
|
|
retroshare/rsloginhandler.h \
|
|
retroshare/rsmsgs.h \
|
|
retroshare/rsnotify.h \
|
|
retroshare/rspeers.h \
|
|
retroshare/rsrank.h \
|
|
retroshare/rsstatus.h \
|
|
retroshare/rsturtle.h \
|
|
retroshare/rsbanlist.h \
|
|
retroshare/rstypes.h \
|
|
retroshare/rsdht.h \
|
|
retroshare/rsrtt.h \
|
|
retroshare/rsconfig.h \
|
|
retroshare/rsversion.h \
|
|
retroshare/rsservicecontrol.h \
|
|
retroshare/rsgxsdistsync.h
|
|
|
|
HEADERS += plugins/pluginmanager.h \
|
|
plugins/dlfcn_win32.h \
|
|
rsitems/rspluginitems.h \
|
|
util/rsinitedptr.h
|
|
|
|
HEADERS += $$PUBLIC_HEADERS
|
|
|
|
|
|
################################# Linux ##########################################
|
|
linux-* {
|
|
CONFIG += link_pkgconfig
|
|
|
|
QMAKE_CXXFLAGS *= -Wall -D_FILE_OFFSET_BITS=64
|
|
QMAKE_CC = $${QMAKE_CXX}
|
|
|
|
no_sqlcipher {
|
|
PKGCONFIG *= sqlite3
|
|
} else {
|
|
SQLCIPHER_OK = $$system(pkg-config --exists sqlcipher && echo yes)
|
|
isEmpty(SQLCIPHER_OK) {
|
|
# We need a explicit path here, to force using the home version of sqlite3 that really encrypts the database.
|
|
exists(../../../lib/sqlcipher/.libs/libsqlcipher.a) {
|
|
LIBS += ../../../lib/sqlcipher/.libs/libsqlcipher.a
|
|
DEPENDPATH += ../../../lib/
|
|
INCLUDEPATH += ../../../lib/
|
|
} else {
|
|
error("libsqlcipher is not installed and libsqlcipher.a not found. SQLCIPHER is necessary for encrypted database, to build with unencrypted database, run: qmake CONFIG+=no_sqlcipher")
|
|
}
|
|
} else {
|
|
# Workaround for broken sqlcipher packages, e.g. Ubuntu 14.04
|
|
# https://bugs.launchpad.net/ubuntu/+source/sqlcipher/+bug/1493928
|
|
# PKGCONFIG *= sqlcipher
|
|
LIBS *= -lsqlcipher
|
|
}
|
|
}
|
|
|
|
#CONFIG += version_detail_bash_script
|
|
|
|
# linux/bsd can use either - libupnp is more complete and packaged.
|
|
#CONFIG += upnp_miniupnpc
|
|
CONFIG += upnp_libupnp
|
|
|
|
# Check if the systems libupnp has been Debian-patched
|
|
system(grep -E 'char[[:space:]]+PublisherUrl' /usr/include/upnp/upnp.h >/dev/null 2>&1) {
|
|
# Normal libupnp
|
|
} else {
|
|
# Patched libupnp or new unreleased version
|
|
DEFINES *= PATCHED_LIBUPNP
|
|
}
|
|
|
|
PKGCONFIG *= libssl libupnp
|
|
PKGCONFIG *= libcrypto zlib
|
|
no_sqlcipher:PKGCONFIG *= sqlite3
|
|
LIBS *= -ldl
|
|
|
|
DEFINES *= PLUGIN_DIR=\"\\\"$${PLUGIN_DIR}\\\"\"
|
|
DEFINES *= DATA_DIR=\"\\\"$${DATA_DIR}\\\"\"
|
|
}
|
|
|
|
linux-g++ {
|
|
OBJECTS_DIR = temp/linux-g++/obj
|
|
}
|
|
|
|
linux-g++-64 {
|
|
OBJECTS_DIR = temp/linux-g++-64/obj
|
|
}
|
|
|
|
version_detail_bash_script {
|
|
warning("Version detail script is deprecated.")
|
|
warning("Remove references to version_detail_bash_script from all of your build scripts!")
|
|
}
|
|
|
|
#################### Cross compilation for windows under Linux ####################
|
|
|
|
win32-x-g++ {
|
|
OBJECTS_DIR = temp/win32xgcc/obj
|
|
DEFINES *= WINDOWS_SYS WIN32 WIN_CROSS_UBUNTU
|
|
QMAKE_CXXFLAGS *= -Wmissing-include-dirs
|
|
QMAKE_CC = i586-mingw32msvc-g++
|
|
QMAKE_LIB = i586-mingw32msvc-ar
|
|
QMAKE_AR = i586-mingw32msvc-ar
|
|
DEFINES *= STATICLIB WIN32
|
|
|
|
CONFIG += upnp_miniupnpc
|
|
|
|
SSL_DIR=../../../../openssl
|
|
UPNPC_DIR = ../../../../miniupnpc-1.3
|
|
GPG_ERROR_DIR = ../../../../libgpg-error-1.7
|
|
GPGME_DIR = ../../../../gpgme-1.1.8
|
|
|
|
INCLUDEPATH *= /usr/i586-mingw32msvc/include ${HOME}/.wine/drive_c/pthreads/include/
|
|
}
|
|
################################# Windows ##########################################
|
|
|
|
win32-g++ {
|
|
QMAKE_CC = $${QMAKE_CXX}
|
|
OBJECTS_DIR = temp/obj
|
|
MOC_DIR = temp/moc
|
|
DEFINES *= STATICLIB
|
|
|
|
# Switch on extra warnings
|
|
QMAKE_CFLAGS += -Wextra
|
|
QMAKE_CXXFLAGS += -Wextra
|
|
|
|
# Switch off optimization for release version
|
|
QMAKE_CXXFLAGS_RELEASE -= -O2
|
|
QMAKE_CXXFLAGS_RELEASE += -O0
|
|
QMAKE_CFLAGS_RELEASE -= -O2
|
|
QMAKE_CFLAGS_RELEASE += -O0
|
|
|
|
# Switch on optimization for debug version
|
|
#QMAKE_CXXFLAGS_DEBUG += -O2
|
|
#QMAKE_CFLAGS_DEBUG += -O2
|
|
|
|
DEFINES += USE_CMD_ARGS
|
|
|
|
wLibs = ws2_32 gdi32 uuid iphlpapi crypt32 ole32 winmm
|
|
LIBS += $$linkDynamicLibs(wLibs)
|
|
}
|
|
|
|
################################# MacOSX ##########################################
|
|
|
|
mac {
|
|
QMAKE_CC = $${QMAKE_CXX}
|
|
OBJECTS_DIR = temp/obj
|
|
MOC_DIR = temp/moc
|
|
|
|
# Beautiful Hack to fix 64bit file access.
|
|
QMAKE_CXXFLAGS *= -Dfseeko64=fseeko -Dftello64=ftello -Dfopen64=fopen -Dvstatfs64=vstatfs
|
|
|
|
for(lib, LIB_DIR):LIBS += -L"$$lib"
|
|
for(bin, BIN_DIR):LIBS += -L"$$bin"
|
|
|
|
DEPENDPATH += . $$INC_DIR
|
|
INCLUDEPATH += . $$INC_DIR
|
|
INCLUDEPATH += ../../../.
|
|
|
|
# We need a explicit path here, to force using the home version of sqlite3 that really encrypts the database.
|
|
LIBS += /usr/local/lib/libsqlcipher.a
|
|
#LIBS += -lsqlite3
|
|
|
|
DEFINES *= PLUGIN_DIR=\"\\\"$${PLUGIN_DIR}\\\"\"
|
|
DEFINES *= DATA_DIR=\"\\\"$${DATA_DIR}\\\"\"
|
|
}
|
|
|
|
################################# FreeBSD ##########################################
|
|
|
|
freebsd-* {
|
|
INCLUDEPATH *= /usr/local/include/gpgme
|
|
INCLUDEPATH *= /usr/local/include/glib-2.0
|
|
|
|
QMAKE_CXXFLAGS *= -Dfseeko64=fseeko -Dftello64=ftello -Dstat64=stat -Dstatvfs64=statvfs -Dfopen64=fopen
|
|
|
|
# linux/bsd can use either - libupnp is more complete and packaged.
|
|
#CONFIG += upnp_miniupnpc
|
|
CONFIG += upnp_libupnp
|
|
}
|
|
|
|
################################# OpenBSD ##########################################
|
|
|
|
openbsd-* {
|
|
INCLUDEPATH *= /usr/local/include
|
|
INCLUDEPATH += $$system(pkg-config --cflags glib-2.0 | sed -e "s/-I//g")
|
|
|
|
QMAKE_CXXFLAGS *= -Dfseeko64=fseeko -Dftello64=ftello -Dstat64=stat -Dstatvfs64=statvfs -Dfopen64=fopen
|
|
|
|
CONFIG += upnp_libupnp
|
|
}
|
|
|
|
################################# Haiku ##########################################
|
|
|
|
haiku-* {
|
|
|
|
QMAKE_CXXFLAGS *= -Dfseeko64=fseeko -Dftello64=ftello -Dstat64=stat -Dstatvfs64=statvfs -Dfopen64=fopen
|
|
OPENPGPSDK_DIR = ../../openpgpsdk/src
|
|
INCLUDEPATH *= $${OPENPGPSDK_DIR} ../openpgpsdk
|
|
DEFINES *= NO_SQLCIPHER
|
|
CONFIG += release
|
|
CONFIG += upnp_libupnp
|
|
DESTDIR = lib
|
|
}
|
|
|
|
################################### COMMON stuff ##################################
|
|
|
|
# openpgpsdk
|
|
OPENPGPSDK_DIR = ../../openpgpsdk/src
|
|
DEPENDPATH *= $${OPENPGPSDK_DIR}
|
|
INCLUDEPATH *= $${OPENPGPSDK_DIR}
|
|
PRE_TARGETDEPS *= $${OPENPGPSDK_DIR}/lib/libops.a
|
|
LIBS *= $${OPENPGPSDK_DIR}/lib/libops.a -lbz2
|
|
|
|
HEADERS += ft/ftchunkmap.h \
|
|
ft/ftcontroller.h \
|
|
ft/ftdata.h \
|
|
ft/ftdatamultiplex.h \
|
|
ft/ftextralist.h \
|
|
ft/ftfilecreator.h \
|
|
ft/ftfileprovider.h \
|
|
ft/ftfilesearch.h \
|
|
ft/ftsearch.h \
|
|
ft/ftserver.h \
|
|
ft/fttransfermodule.h \
|
|
ft/ftturtlefiletransferitem.h
|
|
|
|
HEADERS += crypto/chacha20.h \
|
|
crypto/rsaes.h \
|
|
crypto/hashstream.h \
|
|
crypto/rscrypto.h
|
|
|
|
HEADERS += directory_updater.h \
|
|
directory_list.h \
|
|
p3filelists.h
|
|
|
|
HEADERS += chat/distantchat.h \
|
|
chat/p3chatservice.h \
|
|
chat/distributedchat.h \
|
|
chat/rschatitems.h
|
|
|
|
HEADERS += pqi/authssl.h \
|
|
pqi/authgpg.h \
|
|
pgp/pgphandler.h \
|
|
pgp/pgpkeyutil.h \
|
|
pgp/rscertificate.h \
|
|
pgp/pgpauxutils.h \
|
|
pqi/p3cfgmgr.h \
|
|
pqi/p3peermgr.h \
|
|
pqi/p3linkmgr.h \
|
|
pqi/p3netmgr.h \
|
|
pqi/p3notify.h \
|
|
pqi/p3upnpmgr.h \
|
|
pqi/pqiqos.h \
|
|
pqi/pqi.h \
|
|
pqi/pqi_base.h \
|
|
pqi/pqiassist.h \
|
|
pqi/pqibin.h \
|
|
pqi/pqihandler.h \
|
|
pqi/pqihash.h \
|
|
pqi/p3historymgr.h \
|
|
pqi/pqiindic.h \
|
|
pqi/pqiipset.h \
|
|
pqi/pqilistener.h \
|
|
pqi/pqiloopback.h \
|
|
pqi/pqimonitor.h \
|
|
pqi/pqinetwork.h \
|
|
pqi/pqiperson.h \
|
|
pqi/pqipersongrp.h \
|
|
pqi/pqiservice.h \
|
|
pqi/pqiservicemonitor.h \
|
|
pqi/pqissl.h \
|
|
pqi/pqissllistener.h \
|
|
pqi/pqisslpersongrp.h \
|
|
pqi/pqissli2pbob.h \
|
|
pqi/pqisslproxy.h \
|
|
pqi/pqistore.h \
|
|
pqi/pqistreamer.h \
|
|
pqi/pqithreadstreamer.h \
|
|
pqi/pqiqosstreamer.h \
|
|
pqi/sslfns.h \
|
|
pqi/pqinetstatebox.h \
|
|
pqi/p3servicecontrol.h \
|
|
|
|
# pqi/p3dhtmgr.h \
|
|
|
|
HEADERS += rsserver/p3face.h \
|
|
rsserver/p3history.h \
|
|
rsserver/p3msgs.h \
|
|
rsserver/p3peers.h \
|
|
rsserver/p3status.h \
|
|
rsserver/rsaccounts.h \
|
|
rsserver/p3serverconfig.h
|
|
|
|
HEADERS += grouter/groutercache.h \
|
|
retroshare/rsgrouter.h \
|
|
grouter/grouteritems.h \
|
|
grouter/p3grouter.h \
|
|
grouter/rsgroutermatrix.h \
|
|
grouter/groutertypes.h \
|
|
grouter/grouterclientservice.h
|
|
|
|
HEADERS += rsitems/rsitem.h \
|
|
rsitems/itempriorities.h \
|
|
serialiser/rsbaseserial.h \
|
|
rsitems/rsfiletransferitems.h \
|
|
rsitems/rsconfigitems.h \
|
|
rsitems/rshistoryitems.h \
|
|
rsitems/rsmsgitems.h \
|
|
serialiser/rsserial.h \
|
|
rsitems/rsserviceids.h \
|
|
serialiser/rsserviceitems.h \
|
|
rsitems/rsstatusitems.h \
|
|
serialiser/rstlvaddrs.h \
|
|
serialiser/rstlvbase.h \
|
|
serialiser/rstlvitem.h \
|
|
serialiser/rstlvidset.h \
|
|
serialiser/rstlvfileitem.h \
|
|
serialiser/rstlvimage.h \
|
|
serialiser/rstlvstring.h \
|
|
serialiser/rstlvbinary.h \
|
|
serialiser/rstlvkeys.h \
|
|
serialiser/rstlvkeyvalue.h \
|
|
serialiser/rstlvgenericparam.h \
|
|
serialiser/rstlvgenericmap.h \
|
|
serialiser/rstlvgenericmap.inl \
|
|
serialiser/rstlvlist.h \
|
|
serialiser/rstlvmaps.h \
|
|
serialiser/rstlvbanlist.h \
|
|
rsitems/rsbanlistitems.h \
|
|
rsitems/rsbwctrlitems.h \
|
|
rsitems/rsdiscovery2items.h \
|
|
rsitems/rsheartbeatitems.h \
|
|
rsitems/rsrttitems.h \
|
|
rsitems/rsgxsrecognitems.h \
|
|
rsitems/rsgxsupdateitems.h \
|
|
rsitems/rsserviceinfoitems.h \
|
|
|
|
HEADERS += services/autoproxy/p3i2pbob.h \
|
|
services/autoproxy/rsautoproxymonitor.h \
|
|
services/p3msgservice.h \
|
|
services/p3service.h \
|
|
services/p3statusservice.h \
|
|
services/p3banlist.h \
|
|
services/p3bwctrl.h \
|
|
services/p3discovery2.h \
|
|
services/p3heartbeat.h \
|
|
services/p3rtt.h \
|
|
services/p3serviceinfo.h \
|
|
|
|
HEADERS += turtle/p3turtle.h \
|
|
turtle/rsturtleitem.h \
|
|
turtle/turtletypes.h \
|
|
turtle/turtleclientservice.h
|
|
|
|
HEADERS += util/folderiterator.h \
|
|
util/rsdebug.h \
|
|
util/rsmemory.h \
|
|
util/smallobject.h \
|
|
util/rsdir.h \
|
|
util/argstream.h \
|
|
util/rsdiscspace.h \
|
|
util/rsnet.h \
|
|
util/extaddrfinder.h \
|
|
util/dnsresolver.h \
|
|
util/radix32.h \
|
|
util/radix64.h \
|
|
util/rsinitedptr.h \
|
|
util/rsprint.h \
|
|
util/rsstring.h \
|
|
util/rsstd.h \
|
|
util/rsthreads.h \
|
|
util/rswin.h \
|
|
util/rsrandom.h \
|
|
util/rsmemcache.h \
|
|
util/rstickevent.h \
|
|
util/rsrecogn.h \
|
|
util/rstime.h \
|
|
util/stacktrace.h \
|
|
util/rsdeprecate.h \
|
|
util/cxx11retrocompat.h \
|
|
util/rsurl.h
|
|
|
|
SOURCES += ft/ftchunkmap.cc \
|
|
ft/ftcontroller.cc \
|
|
ft/ftdatamultiplex.cc \
|
|
ft/ftextralist.cc \
|
|
ft/ftfilecreator.cc \
|
|
ft/ftfileprovider.cc \
|
|
ft/ftfilesearch.cc \
|
|
ft/ftserver.cc \
|
|
ft/fttransfermodule.cc \
|
|
ft/ftturtlefiletransferitem.cc
|
|
|
|
SOURCES += crypto/chacha20.cpp \
|
|
crypto/hashstream.cc\
|
|
crypto/rsaes.cc \
|
|
crypto/rscrypto.cpp
|
|
|
|
SOURCES += chat/distantchat.cc \
|
|
chat/p3chatservice.cc \
|
|
chat/distributedchat.cc \
|
|
chat/rschatitems.cc
|
|
|
|
SOURCES += pqi/authgpg.cc \
|
|
pqi/authssl.cc \
|
|
pgp/pgphandler.cc \
|
|
pgp/pgpkeyutil.cc \
|
|
pgp/rscertificate.cc \
|
|
pgp/pgpauxutils.cc \
|
|
pqi/p3cfgmgr.cc \
|
|
pqi/p3peermgr.cc \
|
|
pqi/p3linkmgr.cc \
|
|
pqi/p3netmgr.cc \
|
|
pqi/p3notify.cc \
|
|
pqi/pqiqos.cc \
|
|
pqi/pqibin.cc \
|
|
pqi/pqihandler.cc \
|
|
pqi/p3historymgr.cc \
|
|
pqi/pqiipset.cc \
|
|
pqi/pqiloopback.cc \
|
|
pqi/pqimonitor.cc \
|
|
pqi/pqinetwork.cc \
|
|
pqi/pqiperson.cc \
|
|
pqi/pqipersongrp.cc \
|
|
pqi/pqiservice.cc \
|
|
pqi/pqissl.cc \
|
|
pqi/pqissllistener.cc \
|
|
pqi/pqisslpersongrp.cc \
|
|
pqi/pqissli2pbob.cpp \
|
|
pqi/pqisslproxy.cc \
|
|
pqi/pqistore.cc \
|
|
pqi/pqistreamer.cc \
|
|
pqi/pqithreadstreamer.cc \
|
|
pqi/pqiqosstreamer.cc \
|
|
pqi/sslfns.cc \
|
|
pqi/pqinetstatebox.cc \
|
|
pqi/p3servicecontrol.cc \
|
|
|
|
# pqi/p3dhtmgr.cc \
|
|
|
|
SOURCES += rsserver/p3face-config.cc \
|
|
rsserver/p3face-server.cc \
|
|
rsserver/p3face-info.cc \
|
|
rsserver/p3history.cc \
|
|
rsserver/p3msgs.cc \
|
|
rsserver/p3peers.cc \
|
|
rsserver/p3status.cc \
|
|
rsserver/rsinit.cc \
|
|
rsserver/rsaccounts.cc \
|
|
rsserver/rsloginhandler.cc \
|
|
rsserver/rstypes.cc \
|
|
rsserver/p3serverconfig.cc
|
|
|
|
SOURCES += grouter/p3grouter.cc \
|
|
grouter/grouteritems.cc \
|
|
grouter/groutermatrix.cc
|
|
|
|
SOURCES += plugins/pluginmanager.cc \
|
|
plugins/dlfcn_win32.cc
|
|
|
|
SOURCES += serialiser/rsbaseserial.cc \
|
|
rsitems/rsfiletransferitems.cc \
|
|
rsitems/rsconfigitems.cc \
|
|
rsitems/rshistoryitems.cc \
|
|
rsitems/rsmsgitems.cc \
|
|
serialiser/rsserial.cc \
|
|
serialiser/rstlvaddrs.cc \
|
|
serialiser/rstlvbase.cc \
|
|
serialiser/rstlvitem.cc \
|
|
serialiser/rstlvidset.cc \
|
|
serialiser/rstlvfileitem.cc \
|
|
serialiser/rstlvimage.cc \
|
|
serialiser/rstlvstring.cc \
|
|
serialiser/rstlvbinary.cc \
|
|
serialiser/rstlvkeys.cc \
|
|
serialiser/rstlvkeyvalue.cc \
|
|
serialiser/rstlvgenericparam.cc \
|
|
serialiser/rstlvbanlist.cc \
|
|
rsitems/rsbanlistitems.cc \
|
|
rsitems/rsbwctrlitems.cc \
|
|
rsitems/rsdiscovery2items.cc \
|
|
rsitems/rsrttitems.cc \
|
|
rsitems/rsgxsrecognitems.cc \
|
|
rsitems/rsgxsupdateitems.cc \
|
|
rsitems/rsserviceinfoitems.cc \
|
|
|
|
|
|
SOURCES += services/autoproxy/rsautoproxymonitor.cc \
|
|
services/autoproxy/p3i2pbob.cc \
|
|
services/p3msgservice.cc \
|
|
services/p3service.cc \
|
|
services/p3statusservice.cc \
|
|
services/p3banlist.cc \
|
|
services/p3bwctrl.cc \
|
|
services/p3discovery2.cc \
|
|
services/p3heartbeat.cc \
|
|
services/p3rtt.cc \
|
|
services/p3serviceinfo.cc \
|
|
|
|
SOURCES += turtle/p3turtle.cc \
|
|
turtle/rsturtleitem.cc
|
|
# turtle/turtlerouting.cc \
|
|
# turtle/turtlesearch.cc \
|
|
# turtle/turtletunnels.cc
|
|
|
|
|
|
SOURCES += util/folderiterator.cc \
|
|
util/rsdebug.cc \
|
|
util/rsexpr.cc \
|
|
util/smallobject.cc \
|
|
util/rsdir.cc \
|
|
util/rsmemory.cc \
|
|
util/rsdiscspace.cc \
|
|
util/rsnet.cc \
|
|
util/rsnet_ss.cc \
|
|
util/extaddrfinder.cc \
|
|
util/dnsresolver.cc \
|
|
util/rsprint.cc \
|
|
util/rsstring.cc \
|
|
util/rsthreads.cc \
|
|
util/rsrandom.cc \
|
|
util/rstickevent.cc \
|
|
util/rsrecogn.cc \
|
|
util/rstime.cc \
|
|
util/rsurl.cc
|
|
|
|
## Added for retrocompatibility remove ASAP
|
|
isEmpty(RS_UPNP_LIB) {
|
|
upnp_miniupnpc:RS_UPNP_LIB=miniupnpc
|
|
upnp_libupnp:RS_UPNP_LIB="upnp ixml threadutil"
|
|
}
|
|
|
|
equals(RS_UPNP_LIB, miniupnpc) {
|
|
HEADERS += upnp/upnputil.h upnp/upnphandler_miniupnp.h
|
|
SOURCES += upnp/upnputil.c upnp/upnphandler_miniupnp.cc
|
|
} else {
|
|
HEADERS += upnp/UPnPBase.h upnp/upnphandler_linux.h
|
|
SOURCES += upnp/UPnPBase.cpp upnp/upnphandler_linux.cc
|
|
DEFINES *= RS_USE_LIBUPNP
|
|
}
|
|
|
|
|
|
|
|
zeroconf {
|
|
|
|
HEADERS += zeroconf/p3zeroconf.h \
|
|
|
|
SOURCES += zeroconf/p3zeroconf.cc \
|
|
|
|
# Disable Zeroconf (we still need the code for zcnatassist
|
|
# DEFINES *= RS_ENABLE_ZEROCONF
|
|
|
|
}
|
|
|
|
# This is seperated from the above for windows/linux platforms.
|
|
# It is acceptable to build in zeroconf and have it not work,
|
|
# but unacceptable to rely on Apple's libraries for Upnp when we have alternatives. '
|
|
|
|
zcnatassist {
|
|
|
|
HEADERS += zeroconf/p3zcnatassist.h \
|
|
|
|
SOURCES += zeroconf/p3zcnatassist.cc \
|
|
|
|
DEFINES *= RS_ENABLE_ZCNATASSIST
|
|
|
|
}
|
|
|
|
# new gxs cache system
|
|
# this should be disabled for releases until further notice.
|
|
|
|
DEFINES *= SQLITE_HAS_CODEC
|
|
DEFINES *= GXS_ENABLE_SYNC_MSGS
|
|
|
|
HEADERS += rsitems/rsnxsitems.h \
|
|
rsitems/rsgxsitems.h \
|
|
retroshare/rstokenservice.h \
|
|
retroshare/rsgxsservice.h \
|
|
retroshare/rsgxsflags.h \
|
|
retroshare/rsgxsifacetypes.h \
|
|
retroshare/rsgxsiface.h \
|
|
retroshare/rsgxscommon.h \
|
|
retroshare/rsgxsifacehelper.h \
|
|
util/retrodb.h \
|
|
util/rsdbbind.h \
|
|
util/contentvalue.h \
|
|
gxs/rsgxsutil.h \
|
|
gxs/gxssecurity.h \
|
|
gxs/rsgds.h \
|
|
gxs/rsgxs.h \
|
|
gxs/rsdataservice.h \
|
|
gxs/rsgxsnetservice.h \
|
|
gxs/rsgxsnettunnel.h \
|
|
gxs/rsgenexchange.h \
|
|
gxs/rsnxs.h \
|
|
gxs/rsnxsobserver.h \
|
|
gxs/rsgxsdata.h \
|
|
gxs/rsgxsdataaccess.h \
|
|
gxs/gxstokenqueue.h \
|
|
gxs/rsgxsnetutils.h \
|
|
gxs/rsgxsrequesttypes.h
|
|
|
|
|
|
SOURCES += rsitems/rsnxsitems.cc \
|
|
rsitems/rsgxsitems.cc \
|
|
util/retrodb.cc \
|
|
util/contentvalue.cc \
|
|
util/rsdbbind.cc \
|
|
gxs/gxssecurity.cc \
|
|
gxs/rsgxsdataaccess.cc \
|
|
gxs/rsdataservice.cc \
|
|
gxs/rsgenexchange.cc \
|
|
gxs/rsgxsnetservice.cc \
|
|
gxs/rsgxsnettunnel.cc \
|
|
gxs/rsgxsdata.cc \
|
|
gxs/gxstokenqueue.cc \
|
|
gxs/rsgxsnetutils.cc \
|
|
gxs/rsgxsutil.cc \
|
|
gxs/rsgxsrequesttypes.cc
|
|
|
|
# gxs tunnels
|
|
HEADERS += gxstunnel/p3gxstunnel.h \
|
|
gxstunnel/rsgxstunnelitems.h \
|
|
retroshare/rsgxstunnel.h
|
|
|
|
SOURCES += gxstunnel/p3gxstunnel.cc \
|
|
gxstunnel/rsgxstunnelitems.cc
|
|
|
|
# new serialization code
|
|
HEADERS += serialiser/rsserializable.h \
|
|
serialiser/rsserializer.h \
|
|
serialiser/rstypeserializer.h \
|
|
util/rsjson.h
|
|
|
|
SOURCES += serialiser/rsserializer.cc \
|
|
serialiser/rstypeserializer.cc \
|
|
util/rsjson.cc
|
|
|
|
# Identity Service
|
|
HEADERS += retroshare/rsidentity.h \
|
|
gxs/rsgixs.h \
|
|
services/p3idservice.h \
|
|
rsitems/rsgxsiditems.h \
|
|
services/p3gxsreputation.h \
|
|
rsitems/rsgxsreputationitems.h \
|
|
|
|
SOURCES += services/p3idservice.cc \
|
|
rsitems/rsgxsiditems.cc \
|
|
services/p3gxsreputation.cc \
|
|
rsitems/rsgxsreputationitems.cc \
|
|
|
|
# GxsCircles Service
|
|
HEADERS += services/p3gxscircles.h \
|
|
rsitems/rsgxscircleitems.h \
|
|
retroshare/rsgxscircles.h \
|
|
|
|
SOURCES += services/p3gxscircles.cc \
|
|
rsitems/rsgxscircleitems.cc \
|
|
|
|
# GxsForums Service
|
|
HEADERS += retroshare/rsgxsforums.h \
|
|
services/p3gxsforums.h \
|
|
rsitems/rsgxsforumitems.h
|
|
|
|
SOURCES += services/p3gxsforums.cc \
|
|
rsitems/rsgxsforumitems.cc \
|
|
|
|
# GxsChannels Service
|
|
HEADERS += retroshare/rsgxschannels.h \
|
|
services/p3gxschannels.h \
|
|
services/p3gxscommon.h \
|
|
rsitems/rsgxscommentitems.h \
|
|
rsitems/rsgxschannelitems.h \
|
|
|
|
SOURCES += services/p3gxschannels.cc \
|
|
services/p3gxscommon.cc \
|
|
rsitems/rsgxscommentitems.cc \
|
|
rsitems/rsgxschannelitems.cc \
|
|
|
|
wikipoos {
|
|
# Wiki Service
|
|
HEADERS += retroshare/rswiki.h \
|
|
services/p3wiki.h \
|
|
rsitems/rswikiitems.h
|
|
|
|
SOURCES += services/p3wiki.cc \
|
|
rsitems/rswikiitems.cc \
|
|
}
|
|
|
|
gxsthewire {
|
|
# Wire Service
|
|
HEADERS += retroshare/rswire.h \
|
|
services/p3wire.h \
|
|
rsitems/rswireitems.h
|
|
|
|
SOURCES += services/p3wire.cc \
|
|
rsitems/rswireitems.cc \
|
|
}
|
|
|
|
# Posted Service
|
|
HEADERS += services/p3postbase.h \
|
|
services/p3posted.h \
|
|
retroshare/rsposted.h \
|
|
rsitems/rsposteditems.h
|
|
|
|
SOURCES += services/p3postbase.cc \
|
|
services/p3posted.cc \
|
|
rsitems/rsposteditems.cc
|
|
|
|
gxsphotoshare {
|
|
#Photo Service
|
|
HEADERS += services/p3photoservice.h \
|
|
retroshare/rsphoto.h \
|
|
rsitems/rsphotoitems.h \
|
|
|
|
SOURCES += services/p3photoservice.cc \
|
|
rsitems/rsphotoitems.cc \
|
|
}
|
|
|
|
rs_gxs_trans {
|
|
HEADERS += gxstrans/p3gxstransitems.h gxstrans/p3gxstrans.h
|
|
SOURCES += gxstrans/p3gxstransitems.cc gxstrans/p3gxstrans.cc
|
|
}
|
|
|
|
rs_jsonapi {
|
|
JSONAPI_GENERATOR_SRC=$$clean_path($${RS_SRC_PATH}/jsonapi-generator/src/)
|
|
JSONAPI_GENERATOR_OUT=$$clean_path($${RS_BUILD_PATH}/jsonapi-generator/src/)
|
|
isEmpty(JSONAPI_GENERATOR_EXE) {
|
|
win32 {
|
|
CONFIG(release, debug|release) {
|
|
JSONAPI_GENERATOR_EXE=$$clean_path($${JSONAPI_GENERATOR_OUT}/release/jsonapi-generator.exe)
|
|
}
|
|
CONFIG(debug, debug|release) {
|
|
JSONAPI_GENERATOR_EXE=$$clean_path($${JSONAPI_GENERATOR_OUT}/debug/jsonapi-generator.exe)
|
|
}
|
|
} else {
|
|
JSONAPI_GENERATOR_EXE=$$clean_path($${JSONAPI_GENERATOR_OUT}/jsonapi-generator)
|
|
}
|
|
}
|
|
|
|
DOXIGEN_INPUT_DIRECTORY=$$clean_path($${PWD})
|
|
DOXIGEN_CONFIG_SRC=$$clean_path($${RS_SRC_PATH}/jsonapi-generator/src/jsonapi-generator-doxygen.conf)
|
|
DOXIGEN_CONFIG_OUT=$$clean_path($${JSONAPI_GENERATOR_OUT}/jsonapi-generator-doxygen-final.conf)
|
|
WRAPPERS_INCL_FILE=$$clean_path($${JSONAPI_GENERATOR_OUT}/jsonapi-includes.inl)
|
|
WRAPPERS_REG_FILE=$$clean_path($${JSONAPI_GENERATOR_OUT}/jsonapi-wrappers.inl)
|
|
|
|
no_rs_cross_compiling {
|
|
restbed.target = $$clean_path($${RESTBED_BUILD_PATH}/library/librestbed.a)
|
|
restbed.commands = \
|
|
cd $${RS_SRC_PATH};\
|
|
git submodule update --init --recommend-shallow supportlibs/restbed;\
|
|
cd $${RESTBED_SRC_PATH};\
|
|
git submodule update --init --recommend-shallow dependency/asio;\
|
|
git submodule update --init --recommend-shallow dependency/catch;\
|
|
git submodule update --init --recommend-shallow dependency/kashmir;\
|
|
mkdir -p $${RESTBED_BUILD_PATH}; cd $${RESTBED_BUILD_PATH};\
|
|
cmake -DCMAKE_CXX_COMPILER=$$QMAKE_CXX -DBUILD_SSL=OFF \
|
|
-DCMAKE_INSTALL_PREFIX=. -B. -H$$shell_path($${RESTBED_SRC_PATH});\
|
|
make; make install
|
|
QMAKE_EXTRA_TARGETS += restbed
|
|
libretroshare.depends += restbed
|
|
PRE_TARGETDEPS *= $${restbed.target}
|
|
}
|
|
|
|
PRE_TARGETDEPS *= $${JSONAPI_GENERATOR_EXE}
|
|
INCLUDEPATH *= $${JSONAPI_GENERATOR_OUT}
|
|
GENERATED_HEADERS += $${WRAPPERS_INCL_FILE}
|
|
|
|
jsonwrappersincl.target = $${WRAPPERS_INCL_FILE}
|
|
jsonwrappersincl.commands = \
|
|
mkdir -p $${JSONAPI_GENERATOR_OUT} && \
|
|
cp $${DOXIGEN_CONFIG_SRC} $${DOXIGEN_CONFIG_OUT} && \
|
|
echo OUTPUT_DIRECTORY=$$shell_path($${JSONAPI_GENERATOR_OUT}) >> $${DOXIGEN_CONFIG_OUT} && \
|
|
echo INPUT=$$shell_path($${DOXIGEN_INPUT_DIRECTORY}) >> $${DOXIGEN_CONFIG_OUT} && \
|
|
doxygen $${DOXIGEN_CONFIG_OUT} && \
|
|
$${JSONAPI_GENERATOR_EXE} $${JSONAPI_GENERATOR_SRC} $${JSONAPI_GENERATOR_OUT};
|
|
QMAKE_EXTRA_TARGETS += jsonwrappersincl
|
|
libretroshare.depends += jsonwrappersincl
|
|
PRE_TARGETDEPS *= $${WRAPPERS_INCL_FILE}
|
|
|
|
jsonwrappersreg.target = $${WRAPPERS_REG_FILE}
|
|
jsonwrappersreg.commands = touch $${WRAPPERS_REG_FILE}
|
|
jsonwrappersreg.depends = jsonwrappersincl
|
|
QMAKE_EXTRA_TARGETS += jsonwrappersreg
|
|
libretroshare.depends += jsonwrappersreg
|
|
PRE_TARGETDEPS *= $${WRAPPERS_REG_FILE}
|
|
|
|
# Force recalculation of libretroshare dependencies see https://stackoverflow.com/a/47884045
|
|
QMAKE_EXTRA_TARGETS += libretroshare
|
|
|
|
HEADERS += jsonapi/jsonapi.h jsonapi/jsonapiitems.h
|
|
SOURCES += jsonapi/jsonapi.cpp
|
|
}
|
|
|
|
rs_deep_search {
|
|
HEADERS += deep_search/deep_search.h
|
|
}
|
|
|
|
###########################################################################################################
|
|
# OLD CONFIG OPTIONS.
|
|
# Not used much - but might be useful one day.
|
|
#
|
|
|
|
testnetwork {
|
|
# used in rsserver/rsinit.cc Enabled Port Restrictions, and makes Proxy Port next to Dht Port.
|
|
DEFINES *= LOCALNET_TESTING
|
|
|
|
# used in tcponudp/udprelay.cc Debugging Info for Relays.
|
|
DEFINES *= DEBUG_UDP_RELAY
|
|
|
|
# used in tcponudp/udpstunner.[h | cc] enables local stun (careful - modifies class variables).
|
|
DEFINES *= UDPSTUN_ALLOW_LOCALNET
|
|
|
|
# used in pqi/p3linkmgr.cc prints out extra debug.
|
|
DEFINES *= LINKMGR_DEBUG_LINKTYPE
|
|
|
|
# used in dht/connectstatebox to reduce connection times and display debug.
|
|
# DEFINES *= TESTING_PERIODS
|
|
# DEFINES *= DEBUG_CONNECTBOX
|
|
}
|
|
|
|
|
|
test_bitdht {
|
|
# DISABLE TCP CONNECTIONS...
|
|
DEFINES *= P3CONNMGR_NO_TCP_CONNECTIONS
|
|
|
|
# NO AUTO CONNECTIONS??? FOR TESTING DHT STATUS.
|
|
DEFINES *= P3CONNMGR_NO_AUTO_CONNECTION
|
|
|
|
# ENABLED UDP NOW.
|
|
}
|
|
|
|
################################# Android #####################################
|
|
|
|
android-* {
|
|
## TODO: This probably disable largefile support and maybe is not necessary with
|
|
## __ANDROID_API__ >= 24 hence should be made conditional or moved to a
|
|
## compatibility header
|
|
DEFINES *= "fopen64=fopen"
|
|
DEFINES *= "fseeko64=fseeko"
|
|
DEFINES *= "ftello64=ftello"
|
|
|
|
## Static library are very susceptible to order in command line
|
|
sLibs = bz2 $$RS_UPNP_LIB $$RS_SQL_LIB ssl crypto
|
|
|
|
LIBS += $$linkStaticLibs(sLibs)
|
|
PRE_TARGETDEPS += $$pretargetStaticLibs(sLibs)
|
|
|
|
HEADERS += util/androiddebug.h
|
|
}
|
|
|