mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-12-25 23:49:35 -05:00
6e38554bcd
The name UBUNTU is misleading since it is only used to select the keyring backend (which is gnome keyring on linux). This also allows to support other keyrings on linux in the future (e.g. KDEs keyring)
252 lines
6.5 KiB
Prolog
252 lines
6.5 KiB
Prolog
TEMPLATE = lib
|
|
CONFIG += staticlib
|
|
CONFIG -= qt
|
|
TARGET = rssimulator
|
|
|
|
CONFIG += gxs debug
|
|
|
|
profiling {
|
|
QMAKE_CXXFLAGS -= -fomit-frame-pointer
|
|
QMAKE_CXXFLAGS *= -pg -g -fno-omit-frame-pointer
|
|
}
|
|
|
|
|
|
debug {
|
|
QMAKE_CXXFLAGS -= -O2 -fomit-frame-pointer
|
|
QMAKE_CXXFLAGS *= -g -fno-omit-frame-pointer
|
|
}
|
|
|
|
# gxs defines.
|
|
gxs {
|
|
DEFINES *= RS_ENABLE_GXS
|
|
DEFINES *= SQLITE_HAS_CODEC
|
|
DEFINES *= GXS_ENABLE_SYNC_MSGS
|
|
}
|
|
|
|
INCLUDEPATH += ../../libretroshare/src/
|
|
|
|
######################### Peer ##################################
|
|
|
|
HEADERS += peer/FakeLinkMgr.h \
|
|
peer/FakePeerMgr.h \
|
|
peer/FakeNetMgr.h \
|
|
peer/FakePublisher.h \
|
|
peer/FakeServiceControl.h \
|
|
peer/PeerNode.h \
|
|
|
|
SOURCES += peer/PeerNode.cc \
|
|
|
|
|
|
###################### Unit Tests ###############################
|
|
|
|
HEADERS += testing/IsolatedServiceTester.h \
|
|
testing/SetServiceTester.h \
|
|
testing/SetPacket.h \
|
|
testing/SetFilter.h \
|
|
|
|
SOURCES += testing/IsolatedServiceTester.cc \
|
|
testing/SetServiceTester.cc \
|
|
testing/SetFilter.cc \
|
|
|
|
##################### Network Sims ##############################
|
|
# to be ported over.
|
|
|
|
#HEADERS += network/Network.h \
|
|
|
|
#SOURCES += network/Network.cc \
|
|
|
|
|
|
################################# Linux ##########################################
|
|
linux-* {
|
|
isEmpty(PREFIX) { PREFIX = /usr }
|
|
isEmpty(INC_DIR) { INC_DIR = $${PREFIX}/include/retroshare/ }
|
|
isEmpty(LIB_DIR) { LIB_DIR = $${PREFIX}/lib/ }
|
|
|
|
# These two lines fixe compilation on ubuntu natty. Probably a ubuntu packaging error.
|
|
INCLUDEPATH += $$system(pkg-config --cflags glib-2.0 | sed -e "s/-I//g")
|
|
|
|
OPENPGPSDK_DIR = ../../openpgpsdk/src
|
|
INCLUDEPATH *= $${OPENPGPSDK_DIR} ../openpgpsdk
|
|
|
|
DESTDIR = lib
|
|
QMAKE_CXXFLAGS *= -Wall -D_FILE_OFFSET_BITS=64
|
|
QMAKE_CC = $${QMAKE_CXX}
|
|
|
|
SSL_DIR = /usr/include/openssl
|
|
UPNP_DIR = /usr/include/upnp
|
|
INCLUDEPATH += . $${SSL_DIR} $${UPNP_DIR}
|
|
|
|
# where to put the shared library itself
|
|
target.path = $$LIB_DIR
|
|
INSTALLS *= target
|
|
|
|
# where to put the librarys interface
|
|
include_rsiface.path = $${INC_DIR}
|
|
include_rsiface.files = $$PUBLIC_HEADERS
|
|
INSTALLS += include_rsiface
|
|
|
|
#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' $${UPNP_DIR}/upnp.h >/dev/null 2>&1) {
|
|
# Normal libupnp
|
|
} else {
|
|
# Patched libupnp or new unreleased version
|
|
DEFINES *= PATCHED_LIBUPNP
|
|
}
|
|
|
|
DEFINES *= HAS_GNOME_KEYRING
|
|
INCLUDEPATH += /usr/include/glib-2.0/ /usr/lib/glib-2.0/include
|
|
LIBS *= -lgnome-keyring
|
|
}
|
|
|
|
linux-g++ {
|
|
OBJECTS_DIR = temp/linux-g++/obj
|
|
}
|
|
|
|
linux-g++-64 {
|
|
OBJECTS_DIR = temp/linux-g++-64/obj
|
|
}
|
|
|
|
version_detail_bash_script {
|
|
QMAKE_EXTRA_TARGETS += write_version_detail
|
|
PRE_TARGETDEPS = write_version_detail
|
|
write_version_detail.commands = ./version_detail.sh
|
|
}
|
|
|
|
#################### Cross compilation for windows under Linux ####################
|
|
|
|
win32-x-g++ {
|
|
OBJECTS_DIR = temp/win32xgcc/obj
|
|
DESTDIR = lib.win32xgcc
|
|
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 {
|
|
QMAKE_CC = $${QMAKE_CXX}
|
|
OBJECTS_DIR = temp/obj
|
|
MOC_DIR = temp/moc
|
|
DEFINES *= WINDOWS_SYS WIN32 STATICLIB MINGW WIN32_LEAN_AND_MEAN _USE_32BIT_TIME_T
|
|
DEFINES *= MINIUPNPC_VERSION=13
|
|
# This defines the platform to be WinXP or later and is needed for getaddrinfo (_WIN32_WINNT_WINXP)
|
|
DEFINES *= WINVER=0x0501
|
|
DESTDIR = lib
|
|
|
|
# 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
|
|
|
|
CONFIG += upnp_miniupnpc
|
|
|
|
UPNPC_DIR = ../../../miniupnpc-1.3
|
|
|
|
ZLIB_DIR = ../../../zlib-1.2.3
|
|
SSL_DIR = ../../../openssl-1.0.1c
|
|
OPENPGPSDK_DIR = ../../openpgpsdk/src
|
|
|
|
INCLUDEPATH += . $${SSL_DIR}/include $${UPNPC_DIR} $${ZLIB_DIR} $${OPENPGPSDK_DIR}
|
|
|
|
# SQLite include path is required to compile GXS.
|
|
gxs {
|
|
SQLITE_DIR = ../../../sqlcipher-2.2.0
|
|
INCLUDEPATH += $${SQLITE_DIR}
|
|
}
|
|
}
|
|
|
|
################################# MacOSX ##########################################
|
|
|
|
mac {
|
|
QMAKE_CC = $${QMAKE_CXX}
|
|
OBJECTS_DIR = temp/obj
|
|
MOC_DIR = temp/moc
|
|
#DEFINES = WINDOWS_SYS WIN32 STATICLIB MINGW
|
|
#DEFINES *= MINIUPNPC_VERSION=13
|
|
DESTDIR = lib
|
|
|
|
CONFIG += upnp_miniupnpc
|
|
|
|
# zeroconf disabled at the end of libretroshare.pro (but need the code)
|
|
CONFIG += zeroconf
|
|
CONFIG += zcnatassist
|
|
|
|
# Beautiful Hack to fix 64bit file access.
|
|
QMAKE_CXXFLAGS *= -Dfseeko64=fseeko -Dftello64=ftello -Dfopen64=fopen -Dvstatfs64=vstatfs
|
|
|
|
UPNPC_DIR = ../../../miniupnpc-1.0
|
|
#GPG_ERROR_DIR = ../../../../libgpg-error-1.7
|
|
#GPGME_DIR = ../../../../gpgme-1.1.8
|
|
|
|
OPENPGPSDK_DIR = ../../openpgpsdk/src
|
|
|
|
INCLUDEPATH += . $${UPNPC_DIR}
|
|
INCLUDEPATH += $${OPENPGPSDK_DIR}
|
|
|
|
#../openpgpsdk
|
|
#INCLUDEPATH += . $${UPNPC_DIR} $${GPGME_DIR}/src $${GPG_ERROR_DIR}/src
|
|
}
|
|
|
|
################################# 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
|
|
|
|
DESTDIR = lib
|
|
}
|
|
|
|
################################# OpenBSD ##########################################
|
|
|
|
openbsd-* {
|
|
INCLUDEPATH *= /usr/local/include
|
|
INCLUDEPATH += $$system(pkg-config --cflags glib-2.0 | sed -e "s/-I//g")
|
|
|
|
OPENPGPSDK_DIR = ../../openpgpsdk/src
|
|
INCLUDEPATH *= $${OPENPGPSDK_DIR} ../openpgpsdk
|
|
|
|
QMAKE_CXXFLAGS *= -Dfseeko64=fseeko -Dftello64=ftello -Dstat64=stat -Dstatvfs64=statvfs -Dfopen64=fopen
|
|
|
|
CONFIG += upnp_libupnp
|
|
|
|
DESTDIR = lib
|
|
}
|
|
|
|
################################### COMMON stuff ##################################
|