From 2b0f63a99fdaa3a72100a56de280bd3fe5d45cd5 Mon Sep 17 00:00:00 2001 From: romibi Date: Fri, 1 Sep 2017 10:06:10 +0200 Subject: [PATCH] Fix OSX compile and deploy Set additional compile flag Fix FindLdap.cmake for OSX Use older OSX image on travis (didn't get deploy to work on newer xcode, yet) Fix DMG creation (sometimes fails if no volume size is provided) --- .travis.yml | 17 ++++++++--------- cmake/FindLdap.cmake | 4 ++++ cmake/QuasselCompileSettings.cmake | 2 +- scripts/build/macosx_makePackage.sh | 3 ++- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5ce83c6932..5db7c03205 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ os: - linux - - osx sudo: required dist: trusty @@ -17,13 +16,14 @@ env: - QT_VERSION=qt5 matrix: + include: + - os: osx + compiler: gcc + env: QT_VERSION=qt5 + osx_image: xcode6.4 exclude: - compiler: clang env: QT_VERSION=qt4 - - os: osx - compiler: clang - - os: osx - env: QT_VERSION=qt4 install: |- if [ "$TRAVIS_OS_NAME" == "linux" ] @@ -50,13 +50,12 @@ script: |- make elif [ "$TRAVIS_OS_NAME" == "osx" ] then + PATH=$PATH:/usr/local/opt/qt5/bin if [[ "$TRAVIS_TAG" != "" && "$GH_TOKEN" != "" ]] then - PATH=$PATH:/usr/local/opt/qt5/bin - # The LDAP headers found in OSX Frameworks seem to be broken - cmake -G"Ninja" .. -DCMAKE_BUILD_TYPE=Release -DDEPLOY=ON -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5 -DLDAP_INCLUDE_DIR=/usr/include/ + cmake -G"Ninja" .. -DCMAKE_BUILD_TYPE=Release -DDEPLOY=ON else - cmake -G"Ninja" .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5 -DLDAP_INCLUDE_DIR=/usr/include/ + cmake -G"Ninja" .. -DCMAKE_BUILD_TYPE=Release fi ninja install fi diff --git a/cmake/FindLdap.cmake b/cmake/FindLdap.cmake index 5532547888..6a3b54043a 100644 --- a/cmake/FindLdap.cmake +++ b/cmake/FindLdap.cmake @@ -15,6 +15,10 @@ endif(LDAP_INCLUDE_DIR AND LDAP_LIBRARIES) # Attempt to link against ldap.h regardless of platform! FIND_PATH(LDAP_INCLUDE_DIR ldap.h) +# On osx replace invalid ldap.h +if("${LDAP_INCLUDE_DIR}" STREQUAL "/System/Library/Frameworks/LDAP.framework/Headers") + set(LDAP_INCLUDE_DIR "/usr/include/") +endif() FIND_LIBRARY(LDAP_LIBRARIES NAMES ldap) FIND_LIBRARY(LBER_LIBRARIES NAMES lber) diff --git a/cmake/QuasselCompileSettings.cmake b/cmake/QuasselCompileSettings.cmake index 1e9646a7cb..97e7c380b8 100644 --- a/cmake/QuasselCompileSettings.cmake +++ b/cmake/QuasselCompileSettings.cmake @@ -80,6 +80,6 @@ endif() # Mac build stuff if (APPLE AND DEPLOY) set(CMAKE_OSX_ARCHITECTURES "x86_64") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.9") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.9 -stdlib=libc++") set(CMAKE_OSX_SYSROOT "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk") endif() diff --git a/scripts/build/macosx_makePackage.sh b/scripts/build/macosx_makePackage.sh index 05a1cd2a61..38ca285f12 100755 --- a/scripts/build/macosx_makePackage.sh +++ b/scripts/build/macosx_makePackage.sh @@ -80,5 +80,6 @@ case $BUILDTYPE in exit 1 ;; esac -hdiutil create -srcfolder ${PACKAGETMPDIR} -format UDBZ -volname "Quassel ${BUILDTYPE} - ${QUASSEL_VERSION}" "${WORKINGDIR}${QUASSEL_DMG}" >/dev/null +PACKAGESIZE=$(echo "$(du -ms ${PACKAGETMPDIR} | cut -f1) * 1.05" | bc) +hdiutil create -srcfolder ${PACKAGETMPDIR} -format UDBZ -size ${PACKAGESIZE}M -volname "Quassel ${BUILDTYPE} - ${QUASSEL_VERSION}" "${WORKINGDIR}${QUASSEL_DMG}" >/dev/null rm -rf ${PACKAGETMPDIR}