Commit 1a48e803 authored by Michael R. Crusoe's avatar Michael R. Crusoe 🏳️‍🌈
Browse files

New upstream version 1.3.0

parent 7b83a9f5
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -18,14 +18,16 @@
*.suo
*.user
*/x64
*/Debug*
*/Release*
*\Debug*
*\Release*
*.log
*.tlog*
*.obj
*.VC.db
*.VC.VC.opendb
*.pdb
*.idb
*\build_*

# misc files mostly used for testing
out.txt
+248 −18
Original line number Diff line number Diff line
# Portions of this file based on https://github.com/Microsoft/GSL/blob/master/.travis.yml

language: cpp
os: linux
dist: trusty
sudo: false
group: beta

addons:
  apt:
    sources: &default_sources
      - ubuntu-toolchain-r-test
      - libboost-latest
    packages: &default_packages
      - libboost-serialization-dev
      - libboost-dev

matrix:
  include:

    # |---------- LINUX GCC ----------|
    - compiler: g++-4.7
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=g++-4.7"]
      addons:
        apt:
          sources: *default_sources
          packages: ['g++-4.7', *default_packages]

    - compiler: g++-4.8
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=g++-4.8"]
      addons:
        apt:
          sources: *default_sources
          packages: ['g++-4.8', *default_packages]
         
    - compiler: g++-4.9
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=g++-4.9"]
      addons:
        apt:
          sources: *default_sources
          packages: ['g++-4.9', *default_packages]
         
    - compiler: g++-5
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=g++-5"]
      addons:
        apt:
          sources: *default_sources
          packages: ['g++-5', *default_packages]
    
    - compiler: g++-5
      name: "g++-5 multilib"
      env: ["COMPILER=g++-5"]
      addons:
        apt:
          sources: *default_sources
          packages: ['gcc-multilib g++-5-multilib linux-libc-dev', *default_packages]
                  
    - compiler: g++-6
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=g++-6"]
      addons:
        apt:
          sources: *default_sources
          packages: ['g++-6', *default_packages]

    - compiler: g++-7
      name: "g++-7 c++17"
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17'", "COMPILER=g++-7"]
      addons:
        apt:
          sources: *default_sources
          packages: ['g++-7', *default_packages]

    # |---------- LINUX GCC ----------|
    - dist: xenial
      compiler: g++-8
      name: "g++-8 c++17"
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17'", "COMPILER=g++-8"]
      addons:
        apt:
            sources: *default_sources
            packages: ['g++-8', *default_packages]


    # |---------- LINUX CLANG ----------|
    - compiler: clang++-3.5
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=clang++-3.5"]
      addons:
        apt:
          sources: [*default_sources, llvm-toolchain-precise-3.5]
          packages: ['clang-3.5', *default_packages]

    - compiler: clang++-3.6
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=clang++-3.6"]
      addons:
        apt:
          sources: [*default_sources, llvm-toolchain-precise-3.6]
          packages: ['clang-3.6', *default_packages]

    - compiler: clang++-3.7
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=clang++-3.7"]
      addons:
        apt:
          sources: [*default_sources, llvm-toolchain-precise-3.7]
          packages: ['clang-3.7', *default_packages]

    - compiler: clang++-3.8
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=clang++-3.8"]
      addons:
        apt:
          sources: [*default_sources, llvm-toolchain-precise-3.8]
          packages: ['clang-3.8', *default_packages]

    - compiler: clang++-3.9
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=clang++-3.9"]
      addons:
        apt:
          sources: [*default_sources, llvm-toolchain-precise-3.9]
          packages: ['clang-3.9', *default_packages]

    - compiler: clang++-4.0
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=clang++-4.0"]
      addons:
        apt:
          sources: [*default_sources, llvm-toolchain-trusty-4.0]
          packages: ['clang-4.0', 'g++-5', *default_packages]

    - compiler: clang++-5.0
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON'", "COMPILER=clang++-5.0"]
      addons: &clang50
        apt:
          packages: 
            - clang-5.0
            - g++-7
            - *default_packages
          sources: 
      - 'ubuntu-toolchain-r-test'
      - 'boost-latest'
            - *default_sources
            - llvm-toolchain-trusty-5.0
            - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-5.0 main'
              key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'

    - env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17'", "COMPILER=clang++-5.0"]
      name: "clang++-5.0 c++17"
      addons: *clang50

    - compiler: clang++-7
      name: "clang++-7 c++17"
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17'", "COMPILER=clang++-7"]
      addons: 
        apt:
          packages: 
      - 'g++-multilib'
      - 'libboost-serialization-dev'
