2018-05-21 14:50:38 -04:00
################################################################################
# libretroshare . pro #
# Copyright ( C ) 2018 , Retroshare team < retroshare . team @ gmailcom > #
# #
# This program is free software : you can redistribute it and / or modify #
2018-05-28 16:03:39 -04:00
# it under the terms of the GNU Lesser General Public License as #
2018-05-21 14:50:38 -04:00
# 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 #
2018-05-28 16:03:39 -04:00
# GNU Lesser General Public License for more details . #
2018-05-21 14:50:38 -04:00
# #
2018-05-28 16:03:39 -04:00
# You should have received a copy of the GNU Lesser General Public License #
2018-05-21 14:50:38 -04:00
# along with this program . If not , see < https : // www . gnu . org / licenses />. #
################################################################################
! include ( "../../retroshare.pri" ) : error ( "Could not include file ../../retroshare.pri" )
2015-10-12 14:45:11 -04:00
TEMPLATE = lib
2017-12-31 11:27:21 -05:00
CONFIG += staticlib
2015-10-12 14:45:11 -04:00
CONFIG -= qt
TARGET = retroshare
TARGET_PRL = libretroshare
DESTDIR = lib
2018-04-15 07:41:52 -04:00
! include ( "use_libretroshare.pri" ) : error ( "Including" )
2017-12-31 11:27:21 -05:00
# the dht stunner is used to obtain RS external ip addr . when it is natted
2016-06-21 07:55:23 -04:00
# this system is unreliable and rs supports a newer and better one ( asking connected peers )
# CONFIG += useDhtStunner
2015-10-12 14:45:11 -04:00
# 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
}
2016-07-20 15:28:55 -04:00
CONFIG += file_lists
file_lists {
HEADERS *= file_sharing / p3filelists . h \
2016-08-20 10:23:11 -04:00
file_sharing / hash_cache . h \
file_sharing / filelist_io . h \
file_sharing / directory_storage . h \
file_sharing / directory_updater . h \
2016-09-01 15:04:48 -04:00
file_sharing / rsfilelistitems . h \
2016-09-03 07:29:23 -04:00
file_sharing / dir_hierarchy . h \
2017-10-17 18:04:04 -04:00
file_sharing / file_tree . h \
2016-09-01 15:04:48 -04:00
file_sharing / file_sharing_defaults . h
2016-07-20 15:28:55 -04:00
SOURCES *= file_sharing / p3filelists . cc \
2016-08-20 10:23:11 -04:00
file_sharing / hash_cache . cc \
file_sharing / filelist_io . cc \
file_sharing / directory_storage . cc \
file_sharing / directory_updater . cc \
2016-09-03 07:29:23 -04:00
file_sharing / dir_hierarchy . cc \
2017-10-17 18:04:04 -04:00
file_sharing / file_tree . cc \
2016-08-22 01:49:45 -04:00
file_sharing / rsfilelistitems . cc
2016-07-20 15:28:55 -04:00
}
2016-09-13 06:05:22 -04:00
2015-10-12 14:45:11 -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
2015-10-12 14:45:11 -04:00
2017-04-26 08:31:15 -04:00
SOURCES *= unused / rstlvdsdv . cc \
unused / rsdsdvitems . cc \
unused / p3dsdv . cc
2015-10-12 14:45:11 -04:00
}
bitdht {
HEADERS += dht / p3bitdht . h \
2016-06-21 07:55:23 -04:00
dht / connectstatebox . h
2015-10-12 14:45:11 -04:00
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 \
2017-12-31 11:27:21 -05:00
pqi / pqissludp . h \
2015-10-12 14:45:11 -04:00
SOURCES += tcponudp / udppeer . cc \
tcponudp / tcppacket . cc \
tcponudp / tcpstream . cc \
tcponudp / tou . cc \
tcponudp / bss_tou . c \
tcponudp / udprelay . cc \
2017-12-31 11:27:21 -05:00
pqi / pqissludp . cc \
2015-10-12 14:45:11 -04:00
2016-06-21 07:55:23 -04:00
useDhtStunner {
HEADERS += dht / stunaddrassist . h \
tcponudp / udpstunner . h
SOURCES += tcponudp / udpstunner . cc
DEFINES += RS_USE_DHT_STUNNER
}
2015-10-12 14:45:11 -04:00
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 \
2018-07-15 05:14:58 -04:00
retroshare / rsgxsdistsync . h
2015-10-12 14:45:11 -04:00
HEADERS += plugins / pluginmanager . h \
plugins / dlfcn_win32 . h \
2017-04-28 10:44:04 -04:00
rsitems / rspluginitems . h \
2015-10-12 14:45:11 -04:00
util / rsinitedptr . h
HEADERS += $ $ PUBLIC_HEADERS
################################# Linux ##########################################
linux -* {
2016-12-03 14:04:25 -05:00
CONFIG += link_pkgconfig
2015-10-12 14:45:11 -04:00
QMAKE_CXXFLAGS *= - Wall - D_FILE_OFFSET_BITS = 64
2016-05-27 12:07:28 -04:00
QMAKE_CC = $ $ { QMAKE_CXX }
2015-10-12 14:45:11 -04:00
2016-08-02 18:48:19 -04:00
no_sqlcipher {
2015-10-12 14:45:11 -04:00
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 {
2016-08-02 18:48:19 -04:00
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" )
2015-10-12 14:45:11 -04:00
}
} 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
2016-08-02 18:48:19 -04:00
CONFIG += upnp_libupnp
2015-10-12 14:45:11 -04:00
# 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
2018-04-15 07:41:52 -04:00
no_sqlcipher : PKGCONFIG *= sqlite3
LIBS *= - ldl
2015-10-12 14:45:11 -04:00
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 {
2018-09-15 12:21:02 -04:00
warning ( "Version detail script is deprecated." )
warning ( "Remove references to version_detail_bash_script from all of your build scripts!" )
2015-10-12 14:45:11 -04:00
}
#################### 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 ##########################################
2018-04-15 07:41:52 -04:00
win32 - g ++ {
2016-05-27 12:07:28 -04:00
QMAKE_CC = $ $ { QMAKE_CXX }
2015-10-12 14:45:11 -04:00
OBJECTS_DIR = temp / obj
MOC_DIR = temp / moc
2018-04-15 07:41:52 -04:00
DEFINES *= STATICLIB
2015-10-12 14:45:11 -04:00
# 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
2018-04-15 07:41:52 -04:00
wLibs = ws2_32 gdi32 uuid iphlpapi crypt32 ole32 winmm
LIBS += $ $ linkDynamicLibs ( wLibs )
2015-10-12 14:45:11 -04:00
}
################################# MacOSX ##########################################
mac {
2016-05-27 12:07:28 -04:00
QMAKE_CC = $ $ { QMAKE_CXX }
2015-10-12 14:45:11 -04:00
OBJECTS_DIR = temp / obj
MOC_DIR = temp / moc
# Beautiful Hack to fix 64 bit file access .
2016-07-16 17:10:00 -04:00
QMAKE_CXXFLAGS *= - Dfseeko64 = fseeko - Dftello64 = ftello - Dfopen64 = fopen - Dvstatfs64 = vstatfs
2015-10-12 14:45:11 -04:00
2015-12-21 11:25:02 -05:00
for ( lib , LIB_DIR ) : LIBS += - L "$$lib"
for ( bin , BIN_DIR ) : LIBS += - L "$$bin"
2015-10-12 14:45:11 -04:00
2015-12-21 11:25:02 -05:00
DEPENDPATH += . $ $ INC_DIR
INCLUDEPATH += . $ $ INC_DIR
2016-07-16 17:10:00 -04:00
INCLUDEPATH += . . /../../.
2015-10-12 14:45:11 -04:00
# 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
2015-10-12 14:45:11 -04:00
# LIBS += - lsqlite3
2017-08-12 05:49:33 -04:00
DEFINES *= PLUGIN_DIR =\ " \\\ " $ $ { PLUGIN_DIR } \\\ " \ "
DEFINES *= DATA_DIR =\ " \\\ " $ $ { DATA_DIR } \\\ " \ "
2015-10-12 14:45:11 -04:00
}
################################# 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
2016-08-02 18:48:19 -04:00
CONFIG += upnp_libupnp
2015-10-12 14:45:11 -04:00
}
################################# 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
}
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
CONFIG += upnp_libupnp
DESTDIR = lib
}
2015-10-12 14:45:11 -04:00
################################### 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
2017-01-05 17:07:59 -05:00
HEADERS += crypto / chacha20 . h \
2018-07-19 17:22:24 -04:00
crypto / rsaes . h \
2018-06-28 04:01:57 -04:00
crypto / hashstream . h \
crypto / rscrypto . h
2016-10-13 09:13:56 -04:00
2016-04-14 18:25:12 -04:00
HEADERS += directory_updater . h \
directory_list . h \
p3filelists . h
2015-10-12 14:45:11 -04:00
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 \
2018-11-10 08:45:05 -05:00
pqi / pqiservicemonitor . h \
2015-10-12 14:45:11 -04:00
pqi / pqissl . h \
pqi / pqissllistener . h \
pqi / pqisslpersongrp . h \
2016-10-09 08:32:52 -04:00
pqi / pqissli2pbob . h \
2015-10-12 14:45:11 -04:00
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 \
2018-11-10 08:45:05 -05:00
retroshare / rsgrouter . h \
2015-10-12 14:45:11 -04:00
grouter / grouteritems . h \
grouter / p3grouter . h \
grouter / rsgroutermatrix . h \
grouter / groutertypes . h \
2018-11-10 08:45:05 -05:00
grouter / grouterclientservice . h
2015-10-12 14:45:11 -04:00
2017-04-26 05:40:46 -04:00
HEADERS += rsitems / rsitem . h \
rsitems / itempriorities . h \
2015-10-12 14:45:11 -04:00
serialiser / rsbaseserial . h \
2017-04-18 15:11:37 -04:00
rsitems / rsfiletransferitems . h \
2017-04-24 16:47:08 -04:00
rsitems / rsconfigitems . h \
rsitems / rshistoryitems . h \
2017-04-24 05:01:45 -04:00
rsitems / rsmsgitems . h \
2015-10-12 14:45:11 -04:00
serialiser / rsserial . h \
2017-04-18 15:11:37 -04:00
rsitems / rsserviceids . h \
2015-10-12 14:45:11 -04:00
serialiser / rsserviceitems . h \
2017-04-27 15:24:27 -04:00
rsitems / rsstatusitems . h \
2015-10-12 14:45:11 -04:00
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 \
2017-04-18 15:11:37 -04:00
rsitems / rsbanlistitems . h \
rsitems / rsbwctrlitems . h \
2017-04-23 13:07:26 -04:00
rsitems / rsdiscovery2items . h \
2017-04-27 15:10:22 -04:00
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 \
2015-10-12 14:45:11 -04:00
2016-10-09 08:32:52 -04:00
HEADERS += services / autoproxy / p3i2pbob . h \
services / autoproxy / rsautoproxymonitor . h \
services / p3msgservice . h \
2015-10-12 14:45:11 -04:00
services / p3service . h \
services / p3statusservice . h \
services / p3banlist . h \
services / p3bwctrl . h \
services / p3discovery2 . h \
services / p3heartbeat . h \
services / p3rtt . h \
2018-05-29 15:54:27 -04:00
services / p3serviceinfo . h \
2015-10-12 14:45:11 -04:00
HEADERS += turtle / p3turtle . h \
turtle / rsturtleitem . h \
turtle / turtletypes . h \
turtle / turtleclientservice . h
HEADERS += util / folderiterator . h \
util / rsdebug . h \
2016-01-12 21:10:11 -05:00
util / rsmemory . h \
2015-10-12 14:45:11 -04:00
util / smallobject . h \
util / rsdir . h \
2018-11-10 11:40:34 -05:00
util / argstream . h \
2015-10-12 14:45:11 -04:00
util / rsdiscspace . h \
util / rsnet . h \
util / extaddrfinder . h \
util / dnsresolver . h \
2016-10-09 08:32:52 -04:00
util / radix32 . h \
util / radix64 . h \
util / rsinitedptr . h \
2015-10-12 14:45:11 -04:00
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 \
2018-01-27 14:22:31 -05:00
util / rstime . h \
2016-12-07 14:09:14 -05:00
util / stacktrace . h \
2017-05-08 10:57:37 -04:00
util / rsdeprecate . h \
2018-03-02 13:20:56 -05:00
util / cxx11retrocompat . h \
util / rsurl . h
2015-10-12 14:45:11 -04:00
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 \
2018-01-15 21:31:03 -05:00
ft / ftturtlefiletransferitem . cc
2015-10-12 14:45:11 -04:00
2017-01-05 17:07:59 -05:00
SOURCES += crypto / chacha20 . cpp \
2018-09-26 11:36:33 -04:00
crypto / hashstream . cc \
crypto / rsaes . cc \
crypto / rscrypto . cpp
2016-10-13 09:13:56 -04:00
2015-10-12 14:45:11 -04:00
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 \
2016-10-09 08:32:52 -04:00
pqi / pqissli2pbob . cpp \
2015-10-12 14:45:11 -04:00
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 \
2017-04-28 10:44:04 -04:00
plugins / dlfcn_win32 . cc
2015-10-12 14:45:11 -04:00
SOURCES += serialiser / rsbaseserial . cc \
2017-04-18 15:11:37 -04:00
rsitems / rsfiletransferitems . cc \
2017-04-24 16:47:08 -04:00
rsitems / rsconfigitems . cc \
rsitems / rshistoryitems . cc \
2017-04-24 05:01:45 -04:00
rsitems / rsmsgitems . cc \
2015-10-12 14:45:11 -04:00
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 \
2017-04-18 15:11:37 -04:00
rsitems / rsbanlistitems . cc \
rsitems / rsbwctrlitems . cc \
2017-04-23 13:07:26 -04:00
rsitems / rsdiscovery2items . 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 \
2015-10-12 14:45:11 -04:00
2018-01-15 21:31:03 -05:00
2016-10-09 08:32:52 -04:00
SOURCES += services / autoproxy / rsautoproxymonitor . cc \
services / autoproxy / p3i2pbob . cc \
services / p3msgservice . cc \
2015-10-12 14:45:11 -04:00
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 \
2016-09-13 06:14:16 -04:00
util / rsexpr . cc \
2015-10-12 14:45:11 -04:00
util / smallobject . cc \
util / rsdir . cc \
2016-01-12 21:10:11 -05:00
util / rsmemory . cc \
2015-10-12 14:45:11 -04:00
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 \
2018-03-02 13:20:56 -05:00
util / rstime . cc \
util / rsurl . cc
2015-10-12 14:45:11 -04:00
2018-04-15 07:41:52 -04:00
## Added for retrocompatibility remove ASAP
isEmpty ( RS_UPNP_LIB ) {
upnp_miniupnpc : RS_UPNP_LIB = miniupnpc
upnp_libupnp : RS_UPNP_LIB = "upnp ixml threadutil"
}
2015-10-12 14:45:11 -04:00
2018-04-15 07:41:52 -04:00
equals ( RS_UPNP_LIB , miniupnpc ) {
2015-10-12 14:45:11 -04:00
HEADERS += upnp / upnputil . h upnp / upnphandler_miniupnp . h
SOURCES += upnp / upnputil . c upnp / upnphandler_miniupnp . cc
2018-04-15 07:41:52 -04:00
} else {
2015-10-12 14:45:11 -04:00
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
2017-04-27 08:21:46 -04:00
HEADERS += rsitems / rsnxsitems . h \
2018-11-10 08:45:05 -05:00
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 \
2015-10-12 14:45:11 -04:00
gxs / rsgds . h \
gxs / rsgxs . h \
gxs / rsdataservice . h \
gxs / rsgxsnetservice . h \
2017-12-20 16:14:58 -05:00
gxs / rsgxsnettunnel . h \
2015-10-12 14:45:11 -04:00
gxs / rsgenexchange . h \
2018-11-10 08:45:05 -05:00
gxs / rsnxs . h \
2015-10-12 14:45:11 -04:00
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 \
2017-04-26 08:28:25 -04:00
rsitems / rsgxsitems . cc \
2015-10-12 14:45:11 -04:00
util / retrodb . cc \
util / contentvalue . cc \
util / rsdbbind . cc \
gxs / gxssecurity . cc \
2018-11-10 08:45:05 -05:00
gxs / rsgxsdataaccess . cc \
gxs / rsdataservice . cc \
gxs / rsgenexchange . cc \
gxs / rsgxsnetservice . cc \
gxs / rsgxsnettunnel . cc \
gxs / rsgxsdata . cc \
2015-10-12 14:45:11 -04:00
gxs / gxstokenqueue . cc \
gxs / rsgxsnetutils . cc \
gxs / rsgxsutil . cc \
gxs / rsgxsrequesttypes . cc
2015-12-04 21:24:51 -05:00
# gxs tunnels
HEADERS += gxstunnel / p3gxstunnel . h \
gxstunnel / rsgxstunnelitems . h \
retroshare / rsgxstunnel . h
SOURCES += gxstunnel / p3gxstunnel . cc \
gxstunnel / rsgxstunnelitems . cc
2015-10-12 14:45:11 -04:00
2017-04-02 08:48:17 -04:00
# new serialization code
2018-01-15 21:31:03 -05:00
HEADERS += serialiser / rsserializable . h \
serialiser / rsserializer . h \
2018-08-16 17:34:29 -04:00
serialiser / rstypeserializer . h \
util / rsjson . h
2017-04-02 08:48:17 -04:00
2017-04-30 10:05:37 -04:00
SOURCES += serialiser / rsserializer . cc \
2018-08-16 17:34:29 -04:00
serialiser / rstypeserializer . cc \
util / rsjson . cc
2017-04-02 08:48:17 -04:00
2015-10-12 14:45:11 -04:00
# Identity Service
HEADERS += retroshare / rsidentity . h \
gxs / rsgixs . h \
services / p3idservice . h \
2017-04-26 08:28:25 -04:00
rsitems / rsgxsiditems . h \
2015-10-12 14:45:11 -04:00
services / p3gxsreputation . h \
2017-04-22 15:36:39 -04:00
rsitems / rsgxsreputationitems . h \
2015-10-12 14:45:11 -04:00
SOURCES += services / p3idservice . cc \
2017-04-26 08:28:25 -04:00
rsitems / rsgxsiditems . cc \
2015-10-12 14:45:11 -04:00
services / p3gxsreputation . cc \
2017-04-22 15:36:39 -04:00
rsitems / rsgxsreputationitems . cc \
2015-10-12 14:45:11 -04:00
# GxsCircles Service
HEADERS += services / p3gxscircles . h \
2017-04-26 14:59:59 -04:00
rsitems / rsgxscircleitems . h \
2015-10-12 14:45:11 -04:00
retroshare / rsgxscircles . h \
SOURCES += services / p3gxscircles . cc \
2017-04-26 14:59:59 -04:00
rsitems / rsgxscircleitems . cc \
2015-10-12 14:45:11 -04:00
# GxsForums Service
HEADERS += retroshare / rsgxsforums . h \
services / p3gxsforums . h \
2017-04-27 05:59:18 -04:00
rsitems / rsgxsforumitems . h
2015-10-12 14:45:11 -04:00
SOURCES += services / p3gxsforums . cc \
2017-04-27 05:59:18 -04:00
rsitems / rsgxsforumitems . cc \
2015-10-12 14:45:11 -04:00
# GxsChannels Service
HEADERS += retroshare / rsgxschannels . h \
services / p3gxschannels . h \
services / p3gxscommon . h \
2017-04-26 08:28:25 -04:00
rsitems / rsgxscommentitems . h \
2017-04-26 14:15:54 -04:00
rsitems / rsgxschannelitems . h \
2015-10-12 14:45:11 -04:00
SOURCES += services / p3gxschannels . cc \
services / p3gxscommon . cc \
2017-04-26 08:28:25 -04:00
rsitems / rsgxscommentitems . cc \
2017-04-26 14:15:54 -04:00
rsitems / rsgxschannelitems . cc \
2015-10-12 14:45:11 -04:00
wikipoos {
# Wiki Service
HEADERS += retroshare / rswiki . h \
services / p3wiki . h \
2017-04-29 15:50:55 -04:00
rsitems / rswikiitems . h
2015-10-12 14:45:11 -04:00
SOURCES += services / p3wiki . cc \
2017-04-29 15:50:55 -04:00
rsitems / rswikiitems . cc \
2015-10-12 14:45:11 -04:00
}
gxsthewire {
# Wire Service
HEADERS += retroshare / rswire . h \
services / p3wire . h \
2017-04-29 15:50:55 -04:00
rsitems / rswireitems . h
2015-10-12 14:45:11 -04:00
SOURCES += services / p3wire . cc \
2017-04-29 15:50:55 -04:00
rsitems / rswireitems . cc \
2015-10-12 14:45:11 -04:00
}
# Posted Service
HEADERS += services / p3postbase . h \
services / p3posted . h \
retroshare / rsposted . h \
2017-04-27 08:44:41 -04:00
rsitems / rsposteditems . h
2015-10-12 14:45:11 -04:00
SOURCES += services / p3postbase . cc \
services / p3posted . cc \
2017-04-27 08:44:41 -04:00
rsitems / rsposteditems . cc
2015-10-12 14:45:11 -04:00
gxsphotoshare {
# Photo Service
HEADERS += services / p3photoservice . h \
retroshare / rsphoto . h \
2017-04-28 12:51:35 -04:00
rsitems / rsphotoitems . h \
2015-10-12 14:45:11 -04:00
SOURCES += services / p3photoservice . cc \
2017-04-28 12:51:35 -04:00
rsitems / rsphotoitems . cc \
2015-10-12 14:45:11 -04:00
}
2017-03-01 20:37:53 -05:00
rs_gxs_trans {
HEADERS += gxstrans / p3gxstransitems . h gxstrans / p3gxstrans . h
SOURCES += gxstrans / p3gxstransitems . cc gxstrans / p3gxstrans . cc
2017-01-14 17:20:42 -05:00
}
2015-10-12 14:45:11 -04:00
2018-06-23 11:13:38 -04:00
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 / )
2018-09-28 18:15:10 -04:00
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-28 18:15:10 -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 )
2018-10-05 16:29:49 -04:00
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 }
}
2018-06-23 11:13:38 -04:00
PRE_TARGETDEPS *= $ $ { JSONAPI_GENERATOR_EXE }
INCLUDEPATH *= $ $ { JSONAPI_GENERATOR_OUT }
2018-08-16 17:34:29 -04:00
GENERATED_HEADERS += $ $ { WRAPPERS_INCL_FILE }
2018-06-23 11:13:38 -04:00
2018-08-16 17:34:29 -04:00
jsonwrappersincl . target = $ $ { WRAPPERS_INCL_FILE }
jsonwrappersincl . commands = \
2018-10-09 12:06:21 -04:00
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 } && \
2018-06-23 11:13:38 -04:00
$ $ { JSONAPI_GENERATOR_EXE } $ $ { JSONAPI_GENERATOR_SRC } $ $ { JSONAPI_GENERATOR_OUT } ;
2018-08-16 17:34:29 -04:00
QMAKE_EXTRA_TARGETS += jsonwrappersincl
libretroshare . depends += jsonwrappersincl
PRE_TARGETDEPS *= $ $ { WRAPPERS_INCL_FILE }
2018-06-23 11:13:38 -04:00
jsonwrappersreg . target = $ $ { WRAPPERS_REG_FILE }
jsonwrappersreg . commands = touch $ $ { WRAPPERS_REG_FILE }
2018-08-16 17:34:29 -04:00
jsonwrappersreg . depends = jsonwrappersincl
2018-06-23 11:13:38 -04:00
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
2018-09-19 15:28:26 -04:00
HEADERS += jsonapi / jsonapi . h jsonapi / jsonapiitems . h
2018-06-23 11:13:38 -04:00
SOURCES += jsonapi / jsonapi . cpp
}
2018-06-09 12:06:14 -04:00
rs_deep_search {
HEADERS += deep_search / deep_search . h
}
2015-10-12 14:45:11 -04:00
###########################################################################################################
# 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 .
}
2016-09-04 09:01:44 -04:00
################################# Android #####################################
2018-01-30 12:11:31 -05:00
android -* {
2018-10-05 19:23:08 -04:00
## 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
2018-01-30 12:24:03 -05:00
DEFINES *= "fopen64=fopen"
DEFINES *= "fseeko64=fseeko"
DEFINES *= "ftello64=ftello"
2018-04-15 07:41:52 -04:00
## Static library are very susceptible to order in command line
sLibs = bz2 $ $ RS_UPNP_LIB $ $ RS_SQL_LIB ssl crypto
2018-01-30 12:24:03 -05:00
2018-04-15 07:41:52 -04:00
LIBS += $ $ linkStaticLibs ( sLibs )
PRE_TARGETDEPS += $ $ pretargetStaticLibs ( sLibs )
2016-12-21 18:33:34 -05:00
HEADERS += util / androiddebug . h
2016-09-04 09:01:44 -04:00
}
2018-04-15 07:41:52 -04:00