Travis: add iOS target built with CMake (#378)
Issue #377 suggested that CMake builds for iOS with c-ares were broken. This PR adds an automatic Travis build for iOS CMake.
Fix By: Brad House (@bradh352)
diff --git a/.travis.yml b/.travis.yml
index 1d52184..426a21f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -58,6 +58,11 @@
compiler: clang
language: objective-c
env: BUILD_TYPE=ios
+ - os: osx
+ osx_image: xcode11.4
+ compiler: clang
+ language: objective-c
+ env: BUILD_TYPE=ios-cmake
install:
- if [ "$TRAVIS_OS_NAME" != "osx" ]; then pip install --user cpp-coveralls > /dev/null; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew reinstall libtool > /dev/null; fi
@@ -107,6 +112,15 @@
export CXXFLAGS=$IOSFLAGS
export LDFLAGS=$IOSFLAGS
fi
+ - |
+ if [ "$BUILD_TYPE" = "ios-cmake" ]; then
+ export SYSROOT="$(xcode-select -print-path)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/"
+ export IOSFLAGS="-miphoneos-version-min=10.0"
+ export ARCHITECTURES="armv7;armv7s;arm64"
+ export CFLAGS=$IOSFLAGS
+ export CXXFLAGS=$IOSFLAGS
+ export LDFLAGS=$IOSFLAGS
+ fi
script:
- ./travis/build.sh && ./travis/test.sh
- if [ "$BUILD_TYPE" = "normal" ]; then ./travis/distcheck.sh ; fi
diff --git a/travis/build.sh b/travis/build.sh
index 6526591..6dfe547 100755
--- a/travis/build.sh
+++ b/travis/build.sh
@@ -1,12 +1,26 @@
#!/bin/sh
set -e
-if [ "$BUILD_TYPE" != "cmake" -a "$BUILD_TYPE" != "valgrind" ]; then
+if [ "$BUILD_TYPE" != "cmake" -a "$BUILD_TYPE" != "valgrind" -a "$BUILD_TYPE" != "ios-cmake" ]; then
./buildconf
mkdir atoolsbld
cd atoolsbld
$SCAN_WRAP ../configure --disable-symbol-hiding --enable-expose-statics --enable-maintainer-mode --enable-debug $CONFIG_OPTS
$SCAN_WRAP make
+elif [ "$BUILD_TYPE" = "ios-cmake" ] ; then
+ mkdir cmakebld
+ cd cmakebld
+ cmake \
+ -DCMAKE_BUILD_TYPE=DEBUG \
+ -DCARES_STATIC=ON \
+ -DCARES_STATIC_PIC=ON \
+ -DCARES_BUILD_TESTS=OFF \
+ -DCMAKE_C_FLAGS=$CFLAGS \
+ -DCMAKE_CXX_FLAGS=$CXXFLAGS \
+ -DCMAKE_OSX_SYSROOT=$SYSROOT \
+ -DCMAKE_OSX_ARCHITECTURES=$ARCHITECTURES \
+ ..
+ make
else
# Use cmake for valgrind to prevent libtool script wrapping of tests that interfere with valgrind
mkdir cmakebld
diff --git a/travis/test.sh b/travis/test.sh
index f245500..fee3858 100755
--- a/travis/test.sh
+++ b/travis/test.sh
@@ -6,7 +6,7 @@
[ -z "$TEST_FILTER" ] && export TEST_FILTER="--gtest_filter=-*LiveSearchANY*"
# No tests for ios as it is a cross-compile
-if [ "$BUILD_TYPE" = "ios" ] ; then
+if [ "$BUILD_TYPE" = "ios" -o "$BUILD_TYPE" = "ios-cmake" ] ; then
exit 0
fi