From 39ccc4cbe6e3befe88b41d9f6a6e27c4020f8d9a Mon Sep 17 00:00:00 2001 From: sidneys Date: Mon, 2 Jul 2018 11:12:47 +0200 Subject: [PATCH 1/9] fix(macos-build): use standard methods for detecting default XCode installation and default macOS platform SDK --- clean_build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clean_build.sh b/clean_build.sh index 3085c08f..fc1065a5 100755 --- a/clean_build.sh +++ b/clean_build.sh @@ -14,7 +14,7 @@ if [ "$(uname)" = "Darwin" ]; then # OSX needs a lot of extra help, poor thing # run the osx_environment.sh script to fix paths . ./osx_environment.sh - B_CMAKE_FLAGS="-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 $B_CMAKE_FLAGS" + B_CMAKE_FLAGS="-DCMAKE_OSX_SYSROOT=$(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 $B_CMAKE_FLAGS" fi # allow local customizations to build environment [ -r ./build_env.sh ] && . ./build_env.sh From f928c81afc148393f381c4f762af975cc99430c8 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Sun, 1 Jul 2018 15:14:55 +0300 Subject: [PATCH 2/9] OSX: Add support for building on macports --- CMakeLists.txt | 27 +++++++++++++++++++++------ osx_environment.sh | 34 +++++++++++++++++++++++++++------- 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a2a4eb1..912d4354 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -302,13 +302,28 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") ${OPENSSL_ROOT}/lib/ssleay32.lib ) elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set (OPENSSL_ROOT /usr/local/opt/openssl) - include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include) - set (OPENSSL_LIBS - ${OPENSSL_ROOT}/lib/libssl.a - ${OPENSSL_ROOT}/lib/libcrypto.a - ) + if (IS_DIRECTORY /usr/local/opt/openssl) + # brew + set (OPENSSL_ROOT /usr/local/opt/openssl) + + include_directories (BEFORE SYSTEM ${OPENSSL_ROOT}/include) + + set (OPENSSL_LIBS + ${OPENSSL_ROOT}/lib/libssl.a + ${OPENSSL_ROOT}/lib/libcrypto.a + ) + else(IS_DIRECTORY /opt/local) + # macports + set (OPENSSL_ROOT /opt/local) + + set (OPENSSL_LIBS + ${OPENSSL_ROOT}/lib/libssl.a + ${OPENSSL_ROOT}/lib/libcrypto.a + z + ) + endif() + elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set (OPENSSL_LIBS ssl crypto) else() diff --git a/osx_environment.sh b/osx_environment.sh index f05ba585..82b40f17 100644 --- a/osx_environment.sh +++ b/osx_environment.sh @@ -1,16 +1,36 @@ -#!/bin/sh +#!/bin/bash if [ ! $BARRIER_BUILD_ENV ]; then printf "Modifying environment for Barrier build..." - QT_PATH=$(brew --prefix qt) - OPENSSL_PATH=$(brew --prefix openssl) + if command -v brew; then + printf "Detected Homebrew" + QT_PATH=$(brew --prefix qt) + OPENSSL_PATH=$(brew --prefix openssl) + + export BARRIER_BUILD_BREW=1 + export CMAKE_PREFIX_PATH="$QT_PATH:$CMAKE_PREFIX_PATH" + export LD_LIBRARY_PATH="$OPENSSL_PATH/lib:$LD_LIBRARY_PATH" + export CPATH="$OPENSSL_PATH/include:$CPATH" + export PKG_CONFIG_PATH="$OPENSSL_PATH/lib/pkgconfig:$PKG_CONFIG_PATH" + + elif command -v port; then + printf "Detected Macports" + + if [ ! -d /opt/local/lib/cmake/Qt5 ]; then + printf "Please install qt5-qtbase port" + fi + export BARRIER_BUILD_MACPORTS=1 + export CMAKE_PREFIX_PATH="/opt/local/lib/cmake/Qt5:$CMAKE_PREFIX_PATH" + export LD_LIBRARY_PATH="/opt/local/lib:$LD_LIBRARY_PATH" + export CPATH="/opt/local/include:$CPATH" + export PKG_CONFIG_PATH="/opt/local/libexec/qt5/lib/pkgconfig:$PKG_CONFIG_PATH" + else + printf "Neither Homebrew nor Macports is installed. Can't get dependency paths" + exit 1 + fi - export CMAKE_PREFIX_PATH="$QT_PATH:$CMAKE_PREFIX_PATH" - export LD_LIBRARY_PATH="$OPENSSL_PATH/lib:$LD_LIBRARY_PATH" - export CPATH="$OPENSSL_PATH/include:$CPATH" - export PKG_CONFIG_PATH="$OPENSSL_PATH/lib/pkgconfig:$PKG_CONFIG_PATH" export BARRIER_BUILD_ENV=1 printf "done\n" From 5467b90982228db5ba3c70050f6590a5a9affffb Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Mon, 2 Jul 2018 20:50:28 +0300 Subject: [PATCH 3/9] OSX: Prefer Macports over Homebrew if available --- CMakeLists.txt | 20 ++++++++++---------- osx_environment.sh | 27 ++++++++++++++------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 912d4354..5bc2cfaf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -303,7 +303,16 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") ) elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - if (IS_DIRECTORY /usr/local/opt/openssl) + if (IS_DIRECTORY /opt/local) + # macports + set (OPENSSL_ROOT /opt/local) + + set (OPENSSL_LIBS + ${OPENSSL_ROOT}/lib/libssl.a + ${OPENSSL_ROOT}/lib/libcrypto.a + z + ) + elseif (IS_DIRECTORY /usr/local/opt/openssl) # brew set (OPENSSL_ROOT /usr/local/opt/openssl) @@ -313,15 +322,6 @@ elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") ${OPENSSL_ROOT}/lib/libssl.a ${OPENSSL_ROOT}/lib/libcrypto.a ) - else(IS_DIRECTORY /opt/local) - # macports - set (OPENSSL_ROOT /opt/local) - - set (OPENSSL_LIBS - ${OPENSSL_ROOT}/lib/libssl.a - ${OPENSSL_ROOT}/lib/libcrypto.a - z - ) endif() elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux") diff --git a/osx_environment.sh b/osx_environment.sh index 82b40f17..e30a0c00 100644 --- a/osx_environment.sh +++ b/osx_environment.sh @@ -4,28 +4,29 @@ if [ ! $BARRIER_BUILD_ENV ]; then printf "Modifying environment for Barrier build..." - if command -v brew; then + if command -v port; then + printf "Detected Macports" + + if [ ! -d /opt/local/lib/cmake/Qt5 ]; then + printf "Please install qt5-qtbase port" + fi + export BARRIER_BUILD_MACPORTS=1 + export CMAKE_PREFIX_PATH="/opt/local/lib/cmake/Qt5:$CMAKE_PREFIX_PATH" + export LD_LIBRARY_PATH="/opt/local/lib:$LD_LIBRARY_PATH" + export CPATH="/opt/local/include:$CPATH" + export PKG_CONFIG_PATH="/opt/local/libexec/qt5/lib/pkgconfig:$PKG_CONFIG_PATH" + + elif command -v brew; then printf "Detected Homebrew" QT_PATH=$(brew --prefix qt) OPENSSL_PATH=$(brew --prefix openssl) - export BARRIER_BUILD_BREW=1 + export BARRIER_BUILD_BREW=1 export CMAKE_PREFIX_PATH="$QT_PATH:$CMAKE_PREFIX_PATH" export LD_LIBRARY_PATH="$OPENSSL_PATH/lib:$LD_LIBRARY_PATH" export CPATH="$OPENSSL_PATH/include:$CPATH" export PKG_CONFIG_PATH="$OPENSSL_PATH/lib/pkgconfig:$PKG_CONFIG_PATH" - elif command -v port; then - printf "Detected Macports" - - if [ ! -d /opt/local/lib/cmake/Qt5 ]; then - printf "Please install qt5-qtbase port" - fi - export BARRIER_BUILD_MACPORTS=1 - export CMAKE_PREFIX_PATH="/opt/local/lib/cmake/Qt5:$CMAKE_PREFIX_PATH" - export LD_LIBRARY_PATH="/opt/local/lib:$LD_LIBRARY_PATH" - export CPATH="/opt/local/include:$CPATH" - export PKG_CONFIG_PATH="/opt/local/libexec/qt5/lib/pkgconfig:$PKG_CONFIG_PATH" else printf "Neither Homebrew nor Macports is installed. Can't get dependency paths" exit 1 From af789958f055d48163842ce691d9420cba33c458 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Mon, 2 Jul 2018 20:39:04 +0300 Subject: [PATCH 4/9] travis: Rewrite the CI config to use platform matrix --- .travis.yml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 82f36c5f..79d38763 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,14 @@ language: cpp -before_install: -- sudo apt-get update -qq -- sudo apt-get install -qq libxtst-dev -- sudo apt-get install -qq qtdeclarative5-dev -- sudo apt-get install -qq libavahi-compat-libdnssd-dev -script: sh -x ./clean_build.sh -# skip install phase since we have a customized install package -# creation tool for each supported platform + +matrix: + include: + - os: linux + addons: + apt: + packages: + - libxtst-dev + - qtdeclarative5-dev + - libavahi-compat-libdnssd-dev + script: sh -x ./clean_build.sh + install: true From 4c0690dd9668410aef73dbeef02c94144783584c Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Mon, 2 Jul 2018 20:42:58 +0300 Subject: [PATCH 5/9] travis: Add macports-based OSX script --- .travis.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.travis.yml b/.travis.yml index 79d38763..7c260942 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,4 +11,15 @@ matrix: - libavahi-compat-libdnssd-dev script: sh -x ./clean_build.sh + - os: osx + osx_image: xcode9 + script: + - export COLUMNS=80 + - curl -LO https://raw.githubusercontent.com/GiovanniBussi/macports-ci/master/macports-ci + - chmod +x ./macports-ci + - ./macports-ci install + - PATH="$PATH:/opt/local/bin" + - sudo port -N install qt5-qtbase openssl + - sh -x ./clean_build.sh + install: true From 55c74e9075b17376d8eff54493c964161400da5f Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Mon, 2 Jul 2018 22:34:21 +0300 Subject: [PATCH 6/9] travis: Add homebrew-based OSX script --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis.yml b/.travis.yml index 7c260942..032d9f52 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,4 +22,11 @@ matrix: - sudo port -N install qt5-qtbase openssl - sh -x ./clean_build.sh + - os: osx + osx_image: xcode9 + script: + - brew update + - brew install qt openssl + - sh -x ./clean_build.sh + install: true From ccfa11ca7b43ee3da2870493cafdaf57035db411 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Lucr=C3=A8ce=20C=C3=A9leste?= Date: Mon, 2 Jul 2018 22:40:54 -0400 Subject: [PATCH 7/9] [Travis] use container builds for linux (#85) Things should build faster --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 032d9f52..43bcd894 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,8 @@ language: cpp matrix: include: - os: linux + sudo: false + dist: trusty addons: apt: packages: From cc69299ea39bd39caad54ae349564e22593eb4df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Lucr=C3=A8ce=20C=C3=A9leste?= Date: Mon, 2 Jul 2018 23:21:08 -0400 Subject: [PATCH 8/9] Merge pkgconfig branch into master (#86) * use pkg-config for finding avahi include dir * [Travis] bring up to date --- CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5bc2cfaf..2a3308aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,6 +63,7 @@ if (UNIX) include (CheckIncludeFileCXX) include (CheckSymbolExists) include (CheckCSourceCompiles) + include (FindPkgConfig) check_include_file_cxx (istream HAVE_ISTREAM) check_include_file_cxx (ostream HAVE_OSTREAM) @@ -162,6 +163,11 @@ if (UNIX) include_directories("/usr/local/include" "/usr/local/include/avahi-compat-libdns_sd") link_directories("/usr/local/lib") endif() + if (${PKG_CONFIG_FOUND}) + pkg_check_modules (AVAHI_COMPAT REQUIRED avahi-compat-libdns_sd) + include_directories (BEFORE SYSTEM ${AVAHI_COMPAT_INCLUDE_DIRS}) + set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};${AVAHI_COMPAT_INCLUDE_DIRS}") + endif () set (XKBlib "X11/Xlib.h;X11/XKBlib.h") set (CMAKE_EXTRA_INCLUDE_FILES "${XKBlib};X11/extensions/Xrandr.h") From 5498836b6f6d0d56ef0a20f6b3795a714637f9ab Mon Sep 17 00:00:00 2001 From: walker0643 <> Date: Tue, 3 Jul 2018 16:55:57 -0400 Subject: [PATCH 9/9] fix formatting in last merge --- CMakeLists.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a3308aa..c98e468b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -163,11 +163,12 @@ if (UNIX) include_directories("/usr/local/include" "/usr/local/include/avahi-compat-libdns_sd") link_directories("/usr/local/lib") endif() - if (${PKG_CONFIG_FOUND}) - pkg_check_modules (AVAHI_COMPAT REQUIRED avahi-compat-libdns_sd) - include_directories (BEFORE SYSTEM ${AVAHI_COMPAT_INCLUDE_DIRS}) - set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};${AVAHI_COMPAT_INCLUDE_DIRS}") - endif () + + if (${PKG_CONFIG_FOUND}) + pkg_check_modules (AVAHI_COMPAT REQUIRED avahi-compat-libdns_sd) + include_directories (BEFORE SYSTEM ${AVAHI_COMPAT_INCLUDE_DIRS}) + set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES};${AVAHI_COMPAT_INCLUDE_DIRS}") + endif () set (XKBlib "X11/Xlib.h;X11/XKBlib.h") set (CMAKE_EXTRA_INCLUDE_FILES "${XKBlib};X11/extensions/Xrandr.h")