2016-08-02 18:48:19 -04:00
# To disable RetroShare-gui append the following
# assignation to qmake command line "CONFIG+=no_retroshare_gui"
CONFIG *= retroshare_gui
no_retroshare_gui:CONFIG -= retroshare_gui
2016-07-14 16:48:44 -04:00
2016-08-02 18:48:19 -04:00
# To disable RetroShare-nogui append the following
# assignation to qmake command line "CONFIG+=no_retroshare_nogui"
CONFIG *= retroshare_nogui
no_retroshare_nogui:CONFIG -= retroshare_nogui
# To disable RetroShare plugins append the following
# assignation to qmake command line "CONFIG+=no_retroshare_plugins"
CONFIG *= retroshare_plugins
no_retroshare_plugins:CONFIG -= retroshare_plugins
# To enable RetroShare-android-service append the following assignation to
# qmake command line "CONFIG+=retroshare_android_service"
CONFIG *= no_retroshare_android_service
retroshare_android_service:CONFIG -= no_retroshare_android_service
2017-04-07 12:26:08 -04:00
# To enable RetroShare-android-notify-service append the following
# assignation to qmake command line
# "CONFIG+=retroshare_android_notify_service"
CONFIG *= no_retroshare_android_notify_service
retroshare_android_notify_service:CONFIG -= no_retroshare_android_notify_service
2016-11-10 05:45:41 -05:00
# To enable RetroShare-QML-app append the following assignation to
# qmake command line "CONFIG+=retroshare_qml_app"
CONFIG *= no_retroshare_qml_app
retroshare_qml_app:CONFIG -= no_retroshare_qml_app
2016-08-02 18:48:19 -04:00
# To enable libresapi via local socket (unix domain socket or windows named
# pipes) append the following assignation to qmake command line
#"CONFIG+=libresapilocalserver"
CONFIG *= no_libresapilocalserver
libresapilocalserver:CONFIG -= no_libresapilocalserver
2017-03-28 05:18:27 -04:00
# To enable Qt dependencies in libresapi append the following
# assignation to qmake command line "CONFIG+=qt_dependencies"
CONFIG *= no_qt_dependencies
qt_dependencies:CONFIG -= no_qt_dependencies
2016-08-02 18:48:19 -04:00
# To disable libresapi via HTTP (based on libmicrohttpd) append the following
# assignation to qmake command line "CONFIG+=no_libresapihttpserver"
2016-07-28 08:08:49 -04:00
CONFIG *= libresapihttpserver
2016-08-02 18:48:19 -04:00
no_libresapihttpserver:CONFIG -= libresapihttpserver
# To disable SQLCipher support append the following assignation to qmake
# command line "CONFIG+=no_sqlcipher"
CONFIG *= sqlcipher
no_sqlcipher:CONFIG -= sqlcipher
2016-12-03 14:04:25 -05:00
# To enable autologin (this is higly discouraged as it may compromise your node
# security in multiple ways) append the following assignation to qmake command
# line "CONFIG+=rs_autologin"
CONFIG *= no_rs_autologin
rs_autologin:CONFIG -= no_rs_autologin
2017-08-20 07:17:28 -04:00
# To have only hidden node generation append the following assignation
# to qmake command line "CONFIG+=rs_onlyhiddennode"
CONFIG *= no_rs_onlyhiddennode
rs_onlyhiddennode:CONFIG -= no_rs_onlyhiddennode
2016-08-02 18:48:19 -04:00
# To disable GXS (General eXchange System) append the following
# assignation to qmake command line "CONFIG+=no_rs_gxs"
CONFIG *= rs_gxs
no_rs_gxs:CONFIG -= rs_gxs
2016-07-28 08:08:49 -04:00
2017-07-17 10:04:52 -04:00
# To enable RS Deprecated Warnings append the following assignation to qmake
# command line "CONFIG+=rs_deprecatedwarning"
CONFIG *= no_rs_deprecatedwarning
rs_deprecatedwarning:CONFIG -= no_rs_deprecatedwarning
2016-12-21 16:05:57 -05:00
2017-07-17 10:04:52 -04:00
# To enable CPP #warning append the following assignation to qmake command
# line "CONFIG+=rs_cppwarning"
CONFIG *= no_rs_cppwarning
rs_cppwarning:CONFIG -= no_rs_cppwarning
2015-09-04 11:48:20 -04:00
2017-02-26 07:06:38 -05:00
# To disable GXS mail append the following assignation to qmake command line
2017-03-01 20:37:53 -05:00
# "CONFIG+=no_rs_gxs_trans"
CONFIG *= rs_gxs_trans
#no_rs_gxs_trans:CONFIG -= rs_gxs_trans ## Disabing not supported ATM
2017-01-14 17:20:42 -05:00
2017-05-30 09:43:43 -04:00
# To enable GXS based async chat append the following assignation to qmake
# command line "CONFIG+=rs_async_chat"
CONFIG *= no_rs_async_chat
rs_async_chat:CONFIG -= no_rs_async_chat
2017-07-25 12:08:37 -04:00
# To select your MacOsX version append the following assignation to qmake
2017-12-08 13:00:34 -05:00
# command line "CONFIG+=rs_macos10.11" where 10.11 depends your version
2017-07-25 12:08:37 -04:00
CONFIG *= rs_macos10.11
rs_macos10.8:CONFIG -= rs_macos10.11
rs_macos10.9:CONFIG -= rs_macos10.11
rs_macos10.10:CONFIG -= rs_macos10.11
rs_macos10.12:CONFIG -= rs_macos10.11
2017-05-30 09:43:43 -04:00
2017-01-14 17:20:42 -05:00
2017-08-04 15:38:44 -04:00
linux-* {
2015-08-31 11:55:30 -04:00
isEmpty(PREFIX) { PREFIX = "/usr" }
2015-08-31 12:01:55 -04:00
isEmpty(BIN_DIR) { BIN_DIR = "$${PREFIX}/bin" }
2017-07-17 04:44:27 -04:00
isEmpty(INC_DIR) { INC_DIR = "$${PREFIX}/include/retroshare" }
2015-08-31 11:55:30 -04:00
isEmpty(LIB_DIR) { LIB_DIR = "$${PREFIX}/lib" }
2017-07-17 04:44:27 -04:00
isEmpty(DATA_DIR) { DATA_DIR = "$${PREFIX}/share/retroshare" }
2017-08-04 15:38:44 -04:00
isEmpty(PLUGIN_DIR) { PLUGIN_DIR = "$${LIB_DIR}/retroshare/extensions6" }
2016-12-03 14:04:25 -05:00
rs_autologin {
!macx {
DEFINES *= HAS_GNOME_KEYRING
PKGCONFIG *= gnome-keyring-1
}
}
2015-08-31 11:55:30 -04:00
}
2015-09-04 11:43:52 -04:00
2016-07-28 08:08:49 -04:00
android-g++ {
2017-03-15 18:11:50 -04:00
isEmpty(NATIVE_LIBS_TOOLCHAIN_PATH) {
NATIVE_LIBS_TOOLCHAIN_PATH = $$(NATIVE_LIBS_TOOLCHAIN_PATH)
}
2017-04-07 12:26:08 -04:00
retroshare_qml_app {
CONFIG -= no_retroshare_android_notify_service
CONFIG *= retroshare_android_notify_service
}
2016-08-02 18:48:19 -04:00
CONFIG *= no_libresapihttpserver no_sqlcipher upnp_libupnp
CONFIG -= libresapihttpserver sqlcipher upnp_miniupnpc
2016-09-15 07:07:13 -04:00
QT *= androidextras
2016-07-28 08:08:49 -04:00
DEFINES *= "fopen64=fopen"
DEFINES *= "fseeko64=fseeko"
DEFINES *= "ftello64=ftello"
2017-03-15 18:11:50 -04:00
INCLUDEPATH += $$NATIVE_LIBS_TOOLCHAIN_PATH/sysroot/usr/include
2016-07-28 08:08:49 -04:00
LIBS *= -L$$NDK_TOOLCHAIN_PATH/sysroot/usr/lib/
2016-08-22 21:19:33 -04:00
LIBS *= -lbz2 -lupnp -lixml -lthreadutil -lsqlite3
2017-03-15 18:11:50 -04:00
ANDROID_EXTRA_LIBS *= $$NATIVE_LIBS_TOOLCHAIN_PATH/sysroot/usr/lib/libsqlite3.so
2016-08-02 18:48:19 -04:00
# message(LIBS: $$LIBS)
# message(ANDROID_EXTRA_LIBS: $$ANDROID_EXTRA_LIBS)
2016-08-22 21:19:33 -04:00
# message(ANDROID_PLATFORM: $$ANDROID_PLATFORM)
# message(ANDROID_PLATFORM_ROOT_PATH: $$ANDROID_PLATFORM_ROOT_PATH)
2017-10-16 14:07:52 -04:00
# message(NATIVE_LIBS_TOOLCHAIN_PATH: $$NATIVE_LIBS_TOOLCHAIN_PATH)
2016-07-28 08:08:49 -04:00
}
2015-09-23 12:25:03 -04:00
win32 {
message(***retroshare.pri:Win32)
exists($$PWD/../libs) {
2015-09-24 09:51:14 -04:00
message(Get pre-compiled libraries.)
2015-09-23 12:25:03 -04:00
isEmpty(PREFIX) { PREFIX = "$$PWD/../libs" }
isEmpty(BIN_DIR) { BIN_DIR = "$${PREFIX}/bin" }
isEmpty(INC_DIR) { INC_DIR = "$${PREFIX}/include" }
isEmpty(LIB_DIR) { LIB_DIR = "$${PREFIX}/lib" }
}
2016-08-14 08:11:01 -04:00
# Check for msys2
2016-08-17 17:58:22 -04:00
PREFIX_MSYS2 = $$(MINGW_PREFIX)
isEmpty(PREFIX_MSYS2) {
2016-08-15 10:16:46 -04:00
exists(C:/msys32/mingw32/include) {
message(MINGW_PREFIX is empty. Set it in your environment variables.)
message(Found it here:C:\msys32\mingw32)
2016-08-17 17:58:22 -04:00
PREFIX_MSYS2 = "C:\msys32\mingw32"
2016-08-15 10:16:46 -04:00
}
exists(C:/msys64/mingw32/include) {
message(MINGW_PREFIX is empty. Set it in your environment variables.)
message(Found it here:C:\msys64\mingw32)
2016-08-17 17:58:22 -04:00
PREFIX_MSYS2 = "C:\msys64\mingw32"
2016-08-15 10:16:46 -04:00
}
}
2016-08-14 08:11:01 -04:00
!isEmpty(PREFIX_MSYS2) {
message(msys2 is installed.)
2015-09-23 12:25:03 -04:00
BIN_DIR += "$${PREFIX_MSYS2}/bin"
INC_DIR += "$${PREFIX_MSYS2}/include"
LIB_DIR += "$${PREFIX_MSYS2}/lib"
}
}
2017-12-15 04:01:30 -05:00
macx {
rs_macos10.8 {
message(***retroshare.pri: Set Target and SDK to MacOS 10.8 )
QMAKE_MACOSX_DEPLOYMENT_TARGET=10.8
QMAKE_MAC_SDK = macosx10.8
}
2017-07-25 12:08:37 -04:00
2017-12-15 04:01:30 -05:00
rs_macos10.9 {
message(***retroshare.pri: Set Target and SDK to MacOS 10.9 )
QMAKE_MACOSX_DEPLOYMENT_TARGET=10.9
QMAKE_MAC_SDK = macosx10.9
}
2017-07-25 12:08:37 -04:00
2017-12-15 04:01:30 -05:00
rs_macos10.10 {
message(***retroshare.pri: Set Target and SDK to MacOS 10.10 )
QMAKE_MACOSX_DEPLOYMENT_TARGET=10.10
QMAKE_MAC_SDK = macosx10.10
}
2017-07-25 12:08:37 -04:00
2017-12-15 04:01:30 -05:00
rs_macos10.11 {
message(***retroshare.pri: Set Target and SDK to MacOS 10.11 )
QMAKE_MACOSX_DEPLOYMENT_TARGET=10.11
QMAKE_MAC_SDK = macosx10.11
}
2017-07-25 12:08:37 -04:00
2017-12-15 04:01:30 -05:00
rs_macos10.12 {
message(***retroshare.pri: Set Target and SDK to MacOS 10.12 )
QMAKE_MACOSX_DEPLOYMENT_TARGET=10.12
QMAKE_MAC_SDK = macosx10.12
QMAKE_CXXFLAGS += -Wno-nullability-completeness
QMAKE_CFLAGS += -Wno-nullability-completeness
}
2017-07-25 12:08:37 -04:00
2015-12-21 11:25:02 -05:00
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"
2017-07-25 12:08:37 -04:00
CONFIG += c++11
2015-12-21 11:25:02 -05:00
}
2015-09-04 11:43:52 -04:00
unfinished {
CONFIG += gxscircles
CONFIG += gxsthewire
CONFIG += gxsphotoshare
CONFIG += wikipoos
}
2015-09-04 11:52:25 -04:00
wikipoos:DEFINES *= RS_USE_WIKI
2016-08-02 18:48:19 -04:00
rs_gxs:DEFINES *= RS_ENABLE_GXS
2016-07-14 16:48:44 -04:00
libresapilocalserver:DEFINES *= LIBRESAPI_LOCAL_SERVER
2017-03-28 05:18:27 -04:00
qt_dependencies:DEFINES *= LIBRESAPI_QT
2016-08-02 18:48:19 -04:00
libresapihttpserver:DEFINES *= ENABLE_WEBUI
sqlcipher:DEFINES -= NO_SQLCIPHER
no_sqlcipher:DEFINES *= NO_SQLCIPHER
2016-12-03 14:04:25 -05:00
rs_autologin {
DEFINES *= RS_AUTOLOGIN
2016-12-15 05:20:13 -05:00
warning("You have enabled RetroShare auto-login, this is discouraged. The usage of auto-login on some linux distributions may allow someone having access to your session to steal the SSL keys of your node location and therefore compromise your security")
2016-12-03 14:04:25 -05:00
}
2016-12-21 16:05:57 -05:00
2017-08-20 07:17:28 -04:00
rs_onlyhiddennode {
DEFINES *= RS_ONLYHIDDENNODE
warning("QMAKE: You have enabled only hidden node.")
}
2017-07-17 10:04:52 -04:00
no_rs_deprecatedwarning {
2016-12-21 16:05:57 -05:00
QMAKE_CXXFLAGS += -Wno-deprecated
QMAKE_CXXFLAGS += -Wno-deprecated-declarations
2017-01-14 17:12:50 -05:00
DEFINES *= RS_NO_WARN_DEPRECATED
2017-03-01 20:37:53 -05:00
warning("QMAKE: You have disabled deprecated warnings.")
2016-12-21 16:05:57 -05:00
}
2017-01-14 17:12:50 -05:00
2017-07-17 10:04:52 -04:00
no_rs_cppwarning {
2017-01-21 10:51:37 -05:00
QMAKE_CXXFLAGS += -Wno-cpp
DEFINES *= RS_NO_WARN_CPP
2017-03-01 20:37:53 -05:00
warning("QMAKE: You have disabled C preprocessor warnings.")
2017-01-21 10:51:37 -05:00
}
2017-03-01 20:37:53 -05:00
rs_gxs_trans {
DEFINES *= RS_GXS_TRANS
2017-02-26 07:13:55 -05:00
greaterThan(QT_MAJOR_VERSION, 4) {
CONFIG += c++11
} else {
QMAKE_CXXFLAGS += -std=c++0x
}
}
2017-05-30 09:43:43 -04:00
rs_async_chat {
DEFINES *= RS_ASYNC_CHAT
}
2017-07-18 10:34:56 -04:00
rs_chatserver {
DEFINES *= RS_CHATSERVER
}
2017-11-19 14:15:36 -05:00
###########################################################################################################################################################
#
# V07_NON_BACKWARD_COMPATIBLE_CHANGE_001:
#
# What: Computes the node id by performing a sha256 hash of the certificate's PGP signature, instead of simply picking up the last 20 bytes of it.
#
# Why: There is no real risk in forging a certificate with the same ID as the authentication is performed over the PGP signature of the certificate
# which hashes the full SSL certificate (i.e. the full serialized CERT_INFO structure). However the possibility to
# create two certificates with the same IDs is a problem, as it can be used to cause disturbance in the software.
#
2017-11-21 18:02:11 -05:00
# Backward compat: connexions impossible with non patched peers older than Nov 2017, probably because the SSL id that is computed is not the same on both side,
2017-11-19 14:15:36 -05:00
# and in particular unpatched peers see a cerficate with ID different (because computed with the old method) than the ID that was
# submitted when making friends.
#
# Note: the advantage of basing the ID on the signature rather than the public key is not very clear, given that the signature is based on a hash
# of the public key (and the rest of the certificate info).
#
# V07_NON_BACKWARD_COMPATIBLE_CHANGE_002:
#
# What: Use RSA+SHA256 instead of RSA+SHA1 for PGP certificate signatures
#
# Why: Sha1 is likely to be prone to primary collisions anytime soon, so it is urgent to turn to a more secure solution.
#
2017-11-21 18:02:11 -05:00
# Backward compat: unpatched peers after Nov 2017 are able to verify signatures since openpgp-sdk already handle it.
2017-11-19 14:15:36 -05:00
#
# V07_NON_BACKWARD_COMPATIBLE_CHANGE_003:
#
# What: Do not hash PGP certificate twice when signing
#
# Why: hasing twice is not per se a security issue, but it makes it harder to change the settings for hashing.
#
2017-11-21 18:02:11 -05:00
# Backward compat: patched peers cannot connect to non patched peers older than Nov 2017.
2017-11-19 14:15:36 -05:00
###########################################################################################################################################################
2017-11-22 16:56:40 -05:00
#CONFIG += rs_v07_changes
2017-11-19 14:15:36 -05:00
rs_v07_changes {
DEFINES += V07_NON_BACKWARD_COMPATIBLE_CHANGE_001
DEFINES += V07_NON_BACKWARD_COMPATIBLE_CHANGE_002
DEFINES += V07_NON_BACKWARD_COMPATIBLE_CHANGE_003
}