fixed merge with upstream/master

This commit is contained in:
csoler 2019-01-27 20:04:44 +01:00
commit 7c4e8580a4
No known key found for this signature in database
GPG Key ID: 7BCA522266C0804C
7 changed files with 138 additions and 42 deletions

View File

@ -10,7 +10,7 @@ matrix:
sudo: required
compiler: gcc
- os: osx
osx_image: xcode6.2
osx_image: xcode9.3
compiler: clang
sudo: false
@ -19,8 +19,12 @@ before_install:
- if [ $TRAVIS_OS_NAME == linux ]; then sudo apt-get install -y build-essential libssl-dev libsqlcipher-dev libbz2-dev libmicrohttpd-dev libsqlite3-dev libupnp-dev pkg-config qt5-default libxss-dev qtmultimedia5-dev libqt5x11extras5-dev libqt5designer5 libxapian-dev qttools5-dev; fi
- if [ $TRAVIS_OS_NAME == osx ]; then brew update ; fi
- if [ $TRAVIS_OS_NAME == osx ]; then brew install qt openssl miniupnpc libmicrohttpd sqlcipher xapian; fi
- if [ $TRAVIS_OS_NAME == osx ]; then brew link --force qt ; fi
- if [ $TRAVIS_OS_NAME == osx ]; then brew install ccach; export PATH="/usr/local/opt/ccache/libexec:$PATH" ; fi
- if [ $TRAVIS_OS_NAME == osx ]; then brew install qt5; fi
- if [ $TRAVIS_OS_NAME == osx ]; then brew link --force qt5 ; fi
- if [ $TRAVIS_OS_NAME == osx ]; then brew install openssl miniupnpc libmicrohttpd sqlcipher xapian; fi
- if [ $TRAVIS_OS_NAME == osx ]; then brew install p7zip; fi
- if [ $TRAVIS_OS_NAME == osx ]; then npm install -g appdmg; fi
- wget https://github.com/Tencent/rapidjson/archive/v1.1.0.tar.gz
- tar -xf v1.1.0.tar.gz
@ -44,20 +48,19 @@ addons:
before_script:
- if [ $TRAVIS_OS_NAME == linux ]; then qmake QMAKE_CC=$CC QMAKE_CXX=$CXX; fi
- if [ $TRAVIS_OS_NAME == osx ]; then echo TEMPORARILY DISABLED qmake QMAKE_CC=$CC QMAKE_CXX=$CXX CONFIG+=rs_macos10.12 INCLUDEPATH+=/usr/local/opt/openssl/include/ QMAKE_LIBDIR+=/usr/local/opt/openssl/lib/; fi
- if [ $TRAVIS_OS_NAME == osx ]; then qmake QMAKE_CC=$CC QMAKE_CXX=$CXX CONFIG+=rs_macos10.13 CONFIG+=no_retroshare_plugins INCLUDEPATH+=/usr/local/opt/openssl/include/ INCLUDEPATH+=/usr/local/Cellar/sqlcipher/4.0.1/include INCLUDEPATH+=/usr/local/Cellar/libmicrohttpd/0.9.62_1/include QMAKE_LIBDIR+=/usr/local/opt/openssl/lib/ QMAKE_LIBDIR+=/usr/local/Cellar/libmicrohttpd/0.9.62_1/lib QMAKE_LIBDIR+=/usr/local/Cellar/sqlcipher/4.0.1/lib; fi
script:
- if [ $TRAVIS_OS_NAME == osx ] && [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then make -j4; fi
after_success:
- if [ $TRAVIS_OS_NAME == osx ]; then chmod +x ./travis_makeOSXPackage.sh && ./travis_makeOSXPackage.sh ; fi
- if [ $TRAVIS_OS_NAME == linux ] && [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then make -j2; fi
- if [ $TRAVIS_OS_NAME == osx ] && [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then echo TEMPORARILY DISABLED make -j2; fi
#after_success:
# - if [ $TRAVIS_BRANCH == $TRAVIS_TAG ]; then rake deploy; fi
# branches:
# only:
# - master
# - travis
# - v0.6-MacOS-Travis-Deploy2
notifications:
email: false
@ -68,12 +71,14 @@ notifications:
- "%{repository}/%{branch} (%{commit} - %{author}): %{build_url}: %{message}"
- "Message: %{commit_message}"
- "Commit details: %{compare_url}"
# webhooks:
# urls:
# - https://webhooks.gitter.im/e/9502afd22ca6c8e85fb3
# on_success: change
# on_failure: always
# on_start: always
#env:
# - RVM=2.0.0 LANG="en_US.UTF-8"
deploy:
provider: releases
api_key:
secure: auwuhxelaMriNaXzT8I03xrh1s+STicNyNToOWFCAYKxkWWQ4WeaCO6kRDmQrejhizMUILGU+s4FrWTEhDsviftGAF86EgzxxbSBfsHHAP4t2C0pcXX8/WxEoh1IrUs7iGCIpl7O2cvWqGidc20ROeptSEd1uQgkHnn14D9A2YmXf8g52PzqivKkb6HKfkVTPdmNJkMBT5eDtEw6DIk+DvnvRo6b6uanvVAKS9CBwXOdA3rLzaD9bz0LrdL9X1CNoTkGROyez0Lsc4zTr70id2Xfp1MMmJAV6hgQy+iwE37wRyrxJf3dkh5SUAAMUC9Xnvh/iBKNQKdQGhj2WGcV7GZV9k6u9DA1w2H0kcrwt9KHUXdhEQ67yr6Boa9ZFwdDb5VIOtC6iHAoDZXharHhiuxi0K/bCtwNAajrMjBCm9mWhEKvtoxUUYxAJajhJkkO3ERaOU3zHE+06esDzGozd2YOEH8a74HhYy4xvhR05Yj00hAWLS2kIaUITiqmBf6Yuh5XwH7KCDcapxF59ROWqyicdwtbfWpvN8IvFuGKyxYuEfoT8WxZ4lZpo4Q9CrTB7gedJYJxYNfZE/okWoFBb4cpPI94PHo3DZPR7lVyQ60RNyeR0nOeqf8NW8cBT1G4jw3u1LEyAdyvup+54aALw0DCVyoDojSXB8s+AlQG2JE=
file: retroshare-gui/src/retroshare.dmg
skip_cleanup: true
on:
repo: retroshare/RetroShare
branch: v0.6-OSX-Deploy

View File

@ -121,7 +121,7 @@ void bdThread::join() /* waits for the the mTid thread to stop */
mMutex.lock();
{
#if defined(_WIN32) || defined(__MINGW32__)
#if defined(_WIN32) || defined(__MINGW32__) || defined(__APPLE__)
/* Its a struct in Windows compile and the member .p ist checked in the pthreads library */
#else
if(mTid > 0)

View File

@ -19,7 +19,6 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
* *
*******************************************************************************/
#define nullptr 0
#include "json.h"
#include <stdlib.h>
@ -33,6 +32,7 @@
#include <cctype>
#include <stack>
#include <cerrno>
#include "util/cxx11retrocompat.h"
#ifndef WIN32
#define _stricmp strcasecmp

View File

@ -277,11 +277,27 @@ struct DirStub : RsSerializable
{
RS_SERIAL_PROCESS(type);
RS_SERIAL_PROCESS(name);
#if defined(__GNUC__) && !defined(__clang__)
# pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif // defined(__GNUC__) && !defined(__clang__)
std::uintptr_t& handle(reinterpret_cast<std::uintptr_t&>(ref));
// (Cyril) We have to do this because on some systems (MacOS) uintptr_t is unsigned long which is not well defined. It is always
// preferable to force type serialization to the correct size rather than letting the compiler choose for us.
// /!\ This structure cannot be sent over the network. The serialization would be inconsistent.
if(sizeof(ref) == 4)
{
std::uint32_t& handle(reinterpret_cast<std::uint32_t&>(ref));
RS_SERIAL_PROCESS(handle);
}
else if(sizeof(ref) == 8)
{
std::uint64_t& handle(reinterpret_cast<std::uint64_t&>(ref));
RS_SERIAL_PROCESS(handle);
}
else
std::cerr << __PRETTY_FUNCTION__ << ": cannot serialize raw pointer of size " << sizeof(ref) << std::endl;
#if defined(__GNUC__) && !defined(__clang__)
# pragma GCC diagnostic pop
#endif // defined(__GNUC__) && !defined(__clang__)
@ -322,13 +338,32 @@ struct DirDetails : RsSerializable
#if defined(__GNUC__) && !defined(__clang__)
# pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif // defined(__GNUC__) && !defined(__clang__)
std::uintptr_t& handle(reinterpret_cast<std::uintptr_t&>(ref));
// (Cyril) We have to do this because on some systems (MacOS) uintptr_t is unsigned long which is not well defined. It is always
// preferable to force type serialization to the correct size rather than letting the compiler choose for us.
// /!\ This structure cannot be sent over the network. The serialization would be inconsistent.
if(sizeof(ref) == 4)
{
std::uint32_t& handle(reinterpret_cast<std::uint32_t&>(ref));
RS_SERIAL_PROCESS(handle);
std::uintptr_t& parentHandle(reinterpret_cast<std::uintptr_t&>(parent));
std::uint32_t& parentHandle(reinterpret_cast<std::uint32_t&>(parent));
RS_SERIAL_PROCESS(parentHandle);
}
else if(sizeof(ref) == 8)
{
std::uint64_t& handle(reinterpret_cast<std::uint64_t&>(ref));
RS_SERIAL_PROCESS(handle);
std::uint64_t& parentHandle(reinterpret_cast<std::uint64_t&>(parent));
RS_SERIAL_PROCESS(parentHandle);
}
else
std::cerr << __PRETTY_FUNCTION__ << ": cannot serialize raw pointer of size " << sizeof(ref) << std::endl;
#if defined(__GNUC__) && !defined(__clang__)
# pragma GCC diagnostic pop
#endif // defined(__GNUC__) && !defined(__clang__)
RS_SERIAL_PROCESS(prow);
RS_SERIAL_PROCESS(type);
RS_SERIAL_PROCESS(id);

View File

@ -154,6 +154,7 @@ 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
rs_macos10.13:CONFIG -= rs_macos10.11
# To enable JSON API append the following assignation to qmake command line
# "CONFIG+=rs_jsonapi"
@ -627,16 +628,34 @@ macx-* {
QMAKE_CXXFLAGS += -Wno-nullability-completeness
QMAKE_CFLAGS += -Wno-nullability-completeness
}
rs_macos10.13 {
message(***retroshare.pri: Set Target and SDK to MacOS 10.13 )
QMAKE_MACOSX_DEPLOYMENT_TARGET=10.13
QMAKE_MAC_SDK = macosx10.13
QMAKE_CXXFLAGS += -Wno-nullability-completeness
QMAKE_CFLAGS += -Wno-nullability-completeness
}
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"
# 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"
BIN_DIR += "/Applications/Xcode.app/Contents/Developer/usr/bin"
INC_DIR += "/usr/local/Cellar/miniupnpc/2.1/include"
INC_DIR += "/usr/local/Cellar/libmicrohttpd/0.9.62_1/include"
INC_DIR += "/usr/local/Cellar/sqlcipher/4.0.1/include"
LIB_DIR += "/usr/local/opt/openssl/lib/"
LIB_DIR += "/usr/local/Cellar/libmicrohttpd/0.9.62_1/lib"
LIB_DIR += "/usr/local/Cellar/sqlcipher/4.0.1/lib"
LIB_DIR += "/usr/local/Cellar/miniupnpc/2.1/lib"
CONFIG += c++11
INCLUDEPATH += "/usr/local/include"
RS_UPNP_LIB = miniupnpc
QT += macextras
}

37
travis_makeOSXPackage.sh Normal file
View File

@ -0,0 +1,37 @@
#!/bin/sh
# Install the 7z to create dmg archives.
brew install p7zip
# Package your app
echo "Packaging retroshare..."
#cd ${project_dir}/build/macOS/clang/x86_64/release/
cd retroshare-gui/src/
# Remove build directories that you don't want to deploy
rm -rf moc
rm -rf obj
rm -rf qrc
# if test "${TAG_NAME}" = "" ; then
# TAG_NAME = "no_tag" ;
# echo No specific tag used.
# fi
# This automatically creates retroshare.dmg
echo "Creating dmg archive..."
macdeployqt retroshare.app -dmg
#mv retroshare.dmg "retroshare_${TAG_NAME}.dmg"
# You can use the appdmg command line app to create your dmg file if
# you want to use a custom background and icon arrangement. I'm still
# working on this for my apps, myself. If you want to do this, you'll
# remove the -dmg option above.
# appdmg json-path YourApp_${TRAVIS_TAG}.dmg
# Copy other project files
# cp "${project_dir}/README.md" "README.md"
# cp "${project_dir}/LICENSE" "LICENSE"
# cp "${project_dir}/Qt License" "Qt License"