From: romibi Date: Fri, 1 Sep 2017 08:06:10 +0000 (+0200) Subject: Fix OSX compile and deploy X-Git-Tag: travis-deploy-test~190 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=8a7444f4ed825b65acc874d9c2e8359f82523ac0 Fix OSX compile and deploy Set additional compile flag Fix FindLdap.cmake for OSX Fix DMG creation (sometimes fails if no volume size is provided) Closes GH-304. --- diff --git a/.travis.yml b/.travis.yml index 5ce83c69..42fae1f5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ os: - linux - - osx sudo: required dist: trusty @@ -17,13 +16,13 @@ env: - QT_VERSION=qt5 matrix: + include: + - os: osx + compiler: gcc + env: QT_VERSION=qt5 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 +49,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 55325478..2c96faeb 100644 --- a/cmake/FindLdap.cmake +++ b/cmake/FindLdap.cmake @@ -15,7 +15,22 @@ endif(LDAP_INCLUDE_DIR AND LDAP_LIBRARIES) # Attempt to link against ldap.h regardless of platform! FIND_PATH(LDAP_INCLUDE_DIR ldap.h) + +# If we detect path to invalid ldap.h on osx, try /usr/include/ +# This might also be achievable with additional parameters to FIND_PATH. +string(TOLOWER ${LDAP_INCLUDE_DIR} ldapincludelower) +if("${ldapincludelower}" MATCHES "\\/system\\/library\\/frameworks\\/ldap\\.framework\\/headers") + set(LDAP_INCLUDE_DIR "/usr/include/") +endif() + FIND_LIBRARY(LDAP_LIBRARIES NAMES ldap) + +# On osx remove invalid ldap.h +string(TOLOWER ${LDAP_LIBRARIES} ldaplower) +if("${ldaplower}" MATCHES "\\/system\\/library\\/frameworks\\/ldap\\.framework") + set(LDAP_LIBRARIES FALSE) +endif() + FIND_LIBRARY(LBER_LIBRARIES NAMES lber) # It'd be nice to link against winldap on Windows, unfortunately diff --git a/cmake/QuasselCompileSettings.cmake b/cmake/QuasselCompileSettings.cmake index 905f6691..68fccdc0 100644 --- a/cmake/QuasselCompileSettings.cmake +++ b/cmake/QuasselCompileSettings.cmake @@ -80,6 +80,5 @@ 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_OSX_SYSROOT "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.9 -stdlib=libc++") endif() diff --git a/scripts/build/macosx_makePackage.sh b/scripts/build/macosx_makePackage.sh index 05a1cd2a..4f41171b 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.1" | bc) +hdiutil create -srcfolder ${PACKAGETMPDIR} -format UDBZ -size ${PACKAGESIZE}M -volname "Quassel ${BUILDTYPE} - ${QUASSEL_VERSION}" "${WORKINGDIR}${QUASSEL_DMG}" >/dev/null rm -rf ${PACKAGETMPDIR}