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 \ SOURCES += testing/IsolatedServiceTester.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 = g++ 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 *= UBUNTU 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 = g++ 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 = g++ 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 ##################################