mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-01-14 17:07:17 -05:00
Merge pull request #214 from PhenomRetroShare/Fix_MacOSX.X_Compilation
Fix MacOSX 10.10 Yosemite Compilation
This commit is contained in:
commit
b1ce2faa28
63
MacOS_X_InstallGuide.txt
Normal file
63
MacOS_X_InstallGuide.txt
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#############################
|
||||||
|
###--- QT INSTALLATION ---###
|
||||||
|
#############################
|
||||||
|
|
||||||
|
###Install Qt via:
|
||||||
|
http://www.qt.io/download/
|
||||||
|
|
||||||
|
###Use default options.
|
||||||
|
###Add to the PATH environment variable with this temporary solution.
|
||||||
|
export PATH=/users/$USER/Qt/5.5/clang_64/bin:$PATH
|
||||||
|
###Depends on wich version of Qt you use.
|
||||||
|
|
||||||
|
##################################
|
||||||
|
###--- MACPORT INSTALLATION ---###
|
||||||
|
##################################
|
||||||
|
|
||||||
|
###Install MacPort and XCode following this guide:
|
||||||
|
http://guide.macports.org/#installing.xcode
|
||||||
|
|
||||||
|
###Start XCode to get it updated and to able C compiler to create executables.
|
||||||
|
|
||||||
|
###Install libraries
|
||||||
|
$sudo port -v selfupdate
|
||||||
|
$sudo port install openssl
|
||||||
|
$sudo port install miniupnpc
|
||||||
|
|
||||||
|
###Get Your OSX SDK if missing:
|
||||||
|
https://github.com/phracker/MacOSX-SDKs
|
||||||
|
|
||||||
|
###########################
|
||||||
|
###--- LAST SETTINGS ---###
|
||||||
|
###########################
|
||||||
|
|
||||||
|
###In QtCreator Option Git add its path:
|
||||||
|
C:\Program Files\Git\bin
|
||||||
|
### and select "Pull" with "Rebase"
|
||||||
|
|
||||||
|
###Compil missing libraries
|
||||||
|
###SQLCipher
|
||||||
|
cd <your development directory>
|
||||||
|
git clone https://github.com/sqlcipher/sqlcipher.git
|
||||||
|
cd sqlcipher
|
||||||
|
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
#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.
|
||||||
|
|
||||||
|
### 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
|
||||||
|
cd <your development directory>
|
||||||
|
git clone https://github.com/RetroShare/RetroShare.git retroshare
|
||||||
|
cd retroshare
|
||||||
|
qmake;make
|
||||||
|
|
||||||
|
###You can find compiled application on ./retroshare/retroshare-gui/src/RetroShare06.app
|
@ -33,8 +33,8 @@ libmicrohttpd{
|
|||||||
PKGCONFIG *= libmicrohttpd
|
PKGCONFIG *= libmicrohttpd
|
||||||
} else {
|
} else {
|
||||||
mac {
|
mac {
|
||||||
INCLUDEPATH += /usr/local/include
|
INCLUDEPATH += . $$INC_DIR
|
||||||
LIBS *= /usr/local/lib/libmicrohttpd.a
|
for(lib, LIB_DIR):exists($$lib/libmicrohttpd.a){ LIBS *= $$lib/libmicrohttpd.a}
|
||||||
} else {
|
} else {
|
||||||
LIBS *= -lmicrohttpd
|
LIBS *= -lmicrohttpd
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,11 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#ifdef __MAC_10_10
|
||||||
|
#include <unordered_set>
|
||||||
|
#else
|
||||||
#include <tr1/unordered_set>
|
#include <tr1/unordered_set>
|
||||||
|
#endif
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
@ -54,8 +58,11 @@ static const char FILE_CACHE_SEPARATOR_CHAR = '|' ;
|
|||||||
****/
|
****/
|
||||||
|
|
||||||
static RsMutex FIndexPtrMtx("FIndexPtrMtx") ;
|
static RsMutex FIndexPtrMtx("FIndexPtrMtx") ;
|
||||||
|
#ifdef __MAC_10_10
|
||||||
|
std::unordered_set<void*> FileIndex::_pointers ;
|
||||||
|
#else
|
||||||
std::tr1::unordered_set<void*> FileIndex::_pointers ;
|
std::tr1::unordered_set<void*> FileIndex::_pointers ;
|
||||||
|
#endif
|
||||||
void FileIndex::registerEntry(void*p)
|
void FileIndex::registerEntry(void*p)
|
||||||
{
|
{
|
||||||
RsStackMutex m(FIndexPtrMtx) ;
|
RsStackMutex m(FIndexPtrMtx) ;
|
||||||
|
@ -27,7 +27,11 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <set>
|
#include <set>
|
||||||
|
#if __MAC_10_10
|
||||||
|
#include <unordered_set>
|
||||||
|
#else
|
||||||
#include <tr1/unordered_set>
|
#include <tr1/unordered_set>
|
||||||
|
#endif
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
@ -246,7 +250,11 @@ class FileIndex
|
|||||||
|
|
||||||
PersonEntry *root;
|
PersonEntry *root;
|
||||||
|
|
||||||
|
#ifdef __MAC_10_10
|
||||||
|
static std::unordered_set<void*> _pointers ;
|
||||||
|
#else
|
||||||
static std::tr1::unordered_set<void*> _pointers ;
|
static std::tr1::unordered_set<void*> _pointers ;
|
||||||
|
#endif
|
||||||
static void registerEntry(void*p) ;
|
static void registerEntry(void*p) ;
|
||||||
static void unregisterEntry(void*p) ;
|
static void unregisterEntry(void*p) ;
|
||||||
static bool isValid(void*p) ;
|
static bool isValid(void*p) ;
|
||||||
|
@ -266,6 +266,7 @@ mac {
|
|||||||
DEFINES *= MINIUPNPC_VERSION=13
|
DEFINES *= MINIUPNPC_VERSION=13
|
||||||
|
|
||||||
CONFIG += upnp_miniupnpc
|
CONFIG += upnp_miniupnpc
|
||||||
|
CONFIG += c+11
|
||||||
|
|
||||||
# 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
|
||||||
@ -274,13 +275,14 @@ mac {
|
|||||||
# 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 = /usr/local/include
|
|
||||||
#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
|
||||||
|
|
||||||
INCLUDEPATH += . $${UPNPC_DIR}
|
for(lib, LIB_DIR):LIBS += -L"$$lib"
|
||||||
|
for(bin, BIN_DIR):LIBS += -L"$$bin"
|
||||||
|
|
||||||
#INCLUDEPATH += . $${UPNPC_DIR} $${GPGME_DIR}/src $${GPG_ERROR_DIR}/src
|
DEPENDPATH += . $$INC_DIR
|
||||||
|
INCLUDEPATH += . $$INC_DIR
|
||||||
|
|
||||||
# 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
|
||||||
|
@ -47,7 +47,12 @@ template<int n> class t_RsFlags32
|
|||||||
|
|
||||||
friend std::ostream& operator<<(std::ostream& o,const t_RsFlags32<n>& f) // friendly print with 0 and I
|
friend std::ostream& operator<<(std::ostream& o,const t_RsFlags32<n>& f) // friendly print with 0 and I
|
||||||
{
|
{
|
||||||
for(int i=31;i>=0;--i) { o << ( (f._bits&(1<<i))?"I":"0") ; if(i%8==0) o << " " ; }
|
for(int i=31;i>=0;--i) {
|
||||||
|
std::string res = f._bits&(1<<i)?"I":"0" ;
|
||||||
|
std::string blank = " " ;
|
||||||
|
o << res ;
|
||||||
|
if(i%8==0) o << blank ;
|
||||||
|
}
|
||||||
return o ;
|
return o ;
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
#define BIG_ENDIAN 4321
|
#define BIG_ENDIAN 4321
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef ntohll
|
||||||
uint64_t ntohll(uint64_t x)
|
uint64_t ntohll(uint64_t x)
|
||||||
{
|
{
|
||||||
#ifdef BYTE_ORDER
|
#ifdef BYTE_ORDER
|
||||||
@ -61,11 +62,13 @@ uint64_t ntohll(uint64_t x)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#ifndef htonll
|
||||||
uint64_t htonll(uint64_t x)
|
uint64_t htonll(uint64_t x)
|
||||||
{
|
{
|
||||||
return ntohll(x);
|
return ntohll(x);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void sockaddr_clear(struct sockaddr_in *addr)
|
void sockaddr_clear(struct sockaddr_in *addr)
|
||||||
{
|
{
|
||||||
|
@ -58,8 +58,12 @@ int inet_aton(const char *name, struct in_addr *addr);
|
|||||||
/********************************** WINDOWS/UNIX SPECIFIC PART ******************/
|
/********************************** WINDOWS/UNIX SPECIFIC PART ******************/
|
||||||
|
|
||||||
/* 64 bit conversions */
|
/* 64 bit conversions */
|
||||||
|
#ifndef ntohll
|
||||||
uint64_t ntohll(uint64_t x);
|
uint64_t ntohll(uint64_t x);
|
||||||
|
#endif
|
||||||
|
#ifndef htonll
|
||||||
uint64_t htonll(uint64_t x);
|
uint64_t htonll(uint64_t x);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* blank a network address */
|
/* blank a network address */
|
||||||
void sockaddr_clear(struct sockaddr_in *addr);
|
void sockaddr_clear(struct sockaddr_in *addr);
|
||||||
|
@ -212,11 +212,17 @@ macx {
|
|||||||
CONFIG += version_detail_bash_script
|
CONFIG += version_detail_bash_script
|
||||||
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 += /usr/local/lib/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
|
||||||
LIBS += -framework Carbon
|
LIBS += -framework Carbon
|
||||||
INCLUDEPATH += . /usr/local/include
|
|
||||||
|
for(lib, LIB_DIR):LIBS += -L"$$lib"
|
||||||
|
for(bin, BIN_DIR):LIBS += -L"$$bin"
|
||||||
|
|
||||||
|
DEPENDPATH += . $$INC_DIR
|
||||||
|
INCLUDEPATH += . $$INC_DIR
|
||||||
|
|
||||||
#DEFINES *= MAC_IDLE # for idle feature
|
#DEFINES *= MAC_IDLE # for idle feature
|
||||||
CONFIG -= uitools
|
CONFIG -= uitools
|
||||||
}
|
}
|
||||||
|
@ -95,11 +95,15 @@ macx {
|
|||||||
# CONFIG += ppc x86
|
# CONFIG += ppc x86
|
||||||
|
|
||||||
LIBS += -Wl,-search_paths_first
|
LIBS += -Wl,-search_paths_first
|
||||||
LIBS += -lssl -lcrypto -lz
|
LIBS += -lssl -lcrypto -lz
|
||||||
LIBS += /usr/local/lib/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
|
||||||
INCLUDEPATH += /usr/local/include
|
for(lib, LIB_DIR):LIBS += -L"$$lib"
|
||||||
|
for(bin, BIN_DIR):LIBS += -L"$$bin"
|
||||||
|
|
||||||
|
DEPENDPATH += . $$INC_DIR
|
||||||
|
INCLUDEPATH += . $$INC_DIR
|
||||||
|
|
||||||
sshserver {
|
sshserver {
|
||||||
LIBS += -L../../../lib
|
LIBS += -L../../../lib
|
||||||
|
@ -35,6 +35,18 @@ win32 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
macx {
|
||||||
|
message(***retroshare.pri:MacOSX)
|
||||||
|
BIN_DIR += "/usr/bin"
|
||||||
|
INC_DIR += "/usr/include"
|
||||||
|
INC_DIR += "/usr/local/include"
|
||||||
|
INC_DIR += "/opt/local/include"
|
||||||
|
LIB_DIR += "/usr/local/lib"
|
||||||
|
LIB_DIR += "/opt/local/lib"
|
||||||
|
QMAKE_MACOSX_DEPLOYMENT_TARGET=10.10
|
||||||
|
QMAKE_MAC_SDK = macosx10.10
|
||||||
|
}
|
||||||
|
|
||||||
unfinished {
|
unfinished {
|
||||||
CONFIG += gxscircles
|
CONFIG += gxscircles
|
||||||
CONFIG += gxsthewire
|
CONFIG += gxsthewire
|
||||||
|
Loading…
Reference in New Issue
Block a user