RetroShare/libretroshare/src/libretroshare.pro

1095 lines
32 KiB
Prolog
Raw Normal View History

# SPDX-FileCopyrightText: (C) 2004-2019 Retroshare Team <contact@retroshare.cc>
# SPDX-License-Identifier: CC0-1.0
!include("../../retroshare.pri"): error("Could not include file ../../retroshare.pri")
TEMPLATE = lib
libretroshare_shared {
CONFIG += shared
} else {
CONFIG += staticlib
}
CONFIG -= qt
TARGET = retroshare
TARGET_PRL = libretroshare
DESTDIR = lib
!include("use_libretroshare.pri"):error("Including")
# treat warnings as error for better removing
#QMAKE_CFLAGS += -Werror
#QMAKE_CXXFLAGS += -Werror
## Uncomment to enable Unfinished Services.
#CONFIG += wikipoos
#CONFIG += gxsthewire
#CONFIG += gxsphotoshare
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
}
2016-07-20 15:28:55 -04:00
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_sharing_defaults.h
2016-07-20 15:28:55 -04:00
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
2016-07-20 15:28:55 -04:00
}
dsdv {
DEFINES *= SERVICES_DSDV
2017-04-26 08:31:15 -04:00
HEADERS += unused/p3dsdv.h \
unused/rstlvdsdv.h \
unused/rsdsdvitems.h \
unused/rsdsdv.h
2017-04-26 08:31:15 -04:00
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 \
2018-11-10 11:40:34 -05:00
tcponudp/rsudpstack.h \
pqi/pqissludp.h \
SOURCES += tcponudp/udppeer.cc \
tcponudp/tcppacket.cc \
tcponudp/tcpstream.cc \
tcponudp/tou.cc \
tcponudp/bss_tou.cc \
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/rsgossipdiscovery \
retroshare/rsevents.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
rs_webui {
PUBLIC_HEADERS += retroshare/rswebui.h
SOURCES += jsonapi/p3webui.cc
HEADERS += jsonapi/p3webui.h
}
HEADERS += plugins/pluginmanager.h \
plugins/dlfcn_win32.h \
2020-10-25 07:50:55 -04:00
rsitems/rspluginitems.h \
2020-05-08 10:10:17 -04:00
util/i2pcommon.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
}
}
contains(RS_UPNP_LIB, threadutil) { # ensure we don't break libpnp-1.8.x
# Check if the systems libupnp-1.6.x has been Debian-patched
!system(grep -E 'char[[:space:]]+PublisherUrl' /usr/include/upnp/upnp.h >/dev/null 2>&1) {
# Patched libupnp or new unreleased version
DEFINES *= PATCHED_LIBUPNP
}
}
PKGCONFIG *= libssl
equals(RS_UPNP_LIB, "upnp ixml threadutil"):PKGCONFIG *= 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
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 ##########################################
2020-05-29 20:16:59 -04:00
win32-g++|win32-clang-g++ {
QMAKE_CC = $${QMAKE_CXX}
OBJECTS_DIR = temp/obj
MOC_DIR = temp/moc
!libretroshare_shared: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.
2016-07-16 17:10:00 -04:00
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
2016-07-16 17:10:00 -04:00
INCLUDEPATH += ../../../.
# We need a explicit path here, to force using the home version of sqlite3 that really encrypts the database.
2015-11-20 11:10:59 -05:00
LIBS += /usr/local/lib/libsqlcipher.a
#LIBS += -lsqlite3
2017-08-12 05:49:33 -04:00
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
}
################################# 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
}
2015-10-20 12:41:40 -04:00
################################# 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
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
2020-05-12 13:52:49 -04:00
################################### HEADERS & SOURCES #############################
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 \
2018-07-19 17:22:24 -04:00
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/pqisslproxy.h \
pqi/pqistore.h \
pqi/pqistreamer.h \
pqi/pqithreadstreamer.h \
pqi/pqiqosstreamer.h \
pqi/sslfns.h \
pqi/pqinetstatebox.h \
pqi/p3servicecontrol.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 \
2017-04-27 15:24:27 -04:00
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 \
gossipdiscovery/gossipdiscoveryitems.h \
rsitems/rsheartbeatitems.h \
2017-04-24 05:06:51 -04:00
rsitems/rsrttitems.h \
2017-04-28 17:32:47 -04:00
rsitems/rsgxsrecognitems.h \
2017-04-28 10:30:33 -04:00
rsitems/rsgxsupdateitems.h \
2017-04-28 11:47:41 -04:00
rsitems/rsserviceinfoitems.h \
2020-11-21 09:00:40 -05:00
HEADERS += \
services/rseventsservice.h \
services/autoproxy/rsautoproxymonitor.h \
services/p3msgservice.h \
services/p3service.h \
services/p3statusservice.h \
services/p3banlist.h \
services/p3bwctrl.h \
gossipdiscovery/p3gossipdiscovery.h \
services/p3heartbeat.h \
services/p3rtt.h \
2018-05-29 15:54:27 -04:00
services/p3serviceinfo.h \
HEADERS += turtle/p3turtle.h \
turtle/rsturtleitem.h \
turtle/turtletypes.h \
turtle/turtleclientservice.h
HEADERS += util/folderiterator.h \
util/rsdebug.h \
util/rsdebuglevel0.h \
util/rsdebuglevel1.h \
util/rsdebuglevel2.h \
util/rsdebuglevel3.h \
util/rsdebuglevel4.h \
util/rskbdinput.h \
util/rsmemory.h \
util/smallobject.h \
util/rsdir.h \
2018-11-10 11:40:34 -05:00
util/argstream.h \
util/rsdiscspace.h \
util/rsnet.h \
util/extaddrfinder.h \
util/dnsresolver.h \
util/radix32.h \
util/radix64.h \
util/rsbase64.h \
util/rsendian.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/cxx14retrocompat.h \
util/cxx17retrocompat.h \
util/rsurl.h \
util/rserrno.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 \
2020-05-08 10:10:17 -04:00
ft/ftturtlefiletransferitem.cc \
util/i2pcommon.cpp
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/pqisslproxy.cc \
pqi/pqistore.cc \
pqi/pqistreamer.cc \
pqi/pqithreadstreamer.cc \
pqi/pqiqosstreamer.cc \
pqi/sslfns.cc \
pqi/pqinetstatebox.cc \
pqi/p3servicecontrol.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/p3serverconfig.cc
SOURCES += grouter/p3grouter.cc \
grouter/grouteritems.cc \
grouter/groutermatrix.cc
SOURCES += plugins/pluginmanager.cc \
2017-04-28 10:44:04 -04:00
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 \
gossipdiscovery/gossipdiscoveryitems.cc \
2017-04-24 05:06:51 -04:00
rsitems/rsrttitems.cc \
2017-04-28 17:32:47 -04:00
rsitems/rsgxsrecognitems.cc \
2017-04-28 10:30:33 -04:00
rsitems/rsgxsupdateitems.cc \
2017-04-28 11:47:41 -04:00
rsitems/rsserviceinfoitems.cc \
SOURCES += services/autoproxy/rsautoproxymonitor.cc \
services/rseventsservice.cc \
services/p3msgservice.cc \
services/p3service.cc \
services/p3statusservice.cc \
services/p3banlist.cc \
services/p3bwctrl.cc \
gossipdiscovery/p3gossipdiscovery.cc \
services/p3heartbeat.cc \
services/p3rtt.cc \
services/p3serviceinfo.cc \
SOURCES += turtle/p3turtle.cc \
turtle/rsturtleitem.cc
SOURCES += util/folderiterator.cc \
util/rsdebug.cc \
util/rskbdinput.cc \
2016-09-13 06:14:16 -04:00
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 \
util/rsbase64.cc \
util/rserrno.cc
equals(RS_UPNP_LIB, miniupnpc) {
2019-04-24 17:36:40 -04:00
HEADERS += rs_upnp/upnputil.h rs_upnp/upnphandler_miniupnp.h
SOURCES += rs_upnp/upnputil.cc rs_upnp/upnphandler_miniupnp.cc
}
2019-04-24 17:36:40 -04:00
contains(RS_UPNP_LIB, upnp) {
HEADERS += rs_upnp/upnp18_retrocompat.h
HEADERS += rs_upnp/UPnPBase.h rs_upnp/upnphandler_libupnp.h
SOURCES += rs_upnp/UPnPBase.cpp rs_upnp/upnphandler_libupnp.cc
}
# new gxs cache system
# this should be disabled for releases until further notice.
DEFINES *= SQLITE_HAS_CODEC
DEFINES *= GXS_ENABLE_SYNC_MSGS
2017-04-27 08:21:46 -04:00
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/rsgxsnotify.h \
gxs/gxssecurity.h \
gxs/rsgds.h \
gxs/rsgxs.h \
gxs/rsdataservice.h \
gxs/rsgxsnetservice.h \
2017-12-20 16:14:58 -05:00
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
2017-04-27 08:21:46 -04:00
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
2017-04-02 08:48:17 -04:00
# new serialization code
HEADERS += serialiser/rsserializable.h \
serialiser/rsserializer.h \
serialiser/rstypeserializer.h \
util/rsjson.h
2017-04-02 08:48:17 -04:00
SOURCES += serialiser/rsserializable.cc \
serialiser/rsserializer.cc \
serialiser/rstypeserializer.cc \
util/rsjson.cc
2017-04-02 08:48:17 -04:00
# Identity Service
HEADERS += retroshare/rsidentity.h \
retroshare/rsreputations.h \
gxs/rsgixs.h \
services/p3idservice.h \
rsitems/rsgxsiditems.h \
services/p3gxsreputation.h \
2017-04-22 15:36:39 -04:00
rsitems/rsgxsreputationitems.h \
SOURCES += services/p3idservice.cc \
rsitems/rsgxsiditems.cc \
services/p3gxsreputation.cc \
2017-04-22 15:36:39 -04:00
rsitems/rsgxsreputationitems.cc \
# GxsCircles Service
HEADERS += services/p3gxscircles.h \
2017-04-26 14:59:59 -04:00
rsitems/rsgxscircleitems.h \
retroshare/rsgxscircles.h \
SOURCES += services/p3gxscircles.cc \
2017-04-26 14:59:59 -04:00
rsitems/rsgxscircleitems.cc \
# GxsForums Service
HEADERS += retroshare/rsgxsforums.h \
services/p3gxsforums.h \
2017-04-27 05:59:18 -04:00
rsitems/rsgxsforumitems.h
SOURCES += services/p3gxsforums.cc \
2017-04-27 05:59:18 -04:00
rsitems/rsgxsforumitems.cc \
# GxsChannels Service
HEADERS += retroshare/rsgxschannels.h \
services/p3gxschannels.h \
services/p3gxscommon.h \
rsitems/rsgxscommentitems.h \
2017-04-26 14:15:54 -04:00
rsitems/rsgxschannelitems.h \
SOURCES += services/p3gxschannels.cc \
services/p3gxscommon.cc \
rsitems/rsgxscommentitems.cc \
2017-04-26 14:15:54 -04:00
rsitems/rsgxschannelitems.cc \
wikipoos {
DEFINES *= RS_USE_WIKI
# Wiki Service
HEADERS += retroshare/rswiki.h \
services/p3wiki.h \
2017-04-29 15:50:55 -04:00
rsitems/rswikiitems.h
SOURCES += services/p3wiki.cc \
2017-04-29 15:50:55 -04:00
rsitems/rswikiitems.cc \
}
gxsthewire {
DEFINES *= RS_USE_WIRE
# Wire Service
HEADERS += retroshare/rswire.h \
services/p3wire.h \
2017-04-29 15:50:55 -04:00
rsitems/rswireitems.h
SOURCES += services/p3wire.cc \
2017-04-29 15:50:55 -04:00
rsitems/rswireitems.cc \
}
# Posted Service
HEADERS += services/p3postbase.h \
services/p3posted.h \
retroshare/rsposted.h \
2017-04-27 08:44:41 -04:00
rsitems/rsposteditems.h
SOURCES += services/p3postbase.cc \
services/p3posted.cc \
2017-04-27 08:44:41 -04:00
rsitems/rsposteditems.cc
gxsphotoshare {
DEFINES *= RS_USE_PHOTO
#Photo Service
HEADERS += services/p3photoservice.h \
retroshare/rsphoto.h \
2017-04-28 12:51:35 -04:00
rsitems/rsphotoitems.h \
SOURCES += services/p3photoservice.cc \
2017-04-28 12:51:35 -04:00
rsitems/rsphotoitems.cc \
}
rs_gxs_trans {
HEADERS += gxstrans/p3gxstransitems.h gxstrans/p3gxstrans.h
SOURCES += gxstrans/p3gxstransitems.cc gxstrans/p3gxstrans.cc
}
rs_jsonapi {
2018-09-20 16:24:05 -04:00
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)
2018-09-20 16:24:05 -04:00
}
}
2018-09-20 16:24:05 -04:00
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 {
DUMMYRESTBEDINPUT = FORCE
CMAKE_GENERATOR_OVERRIDE=""
2020-08-10 16:26:02 -04:00
win32-g++|win32-clang-g++ {
isEmpty(QMAKE_SH) {
CMAKE_GENERATOR_OVERRIDE="-G \"MinGW Makefiles\""
} else {
CMAKE_GENERATOR_OVERRIDE="-G \"MSYS Makefiles\""
}
}
genrestbedlib.name = Generating librestbed.
genrestbedlib.input = DUMMYRESTBEDINPUT
genrestbedlib.output = $$clean_path($${RESTBED_BUILD_PATH}/librestbed.a)
genrestbedlib.CONFIG += target_predeps combine
genrestbedlib.variable_out = PRE_TARGETDEPS
2020-08-10 16:26:02 -04:00
win32-g++:isEmpty(QMAKE_SH) {
genrestbedlib.commands = \
cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/restbed || cd . $$escape_expand(\\n\\t) \
cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/asio || cd . $$escape_expand(\\n\\t) \
cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/catch || cd . $$escape_expand(\\n\\t )\
cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/kashmir || cd . $$escape_expand(\\n\\t) \
2020-08-10 16:26:02 -04:00
$(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t)
} else {
genrestbedlib.commands = \
cd $${RS_SRC_PATH} && ( \
git submodule update --init supportlibs/restbed ; \
cd $${RESTBED_SRC_PATH} ; \
git submodule update --init dependency/asio ; \
git submodule update --init dependency/catch ; \
git submodule update --init dependency/kashmir ; \
true ) && \
2020-08-10 16:26:02 -04:00
mkdir -p $${RESTBED_BUILD_PATH} &&
}
genrestbedlib.commands += \
cd $$shell_path($${RESTBED_BUILD_PATH}) && \
cmake \
-DCMAKE_CXX_COMPILER=$$QMAKE_CXX \
2020-05-29 20:16:59 -04:00
\"-DCMAKE_CXX_FLAGS=$${QMAKE_CXXFLAGS}\" \
$${CMAKE_GENERATOR_OVERRIDE} -DBUILD_SSL=OFF \
-DCMAKE_INSTALL_PREFIX=. -B. \
-H$$shell_path($${RESTBED_SRC_PATH}) && \
$(MAKE)
QMAKE_EXTRA_COMPILERS += genrestbedlib
RESTBED_HEADER_FILE=$$clean_path($${RESTBED_BUILD_PATH}/include/restbed)
genrestbedheader.name = Generating restbed header.
genrestbedheader.input = genrestbedlib.output
genrestbedheader.output = $${RESTBED_HEADER_FILE}
2020-05-23 16:05:44 -04:00
genrestbedheader.CONFIG += target_predeps no_link
genrestbedheader.variable_out = HEADERS
2020-08-10 16:26:02 -04:00
genrestbedheader.commands = cd $$shell_path($${RESTBED_BUILD_PATH}) && $(MAKE) install
QMAKE_EXTRA_COMPILERS += genrestbedheader
}
INCLUDEPATH *= $${JSONAPI_GENERATOR_OUT}
2019-03-16 11:36:54 -04:00
DEPENDPATH *= $${JSONAPI_GENERATOR_OUT}
APIHEADERS = $$files($${RS_SRC_PATH}/libretroshare/src/retroshare/*.h)
2019-03-16 11:36:54 -04:00
#Make sure that the jsonapigenerator executable are ready
APIHEADERS += $${JSONAPI_GENERATOR_EXE}
genjsonapi.name = Generating jsonapi headers.
genjsonapi.input = APIHEADERS
2019-03-16 11:36:54 -04:00
genjsonapi.output = $${WRAPPERS_INCL_FILE} $${WRAPPERS_REG_FILE}
genjsonapi.clean = $${WRAPPERS_INCL_FILE} $${WRAPPERS_REG_FILE}
genjsonapi.CONFIG += target_predeps combine no_link
genjsonapi.variable_out = HEADERS
2020-08-10 16:26:02 -04:00
win32-g++:isEmpty(QMAKE_SH) {
genjsonapi.commands = \
$(CHK_DIR_EXISTS) $$shell_path($$JSONAPI_GENERATOR_OUT) $(MKDIR) $$shell_path($${JSONAPI_GENERATOR_OUT}) $$escape_expand(\\n\\t)
} else {
genjsonapi.commands = \
mkdir -p $${JSONAPI_GENERATOR_OUT} && \
cp $${DOXIGEN_CONFIG_SRC} $${DOXIGEN_CONFIG_OUT} && \
echo OUTPUT_DIRECTORY=$${JSONAPI_GENERATOR_OUT} >> $${DOXIGEN_CONFIG_OUT} && \
echo INPUT=$${DOXIGEN_INPUT_DIRECTORY} >> $${DOXIGEN_CONFIG_OUT} && \
doxygen $${DOXIGEN_CONFIG_OUT} &&
}
genjsonapi.commands += \
$${JSONAPI_GENERATOR_EXE} $${JSONAPI_GENERATOR_SRC} $${JSONAPI_GENERATOR_OUT}
QMAKE_EXTRA_COMPILERS += genjsonapi
# Force recalculation of libretroshare dependencies see https://stackoverflow.com/a/47884045
QMAKE_EXTRA_TARGETS += libretroshare
2019-11-27 12:44:10 -05:00
HEADERS += jsonapi/jsonapi.h jsonapi/jsonapiitems.h retroshare/rsjsonapi.h
SOURCES += jsonapi/jsonapi.cpp
}
rs_deep_channels_index {
HEADERS *= deep_search/commonutils.hpp
SOURCES *= deep_search/commonutils.cpp
HEADERS += deep_search/channelsindex.hpp
SOURCES += deep_search/channelsindex.cpp
}
rs_deep_files_index {
HEADERS *= deep_search/commonutils.hpp
SOURCES *= deep_search/commonutils.cpp
HEADERS += deep_search/filesindex.hpp
SOURCES += deep_search/filesindex.cpp
}
rs_deep_files_index_ogg {
HEADERS += deep_search/filesoggindexer.hpp
}
rs_deep_files_index_flac {
HEADERS += deep_search/filesflacindexer.hpp
}
rs_deep_files_index_taglib {
HEADERS += deep_search/filestaglibindexer.hpp
}
rs_broadcast_discovery {
HEADERS += retroshare/rsbroadcastdiscovery.h \
services/broadcastdiscoveryservice.h
SOURCES += services/broadcastdiscoveryservice.cc
no_rs_cross_compiling {
DUMMYQMAKECOMPILERINPUT = FORCE
CMAKE_GENERATOR_OVERRIDE=""
win32-g++|win32-clang-g++ {
isEmpty(QMAKE_SH) {
CMAKE_GENERATOR_OVERRIDE="-G \"MinGW Makefiles\""
} else {
CMAKE_GENERATOR_OVERRIDE="-G \"MSYS Makefiles\""
}
}
udpdiscoverycpplib.name = Generating libudp-discovery.a.
udpdiscoverycpplib.input = DUMMYQMAKECOMPILERINPUT
udpdiscoverycpplib.output = $$clean_path($${UDP_DISCOVERY_BUILD_PATH}/libudp-discovery.a)
udpdiscoverycpplib.CONFIG += target_predeps combine
udpdiscoverycpplib.variable_out = PRE_TARGETDEPS
win32-g++:isEmpty(QMAKE_SH) {
udpdiscoverycpplib.commands = \
cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/udp-discovery-cpp || cd . $$escape_expand(\\n\\t) \
$(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t)
} else {
udpdiscoverycpplib.commands = \
cd $${RS_SRC_PATH} && ( \
git submodule update --init supportlibs/udp-discovery-cpp || \
true ) && \
mkdir -p $${UDP_DISCOVERY_BUILD_PATH} &&
}
udpdiscoverycpplib.commands += \
cd $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) && \
cmake -DCMAKE_C_COMPILER=$$fixQmakeCC($$QMAKE_CC) \
-DCMAKE_CXX_COMPILER=$$QMAKE_CXX \
2020-05-29 20:16:59 -04:00
\"-DCMAKE_CXX_FLAGS=$${QMAKE_CXXFLAGS}\" \
$${CMAKE_GENERATOR_OVERRIDE} \
-DBUILD_EXAMPLE=OFF -DBUILD_TOOL=OFF \
-DCMAKE_INSTALL_PREFIX=. -B. \
-H$$shell_path($${UDP_DISCOVERY_SRC_PATH}) && \
$(MAKE)
QMAKE_EXTRA_COMPILERS += udpdiscoverycpplib
}
}
2020-10-25 07:50:55 -04:00
rs_sam3 {
SOURCES += \
services/autoproxy/p3i2psam3.cpp \
pqi/pqissli2psam3.cpp \
HEADERS += \
services/autoproxy/p3i2psam3.h \
pqi/pqissli2psam3.h \
}
rs_sam3_libsam3 {
DUMMYQMAKECOMPILERINPUT = FORCE
libsam3.name = Generating libsam3.
libsam3.input = DUMMYQMAKECOMPILERINPUT
libsam3.output = $$clean_path($${LIBSAM3_BUILD_PATH}/libsam3.a)
libsam3.CONFIG += target_predeps combine
libsam3.variable_out = PRE_TARGETDEPS
libsam3.commands = \
2020-11-27 14:07:51 -05:00
cd $${RS_SRC_PATH} && ( \
git submodule update --init supportlibs/libsam3 || \
true ) && \
mkdir -p $${UDP_DISCOVERY_BUILD_PATH} && \
2020-10-25 07:50:55 -04:00
cp -r $${LIBSAM3_SRC_PATH}/* $${LIBSAM3_BUILD_PATH} && \
cd $${LIBSAM3_BUILD_PATH} && \
$(MAKE) build
QMAKE_EXTRA_COMPILERS += libsam3
}
###########################################################################################################
# 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
}