#      - 'libboost-test-dev'
            - clang-7
            - g++-7
            - *default_packages
          sources: 
            - *default_sources
            - llvm-toolchain-trusty-7

compiler:
  - gcc
    - compiler: clang++-8
      name: "clang++-8 c++17 libc++"
      env: ["CMAKE_OPTIONS='-DSKIP_PORTABILITY_TEST=ON -DCMAKE_CXX_STANDARD=17 -DCLANG_USE_LIBCPP=ON -DSKIP_PERFORMANCE_COMPARISON=ON'", "COMPILER=clang++-8"]
      addons: 
        apt:
          packages: 
            - clang-8
            - g++-8
            - libc++-8-dev
            - libc++abi-8-dev
            - *default_packages
          sources: 
            - *default_sources
            - llvm-toolchain-trusty-8

matrix:
  include:
    - os: linux
      compiler: clang
      env: CMAKE_OPTIONS="-DSKIP_PORTABILITY_TEST=ON"
    # # |---------- LINUX CLANG (32-bit) ----------|
    # # Doesn't work.
    # - compiler: clang++
    #   addons:
    #     apt:
    #       sources: [*default_sources]
    #       packages: ['clang', 'gcc-multilib', 'g++-multilib', *default_packages]

    # TODO: Add an entry for valgrind
    #  after_script: make valgrind

    - os: osx
    # |---------- OSX CLANG ----------|
    - compiler: clang++
      os: osx
      osx_image: xcode7.3
      env: COMPILER=clang++

    - compiler: clang++
      os: osx
      osx_image: xcode8
      compiler: clang
      env: COMPILER=clang++

    # # Missing CMake
    # - compiler: clang++
    #   os: osx
    #   osx_image: xcode8.1

    - compiler: clang++
      os: osx
      osx_image: xcode8.2
      env: COMPILER=clang++

    - compiler: clang++
      os: osx
      osx_image: xcode8.3
      env: COMPILER=clang++

    - compiler: clang++
      env: ["CMAKE_OPTIONS='-DWITH_WERROR=OFF'"]
      os: osx
      osx_image: xcode9
      env: COMPILER=clang++
    
    - compiler: clang++
      env: ["CMAKE_OPTIONS='-DWITH_WERROR=OFF'"]
      os: osx
      osx_image: xcode10
      env: COMPILER=clang++

