diff --git a/.travis.yml b/.travis.yml index 4ed0f723b..6d85c0b65 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,24 +1,30 @@ language: cpp -dist: trusty +dist: xenial compiler: - clang - gcc env: - LIBRARY_COMBO=gnu-gnu-gnu - LIBRARY_COMBO=ng-gnu-gnu - - LIBRARY_COMBO=ng-gnu-gnu BASE_ABI=--disable-mixed-abi + - LIBRARY_COMBO=ng-gnu-gnu BASE_ABI=--disable-mixedabi + - LIBRARY_COMBO=ng-gnu-gnu RUNTIME_VERSION=gnustep-2.0 + - LIBRARY_COMBO=ng-gnu-gnu BASE_ABI=--disable-mixedabi RUNTIME_VERSION=gnustep-2.0 matrix: exclude: - compiler: gcc env: LIBRARY_COMBO=ng-gnu-gnu - compiler: gcc - env: LIBRARY_COMBO=ng-gnu-gnu BASE_ABI=--disable-mixed-abi + env: LIBRARY_COMBO=ng-gnu-gnu BASE_ABI=--disable-mixedabi + - compiler: gcc + env: LIBRARY_COMBO=ng-gnu-gnu RUNTIME_VERSION=gnustep-2.0 + - compiler: gcc + env: LIBRARY_COMBO=ng-gnu-gnu BASE_ABI=--disable-mixedabi RUNTIME_VERSION=gnustep-2.0 - compiler: clang env: LIBRARY_COMBO=gnu-gnu-gnu sudo: required before_install: - sudo apt-get -qq update - - sudo apt-get install -y cmake pkg-config libgnutls28-dev libgmp-dev libffi-dev libicu-dev libxml2-dev libxslt1-dev libssl-dev libavahi-client-dev zlib1g-dev + - sudo apt-get install -y cmake pkg-config libgnutls28-dev libgmp-dev libffi-dev libicu-dev libxml2-dev libxslt1-dev libssl-dev libavahi-client-dev zlib1g-dev libblocksruntime-dev - > if [ $LIBRARY_COMBO = 'gnu-gnu-gnu' ]; then @@ -28,7 +34,16 @@ before_install: fi; sudo apt-get install -y libobjc-4.8-dev; else - sudo apt-get install -y libkqueue-dev libpthread-workqueue-dev; + curl -s -o - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -; + sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main" && sudo apt-get update -qq; + sudo apt-get install -y clang-9 libkqueue-dev libpthread-workqueue-dev; + sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-9 10 \ + --slave /usr/bin/clang++ clang++ /usr/bin/clang++-9; + export PATH=$(echo "$PATH" | sed -e 's/:\/usr\/local\/clang-7.0.0\/bin//'); + if [ "$RUNTIME_VERSION" = "gnustep-2.0" ]; + then + sudo update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.gold" 10; + fi; fi; install: ./travis-deps.sh before_script: > @@ -44,5 +59,5 @@ before_script: > export GNUSTEP_MAKEFILES=$HOME/staging/share/GNUstep/Makefiles; . $HOME/staging/share/GNUstep/Makefiles/GNUstep.sh; script: > - ./configure $BASE_ABI; + ./configure $BASE_ABI || (cat config.log && false); make && make install && make check || (cat Tests/tests.log && false); diff --git a/ChangeLog b/ChangeLog index 6004c88e2..6eb1453f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2019-12-06 Fred Kiefer + + * .travis.yml + * travis-deps.sh: Update to match changes in base by Niels Grewe. + 2019-12-02 Fred Kiefer * Source/NSBitmapImageRep.m (-_convertToFormatBitsPerSample:...): diff --git a/travis-deps.sh b/travis-deps.sh index 17b69f9a5..70b5a2af5 100755 --- a/travis-deps.sh +++ b/travis-deps.sh @@ -6,25 +6,30 @@ DEP_SRC=$HOME/dependency_source/ install_gnustep_make() { cd $DEP_SRC - git clone https://github.com/gnustep/make.git - cd make - if [ $LIBRARY_COMBO = 'ng-gnu-gnu' ] + git clone https://github.com/gnustep/tools-make.git + cd tools-make + if [ -n "$RUNTIME_VERSION" ] then - ADDITIONAL_FLAGS="--enable-objc-nonfragile-abi" - else - ADDITIONAL_FLAGS="" + echo "RUNTIME_VERSION=$RUNTIME_VERSION" > GNUstep.conf fi - ./configure --prefix=$HOME/staging --with-library-combo=$LIBRARY_COMBO $ADDITIONAL_FLAGS - make install + ./configure --prefix=$HOME/staging --with-library-combo=$LIBRARY_COMBO --with-user-config-file=$PWD/GNUstep.conf + make install + echo Objective-C build flags: `$HOME/staging/bin/gnustep-config --objc-flags` } install_ng_runtime() { cd $DEP_SRC git clone https://github.com/gnustep/libobjc2.git + cd libobjc2 + git submodule init + git submodule sync + git submodule update + cd .. mkdir libobjc2/build cd libobjc2/build export CC="clang" export CXX="clang++" + export CXXFLAGS="-std=c++11" cmake -DTESTS=off -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGNUSTEP_INSTALL_TYPE=NONE -DCMAKE_INSTALL_PREFIX:PATH=$HOME/staging ../ make install }