Fix El Capitan OSX 10.11 Compil

This commit is contained in:
Phenom 2016-07-16 23:10:00 +02:00
parent 46dd5be2f2
commit 2db8dbd45f
11 changed files with 502 additions and 448 deletions

View file

@ -1,65 +1,83 @@
##Compilation on MacOS # Compilation on MacOS
### Qt Installation ## Qt Installation
Install Qt via: [Qt Download](http://www.qt.io/download/) Install Qt via: [Qt Download](http://www.qt.io/download/)
Use default options. Use default options. And add Qt Script support.
Add to the PATH environment variable with this temporary solution.
export PATH=/users/$USER/Qt/5.5/clang_64/bin:$PATH Add to the PATH environment variable by editing your *~/.profile* file.
export PATH="/users/$USER/Qt/5.5/clang_64/bin:$PATH"
Depends on wich version of Qt you use. Depends on wich version of Qt you use.
###MacPort Installation ## ***Choose if you use MacPort or HomeBrew***
### MacPort Installation
Install MacPort and XCode following this guide: [MacPort and XCode](http://guide.macports.org/#installing.xcode) Install MacPort and XCode following this guide: [MacPort and XCode](http://guide.macports.org/#installing.xcode)
Start XCode to get it updated and to able C compiler to create executables. Start XCode to get it updated and to able C compiler to create executables.
###Install libraries #### Install libraries
$sudo port -v selfupdate $sudo port -v selfupdate
$sudo port install openssl $sudo port install openssl
$sudo port install miniupnpc $sudo port install miniupnpc
$sudo port install libmicrohttpd
For VOIP Plugin: For VOIP Plugin:
$sudo port install speex-devel $sudo port install speex-devel
$sudo port install opencv $sudo port install opencv
Get Your OSX SDK if missing: [MacOSX-SDKs](https://github.com/phracker/MacOSX-SDKs) Get Your OSX SDK if missing: [MacOSX-SDKs](https://github.com/phracker/MacOSX-SDKs)
###Last Settings ### HOMEBREW Installation
In QtCreator Option Git add its path: Install HomeBrew following this guide: [HomeBrew](http://brew.sh/)
C:\Program Files\Git\bin Install XCode command line developer tools:
$xcode-select --install
Start XCode to get it updated and to able C compiler to create executables.
#### Install libraries
$brew install openssl
$brew install miniupnpc
$brew install libmicrohttpd
and select "Pull" with "Rebase" If you have error in linking, run this:
###Compil missing libraries $sudo chown -R $(whoami) /usr/local/lib/pkgconfig
####SQLCipher
For VOIP Plugin:
$brew install speex
$brew install homebrew/science/opencv
$brew install ffmpeg
Get Your OSX SDK if missing: [MacOSX-SDKs](https://github.com/phracker/MacOSX-SDKs)
## Last Settings
In QtCreator Option Git select "Pull" with "Rebase"
## Compil missing libraries
### SQLCipher
cd <your development directory> cd <your development directory>
git clone https://github.com/sqlcipher/sqlcipher.git git clone https://github.com/sqlcipher/sqlcipher.git
cd sqlcipher cd sqlcipher
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" ./configure --disable-shared --disable-tcl --enable-static --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC -I/opt/local/include" LDFLAGS="-lcrypto"
make make
sudo make install sudo make install
NOTE, might be necessary to *chmod 000 /usr/local/ssl* temporarily during *./configure* if NOTE, might be necessary to *chmod 000 /usr/local/ssl* temporarily during *./configure* if
homebrew uses newer, non-stock ssl dependencies found there. configure might get confused. homebrew uses newer, non-stock ssl dependencies found there. Configure might get confused.
####libMicroHTTPD
The one with port don't have good support.
cd <your development directory>
wget http://ftpmirror.gnu.org/libmicrohttpd/libmicrohttpd-0.9.46.tar.gz
tar zxvf libmicrohttpd-0.9.46.tar.gz
cd libmicrohttpd-0.9.46
bash ./configure
sudo make install
You can now compile RS into Qt Creator or with terminal You can now compile RS into Qt Creator or with terminal
@ -68,4 +86,6 @@ You can now compile RS into Qt Creator or with terminal
cd retroshare cd retroshare
qmake; make qmake; make
You can change Target and SDK in *./retroshare.pri:82* changing value of QMAKE_MACOSX_DEPLOYMENT_TARGET and QMAKE_MAC_SDK
You can find compiled application on *./retroshare/retroshare-gui/src/RetroShare06.app* You can find compiled application on *./retroshare/retroshare-gui/src/RetroShare06.app*

View file

@ -113,7 +113,8 @@ libresapihttpserver {
} else { } else {
mac { mac {
INCLUDEPATH += . $$INC_DIR INCLUDEPATH += . $$INC_DIR
for(lib, LIB_DIR):exists($$lib/libmicrohttpd.a){ LIBS *= $$lib/libmicrohttpd.a} #for(lib, LIB_DIR):exists($$lib/libmicrohttpd.a){ LIBS *= $$lib/libmicrohttpd.a}
LIBS *= -lmicrohttpd
} else { } else {
LIBS *= -lmicrohttpd LIBS *= -lmicrohttpd
} }

View file

@ -295,7 +295,7 @@ mac {
OBJECTS_DIR = temp/obj OBJECTS_DIR = temp/obj
MOC_DIR = temp/moc MOC_DIR = temp/moc
#DEFINES = WINDOWS_SYS WIN32 STATICLIB MINGW #DEFINES = WINDOWS_SYS WIN32 STATICLIB MINGW
DEFINES *= MINIUPNPC_VERSION=13 #DEFINES *= MINIUPNPC_VERSION=13
CONFIG += upnp_miniupnpc CONFIG += upnp_miniupnpc
CONFIG += c++11 CONFIG += c++11
@ -305,7 +305,7 @@ mac {
#CONFIG += zcnatassist #CONFIG += zcnatassist
# Beautiful Hack to fix 64bit file access. # Beautiful Hack to fix 64bit file access.
QMAKE_CXXFLAGS *= -Dfseeko64=fseeko -Dftello64=ftello -Dfopen64=fopen -Dvstatfs64=vstatfs QMAKE_CXXFLAGS *= -Dfseeko64=fseeko -Dftello64=ftello -Dfopen64=fopen -Dvstatfs64=vstatfs
#GPG_ERROR_DIR = ../../../../libgpg-error-1.7 #GPG_ERROR_DIR = ../../../../libgpg-error-1.7
#GPGME_DIR = ../../../../gpgme-1.1.8 #GPGME_DIR = ../../../../gpgme-1.1.8
@ -315,6 +315,7 @@ mac {
DEPENDPATH += . $$INC_DIR DEPENDPATH += . $$INC_DIR
INCLUDEPATH += . $$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. # 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 += /usr/local/lib/libsqlcipher.a

View file

@ -30,7 +30,17 @@
#include <iostream> #include <iostream>
#include <time.h> #include <time.h>
#ifdef __APPLE__
int __attribute__((weak)) pthread_setname_np(const char *__buf) ;
int RS_pthread_setname_np(pthread_t /*__target_thread*/, const char *__buf) {
return pthread_setname_np(__buf);
}
#else
int __attribute__((weak)) pthread_setname_np(pthread_t __target_thread, const char *__buf) ; int __attribute__((weak)) pthread_setname_np(pthread_t __target_thread, const char *__buf) ;
int RS_pthread_setname_np(pthread_t __target_thread, const char *__buf) {
return pthread_setname_np(__target_thread, __buf);
}
#endif
#ifdef RSMUTEX_DEBUG #ifdef RSMUTEX_DEBUG
#include <stdio.h> #include <stdio.h>
@ -167,19 +177,21 @@ void RsThread::start(const std::string &threadName)
// set name // set name
if(pthread_setname_np) if(pthread_setname_np)
if(!threadName.empty()) {
{ if(!threadName.empty())
// thread names are restricted to 16 characters including the terminating null byte {
if(threadName.length() > 15) // thread names are restricted to 16 characters including the terminating null byte
{ if(threadName.length() > 15)
{
#ifdef DEBUG_THREADS #ifdef DEBUG_THREADS
THREAD_DEBUG << "RsThread::start called with to long name '" << name << "' truncating..." << std::endl; THREAD_DEBUG << "RsThread::start called with to long name '" << name << "' truncating..." << std::endl;
#endif #endif
pthread_setname_np(mTid, threadName.substr(0, 15).c_str()); RS_pthread_setname_np(mTid, threadName.substr(0, 15).c_str());
} else { } else {
pthread_setname_np(mTid, threadName.c_str()); RS_pthread_setname_np(mTid, threadName.c_str());
} }
} }
}
} }
else else
{ {

View file

@ -1,11 +1,7 @@
!include("../../retroshare.pri"): error("Could not include file ../../retroshare.pri") !include("../../retroshare.pri"): error("Could not include file ../../retroshare.pri")
TEMPLATE = lib TEMPLATE = lib
macx { CONFIG += staticlib
CONFIG = staticlib
} else {
CONFIG += staticlib
}
DEFINES *= OPENSSL_NO_IDEA DEFINES *= OPENSSL_NO_IDEA
@ -13,8 +9,8 @@ QMAKE_CXXFLAGS *= -Wall -Werror -W
TARGET = ops TARGET = ops
DESTDIR = lib DESTDIR = lib
DEPENDPATH += . DEPENDPATH += . $$INC_DIR
INCLUDEPATH += . INCLUDEPATH += . $$INC_DIR
#################################### Windows ##################################### #################################### Windows #####################################
@ -34,9 +30,13 @@ win32 {
# Switch on optimization for debug version # Switch on optimization for debug version
#QMAKE_CXXFLAGS_DEBUG += -O2 #QMAKE_CXXFLAGS_DEBUG += -O2
#QMAKE_CFLAGS_DEBUG += -O2 #QMAKE_CFLAGS_DEBUG += -O2
}
DEPENDPATH += $$INC_DIR
INCLUDEPATH += $$INC_DIR macx {
for(lib, LIB_DIR):LIBS += -L"$$lib"
for(bin, BIN_DIR):LIBS += -L"$$bin"
DEFINES += OPENSSL_NO_CAMELLIA
} }
# Input # Input
@ -73,8 +73,10 @@ HEADERS += openpgpsdk/writer.h \
openpgpsdk/armour.h \ openpgpsdk/armour.h \
openpgpsdk/parse_local.h \ openpgpsdk/parse_local.h \
openpgpsdk/keyring_local.h \ openpgpsdk/keyring_local.h \
openpgpsdk/opsdir.h \ openpgpsdk/opsdir.h
openpgpsdk/opsstring.h win32{
HEADERS += openpgpsdk/opsstring.h
}
SOURCES += openpgpsdk/accumulate.c \ SOURCES += openpgpsdk/accumulate.c \
openpgpsdk/compress.c \ openpgpsdk/compress.c \
@ -113,5 +115,7 @@ SOURCES += openpgpsdk/accumulate.c \
openpgpsdk/writer_memory.c \ openpgpsdk/writer_memory.c \
openpgpsdk/writer_skey_checksum.c \ openpgpsdk/writer_skey_checksum.c \
openpgpsdk/writer_stream_encrypt_se_ip.c \ openpgpsdk/writer_stream_encrypt_se_ip.c \
openpgpsdk/opsdir.c \ openpgpsdk/opsdir.c
openpgpsdk/opsstring.c win32{
SOURCES += openpgpsdk/opsstring.c
}

View file

@ -1,6 +1,7 @@
#include "opsdir.h" #include "opsdir.h"
#ifdef WIN32
#include "opsstring.h" #include "opsstring.h"
#endif
#include <fcntl.h> #include <fcntl.h>
int ops_open(const char* filename, int flag, int pmode) int ops_open(const char* filename, int flag, int pmode)

View file

@ -584,10 +584,13 @@ void GenCertDialog::genPerson()
QCoreApplication::processEvents(); QCoreApplication::processEvents();
QAbstractEventDispatcher* ed = QAbstractEventDispatcher::instance(); QAbstractEventDispatcher* ed = QAbstractEventDispatcher::instance();
std::cout << "Waiting ed->processEvents()" << std::endl;
time_t waitEnd = time(NULL) + 10;//Wait no more than 10 sec to processEvents
if (ed->hasPendingEvents()) if (ed->hasPendingEvents())
while(ed->processEvents(QEventLoop::AllEvents)); while(ed->processEvents(QEventLoop::AllEvents) && (time(NULL) < waitEnd));
std::string email_str = "" ; std::string email_str = "" ;
std::cout << "RsAccounts::GeneratePGPCertificate" << std::endl;
RsAccounts::GeneratePGPCertificate( RsAccounts::GeneratePGPCertificate(
ui.name_input->text().toUtf8().constData(), ui.name_input->text().toUtf8().constData(),
email_str.c_str(), email_str.c_str(),
@ -609,6 +612,7 @@ void GenCertDialog::genPerson()
std::cerr << "GenCertDialog::genPerson() Generating SSL cert with gpg id : " << PGPId << std::endl; std::cerr << "GenCertDialog::genPerson() Generating SSL cert with gpg id : " << PGPId << std::endl;
std::string err; std::string err;
this->hide();//To show dialog asking password PGP Key. this->hide();//To show dialog asking password PGP Key.
std::cout << "RsAccounts::GenerateSSLCertificate" << std::endl;
bool okGen = RsAccounts::GenerateSSLCertificate(PGPId, "", genLoc, "", isHiddenLoc, sslPasswd, sslId, err); bool okGen = RsAccounts::GenerateSSLCertificate(PGPId, "", genLoc, "", isHiddenLoc, sslPasswd, sslId, err);
if (okGen) if (okGen)

View file

@ -234,6 +234,9 @@ macx {
mac_icon.files = $$files($$PWD/rsMacIcon.icns) mac_icon.files = $$files($$PWD/rsMacIcon.icns)
mac_icon.path = Contents/Resources mac_icon.path = Contents/Resources
QMAKE_BUNDLE_DATA += mac_icon QMAKE_BUNDLE_DATA += mac_icon
mac_webui.files = $$files($$PWD/../../libresapi/src/webui)
mac_webui.path = Contents/Resources
QMAKE_BUNDLE_DATA += mac_webui
CONFIG += version_detail_bash_script CONFIG += version_detail_bash_script
LIBS += -lssl -lcrypto -lz LIBS += -lssl -lcrypto -lz

View file

@ -77,12 +77,12 @@ macx {
LIB_DIR += "/usr/local/lib" LIB_DIR += "/usr/local/lib"
LIB_DIR += "/opt/local/lib" LIB_DIR += "/opt/local/lib"
!QMAKE_MACOSX_DEPLOYMENT_TARGET { !QMAKE_MACOSX_DEPLOYMENT_TARGET {
message(***retroshare.pri: No Target, set it to MacOS 10.10 ) message(***retroshare.pri: No Target. Set it to MacOS 10.11 )
QMAKE_MACOSX_DEPLOYMENT_TARGET=10.10 QMAKE_MACOSX_DEPLOYMENT_TARGET=10.11
} }
!QMAKE_MAC_SDK { !QMAKE_MAC_SDK {
message(***retroshare.pri: No SDK, set it to MacOS 10.10 ) message(***retroshare.pri: No SDK. Set it to MacOS 10.11 )
QMAKE_MAC_SDK = macosx10.10 QMAKE_MAC_SDK = macosx10.11
} }
CONFIG += c++11 CONFIG += c++11
} }

View file

@ -182,33 +182,40 @@ win32 {
################################# MacOSX ########################################## ################################# MacOSX ##########################################
mac { mac {
QMAKE_CC = $${QMAKE_CXX} QMAKE_CC = $${QMAKE_CXX}
OBJECTS_DIR = temp/obj OBJECTS_DIR = temp/obj
MOC_DIR = temp/moc MOC_DIR = temp/moc
#DEFINES = WINDOWS_SYS WIN32 STATICLIB MINGW #DEFINES = WINDOWS_SYS WIN32 STATICLIB MINGW
#DEFINES *= MINIUPNPC_VERSION=13 #DEFINES *= MINIUPNPC_VERSION=13
DESTDIR = lib DESTDIR = lib
CONFIG += upnp_miniupnpc CONFIG += upnp_miniupnpc
# zeroconf disabled at the end of libretroshare.pro (but need the code) # zeroconf disabled at the end of libretroshare.pro (but need the code)
CONFIG += zeroconf #CONFIG += zeroconf
CONFIG += zcnatassist #CONFIG += zcnatassist
# Beautiful Hack to fix 64bit file access. # Beautiful Hack to fix 64bit file access.
QMAKE_CXXFLAGS *= -Dfseeko64=fseeko -Dftello64=ftello -Dfopen64=fopen -Dvstatfs64=vstatfs QMAKE_CXXFLAGS *= -Dfseeko64=fseeko -Dftello64=ftello -Dfopen64=fopen -Dvstatfs64=vstatfs
UPNPC_DIR = ../../../miniupnpc-1.0 #UPNPC_DIR = ../../../miniupnpc-1.0
#GPG_ERROR_DIR = ../../../../libgpg-error-1.7 #GPG_ERROR_DIR = ../../../../libgpg-error-1.7
#GPGME_DIR = ../../../../gpgme-1.1.8 #GPGME_DIR = ../../../../gpgme-1.1.8
#OPENPGPSDK_DIR = ../../openpgpsdk/src
#INCLUDEPATH += . $${UPNPC_DIR}
#INCLUDEPATH += $${OPENPGPSDK_DIR}
OPENPGPSDK_DIR = ../../openpgpsdk/src #for(lib, LIB_DIR):exists($$lib/libminiupnpc.a){ LIBS += $$lib/libminiupnpc.a}
for(lib, LIB_DIR):LIBS += -L"$$lib"
for(bin, BIN_DIR):LIBS += -L"$$bin"
INCLUDEPATH += . $${UPNPC_DIR} DEPENDPATH += . $$INC_DIR
INCLUDEPATH += $${OPENPGPSDK_DIR} INCLUDEPATH += . $$INC_DIR
INCLUDEPATH += ../../../.
#../openpgpsdk # We need a explicit path here, to force using the home version of sqlite3 that really encrypts the database.
#INCLUDEPATH += . $${UPNPC_DIR} $${GPGME_DIR}/src $${GPG_ERROR_DIR}/src LIBS += /usr/local/lib/libsqlcipher.a
#LIBS += -lsqlite3
} }
################################# FreeBSD ########################################## ################################# FreeBSD ##########################################

View file

@ -1,156 +1,156 @@
!include("../../retroshare.pri"): error("Could not include file ../../retroshare.pri") !include("../../retroshare.pri"): error("Could not include file ../../retroshare.pri")
QT += network xml script QT += network xml script
CONFIG += bitdht CONFIG += bitdht
CONFIG += gxs debug CONFIG += gxs debug
gxs { gxs {
DEFINES += RS_ENABLE_GXS DEFINES += RS_ENABLE_GXS
} }
TEMPLATE = app TEMPLATE = app
TARGET = unittests TARGET = unittests
OPENPGPSDK_DIR = ../../openpgpsdk/src OPENPGPSDK_DIR = ../../openpgpsdk/src
INCLUDEPATH *= $${OPENPGPSDK_DIR} ../openpgpsdk INCLUDEPATH *= $${OPENPGPSDK_DIR} ../openpgpsdk
# it is impossible to use precompield googletest lib # it is impossible to use precompield googletest lib
# because googletest must be compiled with same compiler flags as the tests! # because googletest must be compiled with same compiler flags as the tests!
!exists(../googletest/googletest/src/gtest-all.cc){ !exists(../googletest/googletest/src/gtest-all.cc){
message(trying to git clone googletest...) message(trying to git clone googletest...)
!system(git clone https://github.com/google/googletest.git ../googletest){ !system(git clone https://github.com/google/googletest.git ../googletest){
error(Could not git clone googletest files. You can manually download them to /tests/googletest) error(Could not git clone googletest files. You can manually download them to /tests/googletest)
} }
} }
INCLUDEPATH += \ INCLUDEPATH += \
../googletest/googletest/include \ ../googletest/googletest/include \
../googletest/googletest ../googletest/googletest
SOURCES += ../googletest/googletest/src/gtest-all.cc SOURCES += ../googletest/googletest/src/gtest-all.cc
################################# Linux ########################################## ################################# Linux ##########################################
# Put lib dir in QMAKE_LFLAGS so it appears before -L/usr/lib # Put lib dir in QMAKE_LFLAGS so it appears before -L/usr/lib
linux-* { linux-* {
#CONFIG += version_detail_bash_script #CONFIG += version_detail_bash_script
QMAKE_CXXFLAGS *= -D_FILE_OFFSET_BITS=64 QMAKE_CXXFLAGS *= -D_FILE_OFFSET_BITS=64
PRE_TARGETDEPS *= ../../libretroshare/src/lib/libretroshare.a PRE_TARGETDEPS *= ../../libretroshare/src/lib/libretroshare.a
PRE_TARGETDEPS *= ../../openpgpsdk/src/lib/libops.a PRE_TARGETDEPS *= ../../openpgpsdk/src/lib/libops.a
LIBS += ../../libretroshare/src/lib/libretroshare.a LIBS += ../../libretroshare/src/lib/libretroshare.a
LIBS += ../librssimulator/lib/librssimulator.a LIBS += ../librssimulator/lib/librssimulator.a
LIBS += ../../openpgpsdk/src/lib/libops.a -lbz2 LIBS += ../../openpgpsdk/src/lib/libops.a -lbz2
LIBS += -lssl -lupnp -lixml -lXss -lgnome-keyring LIBS += -lssl -lupnp -lixml -lXss -lgnome-keyring
LIBS *= -lcrypto -ldl -lX11 -lz -lpthread LIBS *= -lcrypto -ldl -lX11 -lz -lpthread
#LIBS += ../../supportlibs/pegmarkdown/lib/libpegmarkdown.a #LIBS += ../../supportlibs/pegmarkdown/lib/libpegmarkdown.a
contains(CONFIG, NO_SQLCIPHER) { contains(CONFIG, NO_SQLCIPHER) {
DEFINES *= NO_SQLCIPHER DEFINES *= NO_SQLCIPHER
PKGCONFIG *= sqlite3 PKGCONFIG *= sqlite3
} else { } else {
# We need a explicit path here, to force using the home version of sqlite3 that really encrypts the database. # We need a explicit path here, to force using the home version of sqlite3 that really encrypts the database.
SQLCIPHER_OK = $$system(pkg-config --exists sqlcipher && echo yes) SQLCIPHER_OK = $$system(pkg-config --exists sqlcipher && echo yes)
isEmpty(SQLCIPHER_OK) { isEmpty(SQLCIPHER_OK) {
# We need a explicit path here, to force using the home version of sqlite3 that really encrypts the database. # 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) { ! exists(../../../lib/sqlcipher/.libs/libsqlcipher.a) {
message(../../../lib/sqlcipher/.libs/libsqlcipher.a does not exist) message(../../../lib/sqlcipher/.libs/libsqlcipher.a does not exist)
error(Please fix this and try again. Will stop now.) error(Please fix this and try again. Will stop now.)
} }
LIBS += ../../../lib/sqlcipher/.libs/libsqlcipher.a LIBS += ../../../lib/sqlcipher/.libs/libsqlcipher.a
INCLUDEPATH += ../../../lib/sqlcipher/src/ INCLUDEPATH += ../../../lib/sqlcipher/src/
INCLUDEPATH += ../../../lib/sqlcipher/tsrc/ INCLUDEPATH += ../../../lib/sqlcipher/tsrc/
} else { } else {
LIBS += -lsqlcipher LIBS += -lsqlcipher
} }
} }
LIBS *= -lglib-2.0 LIBS *= -lglib-2.0
LIBS *= -rdynamic LIBS *= -rdynamic
DEFINES *= HAVE_XSS # for idle time, libx screensaver extensions DEFINES *= HAVE_XSS # for idle time, libx screensaver extensions
DEFINES *= HAS_GNOME_KEYRING DEFINES *= HAS_GNOME_KEYRING
} }
linux-g++ { linux-g++ {
OBJECTS_DIR = temp/linux-g++/obj OBJECTS_DIR = temp/linux-g++/obj
} }
linux-g++-64 { linux-g++-64 {
OBJECTS_DIR = temp/linux-g++-64/obj OBJECTS_DIR = temp/linux-g++-64/obj
} }
#################### Cross compilation for windows under Linux ################### #################### Cross compilation for windows under Linux ###################
win32-x-g++ { win32-x-g++ {
OBJECTS_DIR = temp/win32-x-g++/obj OBJECTS_DIR = temp/win32-x-g++/obj
LIBS += ../../libretroshare/src/lib.win32xgcc/libretroshare.a LIBS += ../../libretroshare/src/lib.win32xgcc/libretroshare.a
LIBS += ../../../../lib/win32-x-g++-v0.5/libssl.a LIBS += ../../../../lib/win32-x-g++-v0.5/libssl.a
LIBS += ../../../../lib/win32-x-g++-v0.5/libcrypto.a LIBS += ../../../../lib/win32-x-g++-v0.5/libcrypto.a
LIBS += ../../../../lib/win32-x-g++-v0.5/libgpgme.dll.a LIBS += ../../../../lib/win32-x-g++-v0.5/libgpgme.dll.a
LIBS += ../../../../lib/win32-x-g++-v0.5/libminiupnpc.a LIBS += ../../../../lib/win32-x-g++-v0.5/libminiupnpc.a
LIBS += ../../../../lib/win32-x-g++-v0.5/libz.a LIBS += ../../../../lib/win32-x-g++-v0.5/libz.a
LIBS += -L${HOME}/.wine/drive_c/pthreads/lib -lpthreadGCE2 LIBS += -L${HOME}/.wine/drive_c/pthreads/lib -lpthreadGCE2
LIBS += -lQtUiTools LIBS += -lQtUiTools
LIBS += -lws2_32 -luuid -lole32 -liphlpapi -lcrypt32 -gdi32 LIBS += -lws2_32 -luuid -lole32 -liphlpapi -lcrypt32 -gdi32
LIBS += -lole32 -lwinmm LIBS += -lole32 -lwinmm
DEFINES *= WINDOWS_SYS WIN32 WIN32_CROSS_UBUNTU DEFINES *= WINDOWS_SYS WIN32 WIN32_CROSS_UBUNTU
INCLUDEPATH += ../../../../gpgme-1.1.8/src/ INCLUDEPATH += ../../../../gpgme-1.1.8/src/
INCLUDEPATH += ../../../../libgpg-error-1.7/src/ INCLUDEPATH += ../../../../libgpg-error-1.7/src/
RC_FILE = gui/images/retroshare_win.rc RC_FILE = gui/images/retroshare_win.rc
} }
#################################### Windows ##################################### #################################### Windows #####################################
win32 { win32 {
# Switch on extra warnings # Switch on extra warnings
QMAKE_CFLAGS += -Wextra QMAKE_CFLAGS += -Wextra
QMAKE_CXXFLAGS += -Wextra QMAKE_CXXFLAGS += -Wextra
# solve linker warnings because of the order of the libraries # solve linker warnings because of the order of the libraries
QMAKE_LFLAGS += -Wl,--start-group QMAKE_LFLAGS += -Wl,--start-group
# Switch off optimization for release version # Switch off optimization for release version
QMAKE_CXXFLAGS_RELEASE -= -O2 QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE += -O0 QMAKE_CXXFLAGS_RELEASE += -O0
QMAKE_CFLAGS_RELEASE -= -O2 QMAKE_CFLAGS_RELEASE -= -O2
QMAKE_CFLAGS_RELEASE += -O0 QMAKE_CFLAGS_RELEASE += -O0
# Switch on optimization for debug version # Switch on optimization for debug version
#QMAKE_CXXFLAGS_DEBUG += -O2 #QMAKE_CXXFLAGS_DEBUG += -O2
#QMAKE_CFLAGS_DEBUG += -O2 #QMAKE_CFLAGS_DEBUG += -O2
OBJECTS_DIR = temp/obj OBJECTS_DIR = temp/obj
#LIBS += -L"D/Qt/2009.03/qt/plugins/imageformats" #LIBS += -L"D/Qt/2009.03/qt/plugins/imageformats"
#QTPLUGIN += qjpeg #QTPLUGIN += qjpeg
PRE_TARGETDEPS *= ../../libretroshare/src/lib/libretroshare.a PRE_TARGETDEPS *= ../../libretroshare/src/lib/libretroshare.a
PRE_TARGETDEPS *= ../librssimulator/lib/librssimulator.a PRE_TARGETDEPS *= ../librssimulator/lib/librssimulator.a
PRE_TARGETDEPS *= ../../openpgpsdk/src/lib/libops.a PRE_TARGETDEPS *= ../../openpgpsdk/src/lib/libops.a
for(lib, LIB_DIR):LIBS += -L"$$lib" for(lib, LIB_DIR):LIBS += -L"$$lib"
for(bin, BIN_DIR):LIBS += -L"$$bin" for(bin, BIN_DIR):LIBS += -L"$$bin"
LIBS += ../../libretroshare/src/lib/libretroshare.a LIBS += ../../libretroshare/src/lib/libretroshare.a
LIBS += ../librssimulator/lib/librssimulator.a LIBS += ../librssimulator/lib/librssimulator.a
LIBS += ../../openpgpsdk/src/lib/libops.a -lbz2 LIBS += ../../openpgpsdk/src/lib/libops.a -lbz2
LIBS += -L"$$PWD/../../../lib" LIBS += -L"$$PWD/../../../lib"
LIBS += -lssl -lcrypto -lpthread -lminiupnpc -lz LIBS += -lssl -lcrypto -lpthread -lminiupnpc -lz
LIBS += -luuid -lole32 -liphlpapi -lcrypt32 -lgdi32 LIBS += -luuid -lole32 -liphlpapi -lcrypt32 -lgdi32
LIBS += -lwinmm LIBS += -lwinmm
DEFINES *= WINDOWS_SYS WIN32_LEAN_AND_MEAN _USE_32BIT_TIME_T DEFINES *= WINDOWS_SYS WIN32_LEAN_AND_MEAN _USE_32BIT_TIME_T
# create lib directory # create lib directory
message(CHK_DIR_EXISTS=$(CHK_DIR_EXISTS)) message(CHK_DIR_EXISTS=$(CHK_DIR_EXISTS))
message(MKDIR=$(MKDIR)) message(MKDIR=$(MKDIR))
@ -166,227 +166,228 @@ win32 {
# Qt 4 # Qt 4
QMAKE_RC += --include-dir=$$_PRO_FILE_PWD_/../../libretroshare/src QMAKE_RC += --include-dir=$$_PRO_FILE_PWD_/../../libretroshare/src
} }
} }
##################################### MacOS ###################################### ##################################### MacOS ######################################
macx { macx {
# ENABLE THIS OPTION FOR Univeral Binary BUILD. # ENABLE THIS OPTION FOR Univeral Binary BUILD.
CONFIG += ppc x86 #CONFIG += ppc x86
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 #QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4
CONFIG += version_detail_bash_script CONFIG += version_detail_bash_script
LIBS += ../../libretroshare/src/lib/libretroshare.a LIBS += ../../libretroshare/src/lib/libretroshare.a
LIBS += ../librssimulator/lib/librssimulator.a LIBS += ../librssimulator/lib/librssimulator.a
LIBS += ../../openpgpsdk/src/lib/libops.a -lbz2 LIBS += ../../openpgpsdk/src/lib/libops.a -lbz2
LIBS += -lssl -lcrypto -lz LIBS += -lssl -lcrypto -lz
#LIBS += -lssl -lcrypto -lz -lgpgme -lgpg-error -lassuan #LIBS += -lssl -lcrypto -lz -lgpgme -lgpg-error -lassuan
LIBS += ../../../miniupnpc-1.0/libminiupnpc.a for(lib, LIB_DIR):exists($$lib/libminiupnpc.a){ LIBS += $$lib/libminiupnpc.a}
LIBS += -framework CoreFoundation LIBS += -framework CoreFoundation
LIBS += -framework Security LIBS += -framework Security
gxs {
LIBS += ../../supportlibs/pegmarkdown/lib/libpegmarkdown.a for(lib, LIB_DIR):LIBS += -L"$$lib"
for(bin, BIN_DIR):LIBS += -L"$$bin"
LIBS += ../../../lib/libsqlcipher.a
#LIBS += -lsqlite3 DEPENDPATH += . $$INC_DIR
INCLUDEPATH += . $$INC_DIR
}
#LIBS += ../../supportlibs/pegmarkdown/lib/libpegmarkdown.a
INCLUDEPATH += . # We need a explicit path here, to force using the home version of sqlite3 that really encrypts the database.
#DEFINES* = MAC_IDLE # for idle feature LIBS += /usr/local/lib/libsqlcipher.a
CONFIG -= uitools #LIBS += -lsqlite3
#DEFINES* = MAC_IDLE # for idle feature
} CONFIG -= uitools
}
##################################### FreeBSD ######################################
##################################### FreeBSD ######################################
freebsd-* {
INCLUDEPATH *= /usr/local/include/gpgme freebsd-* {
LIBS *= ../../libretroshare/src/lib/libretroshare.a INCLUDEPATH *= /usr/local/include/gpgme
LIBS *= ../librssimulator/lib/librssimulator.a LIBS *= ../../libretroshare/src/lib/libretroshare.a
LIBS *= -lssl LIBS *= ../librssimulator/lib/librssimulator.a
LIBS *= -lgpgme LIBS *= -lssl
LIBS *= -lupnp LIBS *= -lgpgme
LIBS *= -lgnome-keyring LIBS *= -lupnp
PRE_TARGETDEPS *= ../../libretroshare/src/lib/libretroshare.a LIBS *= -lgnome-keyring
PRE_TARGETDEPS *= ../../libretroshare/src/lib/libretroshare.a
gxs {
LIBS += ../../supportlibs/pegmarkdown/lib/libpegmarkdown.a gxs {
LIBS += -lsqlite3 LIBS += ../../supportlibs/pegmarkdown/lib/libpegmarkdown.a
} LIBS += -lsqlite3
}
}
}
##################################### OpenBSD ######################################
##################################### OpenBSD ######################################
openbsd-* {
INCLUDEPATH *= /usr/local/include openbsd-* {
INCLUDEPATH *= /usr/local/include
PRE_TARGETDEPS *= ../../libretroshare/src/lib/libretroshare.a
PRE_TARGETDEPS *= ../../openpgpsdk/src/lib/libops.a PRE_TARGETDEPS *= ../../libretroshare/src/lib/libretroshare.a
PRE_TARGETDEPS *= ../../openpgpsdk/src/lib/libops.a
LIBS *= ../../libretroshare/src/lib/libretroshare.a
LIBS *= ../librssimulator/lib/librssimulator.a LIBS *= ../../libretroshare/src/lib/libretroshare.a
LIBS *= ../../openpgpsdk/src/lib/libops.a -lbz2 LIBS *= ../librssimulator/lib/librssimulator.a
LIBS *= -lssl -lcrypto LIBS *= ../../openpgpsdk/src/lib/libops.a -lbz2
LIBS *= -lgpgme LIBS *= -lssl -lcrypto
LIBS *= -lupnp LIBS *= -lgpgme
LIBS *= -lgnome-keyring LIBS *= -lupnp
PRE_TARGETDEPS *= ../../libretroshare/src/lib/libretroshare.a LIBS *= -lgnome-keyring
PRE_TARGETDEPS *= ../../libretroshare/src/lib/libretroshare.a
gxs {
LIBS += ../../supportlibs/pegmarkdown/lib/libpegmarkdown.a gxs {
LIBS += -lsqlite3 LIBS += ../../supportlibs/pegmarkdown/lib/libpegmarkdown.a
} LIBS += -lsqlite3
}
LIBS *= -rdynamic
} LIBS *= -rdynamic
}
############################## Common stuff ######################################
############################## Common stuff ######################################
# On Linux systems that alredy have libssl and libcrypto it is advisable
# to rename the patched version of SSL to something like libsslxpgp.a and libcryptoxpg.a # On Linux systems that alredy have libssl and libcrypto it is advisable
# to rename the patched version of SSL to something like libsslxpgp.a and libcryptoxpg.a
# ###########################################
# ###########################################
bitdht {
LIBS += ../../libbitdht/src/lib/libbitdht.a bitdht {
PRE_TARGETDEPS *= ../../libbitdht/src/lib/libbitdht.a LIBS += ../../libbitdht/src/lib/libbitdht.a
} PRE_TARGETDEPS *= ../../libbitdht/src/lib/libbitdht.a
}
win32 {
# must be added after bitdht win32 {
LIBS += -lws2_32 # must be added after bitdht
} LIBS += -lws2_32
}
DEPENDPATH += . \
DEPENDPATH += . \
INCLUDEPATH += ../../libretroshare/src/
INCLUDEPATH += ../librssimulator/ INCLUDEPATH += ../../libretroshare/src/
INCLUDEPATH += ../librssimulator/
SOURCES += unittests.cc \
SOURCES += unittests.cc \
################################ Serialiser ################################
HEADERS += libretroshare/serialiser/support.h \ ################################ Serialiser ################################
libretroshare/serialiser/rstlvutil.h \ HEADERS += libretroshare/serialiser/support.h \
libretroshare/serialiser/rstlvutil.h \
SOURCES += libretroshare/serialiser/rsturtleitem_test.cc \
libretroshare/serialiser/rsbaseitem_test.cc \ SOURCES += libretroshare/serialiser/rsturtleitem_test.cc \
libretroshare/serialiser/rsgxsupdateitem_test.cc \ libretroshare/serialiser/rsbaseitem_test.cc \
libretroshare/serialiser/rsmsgitem_test.cc \ libretroshare/serialiser/rsgxsupdateitem_test.cc \
libretroshare/serialiser/rsstatusitem_test.cc \ libretroshare/serialiser/rsmsgitem_test.cc \
libretroshare/serialiser/rsnxsitems_test.cc \ libretroshare/serialiser/rsstatusitem_test.cc \
libretroshare/serialiser/rsgxsiditem_test.cc \ libretroshare/serialiser/rsnxsitems_test.cc \
# libretroshare/serialiser/rsphotoitem_test.cc \ libretroshare/serialiser/rsgxsiditem_test.cc \
libretroshare/serialiser/tlvbase_test2.cc \ # libretroshare/serialiser/rsphotoitem_test.cc \
libretroshare/serialiser/tlvrandom_test.cc \ libretroshare/serialiser/tlvbase_test2.cc \
libretroshare/serialiser/tlvbase_test.cc \ libretroshare/serialiser/tlvrandom_test.cc \
libretroshare/serialiser/tlvstack_test.cc \ libretroshare/serialiser/tlvbase_test.cc \
libretroshare/serialiser/tlvitems_test.cc \ libretroshare/serialiser/tlvstack_test.cc \
# libretroshare/serialiser/rsgrouteritem_test.cc \ libretroshare/serialiser/tlvitems_test.cc \
libretroshare/serialiser/tlvtypes_test.cc \ # libretroshare/serialiser/rsgrouteritem_test.cc \
libretroshare/serialiser/tlvkey_test.cc \ libretroshare/serialiser/tlvtypes_test.cc \
libretroshare/serialiser/support.cc \ libretroshare/serialiser/tlvkey_test.cc \
libretroshare/serialiser/rstlvutil.cc \ libretroshare/serialiser/support.cc \
libretroshare/serialiser/rstlvutil.cc \
# Still to convert these.
# libretroshare/serialiser/rsconfigitem_test.cc \ # Still to convert these.
# libretroshare/serialiser/rsgrouteritem_test.cc \ # libretroshare/serialiser/rsconfigitem_test.cc \
# libretroshare/serialiser/rsgrouteritem_test.cc \
################################## GXS #####################################
################################## GXS #####################################
HEADERS += libretroshare/gxs/common/data_support.h \
HEADERS += libretroshare/gxs/common/data_support.h \
SOURCES += libretroshare/gxs/common/data_support.cc \
SOURCES += libretroshare/gxs/common/data_support.cc \
HEADERS += libretroshare/gxs/nxs_test/nxsdummyservices.h \
libretroshare/gxs/nxs_test/nxsgrptestscenario.h \ HEADERS += libretroshare/gxs/nxs_test/nxsdummyservices.h \
libretroshare/gxs/nxs_test/nxsmsgtestscenario.h \ libretroshare/gxs/nxs_test/nxsgrptestscenario.h \
libretroshare/gxs/nxs_test/nxsgrpsync_test.h \ libretroshare/gxs/nxs_test/nxsmsgtestscenario.h \
libretroshare/gxs/nxs_test/nxsmsgsync_test.h \ libretroshare/gxs/nxs_test/nxsgrpsync_test.h \
libretroshare/gxs/nxs_test/nxstesthub.h \ libretroshare/gxs/nxs_test/nxsmsgsync_test.h \
libretroshare/gxs/nxs_test/nxstestscenario.h \ libretroshare/gxs/nxs_test/nxstesthub.h \
libretroshare/gxs/nxs_test/nxsgrpsyncdelayed.h libretroshare/gxs/nxs_test/nxstestscenario.h \
libretroshare/gxs/nxs_test/nxsgrpsyncdelayed.h
SOURCES += libretroshare/gxs/nxs_test/nxsdummyservices.cc \
libretroshare/gxs/nxs_test/nxsgrptestscenario.cc \ SOURCES += libretroshare/gxs/nxs_test/nxsdummyservices.cc \
libretroshare/gxs/nxs_test/nxsmsgtestscenario.cc \ libretroshare/gxs/nxs_test/nxsgrptestscenario.cc \
libretroshare/gxs/nxs_test/nxstesthub.cc \ libretroshare/gxs/nxs_test/nxsmsgtestscenario.cc \
libretroshare/gxs/nxs_test/rsgxsnetservice_test.cc \ libretroshare/gxs/nxs_test/nxstesthub.cc \
libretroshare/gxs/nxs_test/nxsmsgsync_test.cc \ libretroshare/gxs/nxs_test/rsgxsnetservice_test.cc \
libretroshare/gxs/nxs_test/nxsgrpsync_test.cc \ libretroshare/gxs/nxs_test/nxsmsgsync_test.cc \
libretroshare/gxs/nxs_test/nxsgrpsyncdelayed.cc libretroshare/gxs/nxs_test/nxsgrpsync_test.cc \
libretroshare/gxs/nxs_test/nxsgrpsyncdelayed.cc
HEADERS += libretroshare/gxs/gen_exchange/genexchangetester.h \
libretroshare/gxs/gen_exchange/gxspublishmsgtest.h \ HEADERS += libretroshare/gxs/gen_exchange/genexchangetester.h \
libretroshare/gxs/gen_exchange/genexchangetestservice.h \ libretroshare/gxs/gen_exchange/gxspublishmsgtest.h \
libretroshare/gxs/gen_exchange/gxspublishgrouptest.h \ libretroshare/gxs/gen_exchange/genexchangetestservice.h \
libretroshare/gxs/gen_exchange/rsdummyservices.h \ libretroshare/gxs/gen_exchange/gxspublishgrouptest.h \
libretroshare/gxs/gen_exchange/gxsteststats.cpp libretroshare/gxs/gen_exchange/rsdummyservices.h \
libretroshare/gxs/gen_exchange/gxsteststats.cpp
# libretroshare/gxs/gen_exchange/gxsmsgrelatedtest.h \
# libretroshare/gxs/gen_exchange/gxsmsgrelatedtest.h \
SOURCES += libretroshare/gxs/gen_exchange/gxspublishgrouptest.cc \
libretroshare/gxs/gen_exchange/gxsteststats.cpp \ SOURCES += libretroshare/gxs/gen_exchange/gxspublishgrouptest.cc \
libretroshare/gxs/gen_exchange/gxspublishmsgtest.cc \ libretroshare/gxs/gen_exchange/gxsteststats.cpp \
libretroshare/gxs/gen_exchange/rsdummyservices.cc \ libretroshare/gxs/gen_exchange/gxspublishmsgtest.cc \
libretroshare/gxs/gen_exchange/rsgenexchange_test.cc \ libretroshare/gxs/gen_exchange/rsdummyservices.cc \
libretroshare/gxs/gen_exchange/genexchangetester.cc \ libretroshare/gxs/gen_exchange/rsgenexchange_test.cc \
libretroshare/gxs/gen_exchange/genexchangetestservice.cc \ libretroshare/gxs/gen_exchange/genexchangetester.cc \
libretroshare/gxs/gen_exchange/genexchangetestservice.cc \
SOURCES += libretroshare/gxs/security/gxssecurity_test.cc
SOURCES += libretroshare/gxs/security/gxssecurity_test.cc
# libretroshare/gxs/gen_exchange/gxsmsgrelatedtest.cc \
# libretroshare/gxs/gen_exchange/gxsmsgrelatedtest.cc \
HEADERS += libretroshare/gxs/data_service/rsdataservice_test.h \
HEADERS += libretroshare/gxs/data_service/rsdataservice_test.h \
SOURCES += libretroshare/gxs/data_service/rsdataservice_test.cc \
libretroshare/gxs/data_service/rsgxsdata_test.cc \ SOURCES += libretroshare/gxs/data_service/rsdataservice_test.cc \
libretroshare/gxs/data_service/rsgxsdata_test.cc \
################################ dbase #####################################
################################ dbase #####################################
#SOURCES += libretroshare/dbase/fisavetest.cc \
# libretroshare/dbase/fitest2.cc \ #SOURCES += libretroshare/dbase/fisavetest.cc \
# libretroshare/dbase/searchtest.cc \ # libretroshare/dbase/fitest2.cc \
# libretroshare/dbase/searchtest.cc \
# libretroshare/dbase/ficachetest.cc \
# libretroshare/dbase/fimontest.cc \ # libretroshare/dbase/ficachetest.cc \
# libretroshare/dbase/fimontest.cc \
############################### services ###################################
############################### services ###################################
SOURCES += libretroshare/services/status/status_test.cc \
SOURCES += libretroshare/services/status/status_test.cc \
############################### gxs ########################################
############################### gxs ########################################
HEADERS += libretroshare/services/gxs/rsgxstestitems.h \
libretroshare/services/gxs/gxstestservice.h \ HEADERS += libretroshare/services/gxs/rsgxstestitems.h \
libretroshare/services/gxs/GxsIsolatedServiceTester.h \ libretroshare/services/gxs/gxstestservice.h \
libretroshare/services/gxs/GxsPeerNode.h \ libretroshare/services/gxs/GxsIsolatedServiceTester.h \
libretroshare/services/gxs/GxsPairServiceTester.h \ libretroshare/services/gxs/GxsPeerNode.h \
libretroshare/services/gxs/FakePgpAuxUtils.h \ libretroshare/services/gxs/GxsPairServiceTester.h \
libretroshare/services/gxs/FakePgpAuxUtils.h \
# libretroshare/services/gxs/RsGxsNetServiceTester.h \
# libretroshare/services/gxs/RsGxsNetServiceTester.h \
SOURCES += libretroshare/services/gxs/rsgxstestitems.cc \
libretroshare/services/gxs/gxstestservice.cc \ SOURCES += libretroshare/services/gxs/rsgxstestitems.cc \
libretroshare/services/gxs/GxsIsolatedServiceTester.cc \ libretroshare/services/gxs/gxstestservice.cc \
libretroshare/services/gxs/GxsPeerNode.cc \ libretroshare/services/gxs/GxsIsolatedServiceTester.cc \
libretroshare/services/gxs/GxsPairServiceTester.cc \ libretroshare/services/gxs/GxsPeerNode.cc \
libretroshare/services/gxs/FakePgpAuxUtils.cc \ libretroshare/services/gxs/GxsPairServiceTester.cc \
libretroshare/services/gxs/nxsbasic_test.cc \ libretroshare/services/gxs/FakePgpAuxUtils.cc \
libretroshare/services/gxs/nxspair_tests.cc \ libretroshare/services/gxs/nxsbasic_test.cc \
libretroshare/services/gxs/gxscircle_tests.cc \ libretroshare/services/gxs/nxspair_tests.cc \
libretroshare/services/gxs/gxscircle_tests.cc \
# libretroshare/services/gxs/gxscircle_mintest.cc \
# libretroshare/services/gxs/gxscircle_mintest.cc \
# libretroshare/services/gxs/RsGxsNetServiceTester.cc \
# libretroshare/services/gxs/RsGxsNetServiceTester.cc \