install:
  # Set the ${CXX} variable properly
  - export CXX=${COMPILER}
  - ${CXX} --version

  # Dependencies required by the CI are installed in ${TRAVIS_BUILD_DIR}/deps/
  - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
  - mkdir -p "${DEPS_DIR}"
  - cd "${DEPS_DIR}"

  - JOBS=2

  # [linux]: Install the right version of libc++
  - |
    LLVM_INSTALL=${DEPS_DIR}/llvm/install
    # if in linux and compiler clang and llvm not installed
    if [[ "${TRAVIS_OS_NAME}" == "linux" && "${CXX%%+*}" == "clang" && -n "$(ls -A ${LLVM_INSTALL})" ]]; then
      if   [[ "${CXX}" == "clang++-3.6" ]]; then LLVM_VERSION="3.6.2";
      elif [[ "${CXX}" == "clang++-3.7" ]]; then LLVM_VERSION="3.7.1";
      elif [[ "${CXX}" == "clang++-3.8" ]]; then LLVM_VERSION="3.8.1";
      elif [[ "${CXX}" == "clang++-3.9" ]]; then LLVM_VERSION="3.9.1";
      fi
      LLVM_URL="http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz"
      LIBCXX_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxx-${LLVM_VERSION}.src.tar.xz"
      LIBCXXABI_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxxabi-${LLVM_VERSION}.src.tar.xz"
      mkdir -p llvm llvm/build llvm/projects/libcxx llvm/projects/libcxxabi
      travis_retry wget -O - ${LLVM_URL} | tar --strip-components=1 -xJ -C llvm
      travis_retry wget -O - ${LIBCXX_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxx
      travis_retry wget -O - ${LIBCXXABI_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxxabi
      (cd llvm/build && cmake .. -DCMAKE_INSTALL_PREFIX=${LLVM_INSTALL})
      (cd llvm/build/projects/libcxx && make install -j2)
      (cd llvm/build/projects/libcxxabi && make install -j2)
      export CXXFLAGS="-isystem ${LLVM_INSTALL}/include/c++/v1"
      export LDFLAGS="-L ${LLVM_INSTALL}/lib -l c++ -l c++abi"
      export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${LLVM_INSTALL}/lib"
    fi

script:
  - cd "${TRAVIS_BUILD_DIR}"
  - if [[ "${COMPILERCC}" != "" ]]; then export CC="${COMPILERCC}"; fi
  - if [[ "${COMPILER}" != "" ]]; then export CXX="${COMPILER}"; fi
  - $CXX --version
  - cmake --version
  - mkdir build && cd build
  - cmake ${CMAKE_OPTIONS} .. && make -j4
  - ctest . --output-on-failure

branches:
  only:
    - develop
    - master
+22 −4
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ cmake_minimum_required (VERSION 2.6.2)
project (cereal)

option(SKIP_PORTABILITY_TEST "Skip portability (32 bit) tests" OFF)
option(SKIP_PERFORMANCE_COMPARISON "Skip building performance comparison (requires boost)" OFF)
if(NOT CMAKE_VERSION VERSION_LESS 3.0) # installing cereal requires INTERFACE lib
    option(JUST_INSTALL_CEREAL "Don't do anything besides installing the library" OFF)
endif()
@@ -22,14 +23,27 @@ else()
    if(WITH_WERROR)
        set(CMAKE_CXX_FLAGS "-Werror ${CMAKE_CXX_FLAGS}")
    endif(WITH_WERROR)

    option(CLANG_USE_LIBCPP "Use libc++ for clang compilation" OFF)
    if(CLANG_USE_LIBCPP)
        set(CMAKE_CXX_FLAGS "-stdlib=libc++ ${CMAKE_CXX_FLAGS}")
        set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++abi")
    endif()

    if(CMAKE_VERSION VERSION_LESS 3.1)
        set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
    else()
      if(NOT DEFINED CMAKE_CXX_STANDARD OR CMAKE_CXX_STANDARD STREQUAL "98")
        set(CMAKE_CXX_STANDARD 11)
      endif()

      if(CMAKE_CXX_STANDARD GREATER 14)
        cmake_minimum_required(VERSION 3.8)
      endif()

      set(CMAKE_CXX_STANDARD_REQUIRED ON)
    endif()

endif()

if(NOT CMAKE_VERSION VERSION_LESS 3.0)
@@ -51,6 +65,10 @@ endif()

include_directories(./include)

if(NOT CMAKE_VERSION VERSION_LESS 3.12)
  cmake_policy(VERSION 3.12)
endif()

# Boost serialization for performance sandbox
find_package(Boost COMPONENTS serialization)

+2 −2
Original line number Diff line number Diff line
@@ -77,8 +77,8 @@ cereal is licensed under the [BSD license](http://opensource.org/licenses/BSD-3-

## cereal build status

* develop : [![Build Status](https://travis-ci.org/USCiLab/cereal.png?branch=develop)](https://travis-ci.org/USCiLab/cereal)
[![Build status](https://ci.appveyor.com/api/projects/status/91aou6smj36or0vb/branch/develop?svg=true)](https://ci.appveyor.com/project/AzothAmmo/cereal/branch/develop)
* master : [![Build Status](https://travis-ci.com/USCiLab/cereal.svg?branch=master)](https://travis-ci.com/USCiLab/cereal)
[![Build status](https://ci.appveyor.com/api/projects/status/91aou6smj36or0vb/branch/master?svg=true)](https://ci.appveyor.com/project/AzothAmmo/cereal/branch/master)

---

+13 −4
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ pull_requests:

branches:
  only:
    - develop
    - master

configuration:
  - Debug
@@ -13,9 +13,18 @@ configuration:

environment:
  matrix:
    - VS_VERSION_MAJOR: 12
    - VS_VERSION_MAJOR: 14
      BOOST_ROOT: C:\Libraries\boost_1_59_0
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
      VS_VERSION_MAJOR: 12
      BOOST_ROOT: C:\Libraries\boost_1_58_0
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      VS_VERSION_MAJOR: 14
      BOOST_ROOT: C:\Libraries\boost_1_60_0
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      VS_VERSION_MAJOR: 15
      BOOST_ROOT: C:\Libraries\boost_1_66_0
      #    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 Preview
      #      VS_VERSION_MAJOR: 16
      #      BOOST_ROOT: C:\Libraries\boost_1_66_0

platform:
  - Win32
Loading