1. 17 Aug, 2017 1 commit
    • Dean Moldovan's avatar
      Fix documentation build · 8665ee81
      Dean Moldovan authored
      * Doxygen needs `RECURSIVE = YES` in order to parse the `detail` subdir.
      
      * The `-W` warnings-as-errors option for sphinx doesn't work with the
        makefile build. Switched to calling sphinx directly.
      
      * Fix "citation [cppimport] is not referenced" warning.
      8665ee81
  2. 12 Aug, 2017 1 commit
    • Dean Moldovan's avatar
      Add support for boost::variant in C++11 mode · 7918bcc9
      Dean Moldovan authored
      In C++11 mode, `boost::apply_visitor` requires an explicit `result_type`.
      This also adds optional tests for `boost::variant` in C++11/14, if boost
      is available. In C++17 mode, `std::variant` is tested instead.
      7918bcc9
  3. 06 Jul, 2017 1 commit
  4. 26 Jun, 2017 1 commit
  5. 20 Jun, 2017 1 commit
    • Jason Rhinelander's avatar
      Switch debian docker images to stretch · e067c584
      Jason Rhinelander authored
      Debian stretch was just released, so `debian:testing` and
      `debian:stetch` are starting to diverge; this commit keeps the travis-ci
      docker image on stretch for gcc6 and clang3.9.
      
      Debian has also moved gcc 7 from experimental to unstable, so this
      switches the gcc7 build to `sid`.  Once it migrates to `testing` I'll
      switch the gcc 7 build docker image to `testing` and take it out of
      failure-allowed.
      e067c584
  6. 14 Jun, 2017 1 commit
    • Jason Rhinelander's avatar
      travis-ci: clang 4.0: install and use ldd-4.0 · 404bcf25
      Jason Rhinelander authored
      The clang 4.0/cpp17 build wasn't enabling -flto because the system
      linker didn't like the output generated by clang for some reason.  This
      switches the build to use llvm's lld instead, which lets -flto work
      again (and links considerably faster, too).
      404bcf25
  7. 12 Jun, 2017 1 commit
    • Jason Rhinelander's avatar
      Upgrade pypy to 5.8, use pre-built numpy/scipy wheels · 2cc1916e
      Jason Rhinelander authored
      numpy 1.13.0 fails with pypy 5.7.1, so this upgrades to 5.8.0.  I've
      also uploaded pre-built .whl files to imaginary.ca (checked every 4
      hours and rebuilt if needed), and list that as an extra pypi location
      under the pypy pip install to avoid the long travis pypy build times for
      a new release or branch.
      2cc1916e
  8. 28 May, 2017 1 commit
  9. 28 Apr, 2017 1 commit
    • Jason Rhinelander's avatar
      travis-ci: Remove clang 4/c++17 from allow_failures · 2761f78f
      Jason Rhinelander authored
      The job is using the released clang and stable-branch libc++, which
      wasn't the case when it was added.  Leave the g++7/c++17 in
      allow_failures for now as it's still a pre-release compiler (and pulled
      from debian experimental).
      2761f78f
  10. 22 Apr, 2017 1 commit
  11. 18 Apr, 2017 3 commits
    • Jason Rhinelander's avatar
      Remove unneeded exports · d170731f
      Jason Rhinelander authored
      Various bash variables that are only used in the travis-ci script and
      don't need to propagate (e.g. to cmake) are being pointlessly exported;
      this removes these `export`s.
      d170731f
    • Jason Rhinelander's avatar
      Switch clang-4.0 build to trusty; cache libc++ · f0c7c008
      Jason Rhinelander authored
      This uses the trusty container rather than docker for the clang 4.0
      build.  It also caches the local libc++ installation so that it doesn't
      need to be compiled every time, which should speed up the job
      considerably.
      f0c7c008
    • Jason Rhinelander's avatar
      travis-ci: switch to trusty; cache pip packages · 3d500516
      Jason Rhinelander authored
      This applies several changes to the non-docker travis-ci builds:
      
      - Make all builds use trusty rather than precise.  pybind can't really
        build in precise anyway (we install essentially the entire toolchain
        backported from trusty on every build), and so this saves needing to
        install all the backported packages during the build setup.
      - Updated the 3.5 build to 3.6 (via deadsnakes, which didn't backport
        3.6 to ubuntu releases earlier than trusty).
      - As a result of the switch to trusty, the BAREBONES build now picks up
        the (default installed) python 3.5 installation.
      - Invoke pip everywhere via $PYTHON -m pip rather than the pip
        executable, which saves us having to figure out what the pip
        executable is, and ensures that we are using the correct pip.
      - Install packages with `pip --user` rather than in a virtualenv.
      - Add the local user python package archive to the travis-ci cache
        (rather than the pip cache).  This saves needing to install packages
        during installation (unless there are updates, in which case the
        package and the cache are updated).
      - Install numpy and scipy on the pypy build.  This has to build from
        source (and so blas and fortran need to be installed on the build),
        but given the above caching, the build will only be slow for the first
        build after a new numpy/scipy release.  This testing is valuable:
        numpy has various behaviour differences under pypy.
      - Added set -e/+e around the before_install/install blocks so that a
        failure here (e.g. a pip install failure or dependency download
        failure) triggers a build failure.
      - Update eigen version to latest (3.3.3), mainly to be consistent with
        the appveyor build.
      - The travis trusty environment has an upgraded cmake, so this
        downgrades cmake (to the stock trusty version) on the first couple
        jobs so that we're still including some cmake 2.8.12 testing.
      3d500516
  12. 08 Apr, 2017 1 commit
  13. 22 Mar, 2017 1 commit
  14. 10 Mar, 2017 2 commits
  15. 27 Feb, 2017 1 commit
  16. 24 Feb, 2017 1 commit
    • Jason Rhinelander's avatar
      Independent tests (#665) · 60d0e0db
      Jason Rhinelander authored
      * Make tests buildable independently
      
      This makes "tests" buildable as a separate project that uses
      find_package(pybind11 CONFIG) when invoked independently.
      
      This also moves the WERROR option into tests/CMakeLists.txt, as that's
      the only place it is used.
      
      * Use Eigen 3.3.1's cmake target, if available
      
      This changes the eigen finding code to attempt to use Eigen's
      system-installed Eigen3Config first.  In Eigen 3.3.1, it exports a cmake
      Eigen3::Eigen target to get dependencies from (rather than setting the
      include path directly).
      
      If it fails, we fall back to the trying to load allowing modules (i.e.
      allowing our tools/FindEigen3.cmake).  If we either fallback, or the
      eigen version is older than 3.3.1 (or , we still set the include
      directory manually; otherwise, for CONFIG + new Eigen, we get it via
      the target.
      
      This is also needed to allow 'tests' to be built independently, when
      the find_package(Eigen3) is going to find via the system-installed
      Eigen3Config.cmake.
      
      * Add a install-then-build test, using clang on linux
      
      This tests that `make install` to the actual system, followed by a build
      of the tests (without the main pybind11 repository available) works as
      expected.
      
      To also expand the testing variety a bit, it also builds using
      clang-3.9 instead of gcc.
      
      * Don't try loading Eigen3Config in cmake < 3.0
      
      It could FATAL_ERROR as the newer cmake includes a cmake 3.0 required
      line.
      
      If doing an independent, out-of-tree "tests" build, the regular
      find_package(Eigen3) is likely to fail with the same error, but I think
      we can just let that be: if you want a recent Eigen with proper cmake
      loading support *and* want to do an independent tests build, you'll
      need at least cmake 3.0.
      60d0e0db
  17. 14 Feb, 2017 1 commit
    • Jason Rhinelander's avatar
      Temporary gcc travis-ci build fixes · ada763b9
      Jason Rhinelander authored
      Recent gcc snapshots (both gcc 7 snapshots and recent gcc 6 stable
      branch snapshots) are triggering an upstream gcc bug when -flto is
      enabled (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79296).  This has
      been hitting the gcc-7 builds for a while now, but is going to start
      hitting the debian testing builds in a few days as well.
      
      The issue is triggered by using -flto in combination with structs or
      classes declared in a function, as done in test_alias_initialization,
      test_isses, test_methods_and_attributes (and possibly more).
      
      I'm subscribed to the upstream bug, and will submit another PR to
      reenable LTO once a fixed gcc is available.
      
      The gcc-7 build also generates some warnings; just ignore them for now
      (by turning off -Werror).
      ada763b9
  18. 31 Jan, 2017 2 commits
  19. 01 Jan, 2017 1 commit
  20. 26 Dec, 2016 1 commit
  21. 19 Dec, 2016 1 commit
    • Dean Moldovan's avatar
      Make sure add_subdirectory and find_package behave identically · b0f3885c
      Dean Moldovan authored
      Add a BUILD_INTERFACE and a pybind11::pybind11 alias for the interface
      library to match the installed target.
      
      Add new cmake tests for add_subdirectory and consolidates the
      .cpp and .py files needed for the cmake build tests:
      
      Before:
      tests
      |-- test_installed_module
      |   |-- CMakeLists.txt
      |   |-- main.cpp
      |   \-- test.py
      \-- test_installed_target
          |-- CMakeLists.txt
          |-- main.cpp
          \-- test.py
      
      After:
      tests
      \-- test_cmake_build
          |-- installed_module/CMakeLists.txt
          |-- installed_target/CMakeLists.txt
          |-- subdirectory_module/CMakeLists.txt
          |-- subdirectory_target/CMakeLists.txt
          |-- main.cpp
          \-- test.py
      b0f3885c
  22. 16 Dec, 2016 1 commit
    • Wenzel Jakob's avatar
      WIP: PyPy support (#527) · 1d1f81b2
      Wenzel Jakob authored
      This commit includes modifications that are needed to get pybind11 to work with PyPy. The full test suite compiles and runs except for a last few functions that are commented out (due to problems in PyPy that were reported on the PyPy bugtracker).
      
      Two somewhat intrusive changes were needed to make it possible: two new tags ``py::buffer_protocol()`` and ``py::metaclass()`` must now be specified to the ``class_`` constructor if the class uses the buffer protocol and/or requires a metaclass (e.g. for static properties).
      
      Note that this is only for the PyPy version based on Python 2.7 for now. When the PyPy 3.x has caught up in terms of cpyext compliance, a PyPy 3.x patch will follow.
      1d1f81b2
  23. 15 Dec, 2016 1 commit
  24. 14 Dec, 2016 1 commit
    • Jason Rhinelander's avatar
      Add gcc-7 build from debian experimental · a3d41d10
      Jason Rhinelander authored
      Add a build using g++-7 snapshot from debian experimental.  This build
      is set to allow failures without triggering an overall build failure
      (since this is an experimental compiler with experimental support for a
      future C++ standard).
      a3d41d10
  25. 13 Dec, 2016 1 commit
  26. 11 Dec, 2016 1 commit
  27. 09 Dec, 2016 1 commit
  28. 20 Nov, 2016 1 commit
  29. 11 Nov, 2016 1 commit
  30. 12 Sep, 2016 1 commit
  31. 10 Sep, 2016 1 commit
    • Jason Rhinelander's avatar
      apt-get tweaks for the debian builds · bf14cea7
      Jason Rhinelander authored
      - Try to update and upgrade twice (with a brief pause between attempts)
        to deal with occassional spurious server failures or repository race
        conditions.  Do the same for the main package install.
      - Use dist-upgrade instead of upgrade for updating the image
      - Add -q to the upgrade and install commands to make apt less verbose.
      bf14cea7
  32. 28 Aug, 2016 1 commit
  33. 26 Aug, 2016 3 commits
    • Jason Rhinelander's avatar
      Don't install pytest from cmake, just fail instead · dd3d56a8
      Jason Rhinelander authored
      Installing something outside the project directory from a cmake
      invocation is overly intrusive; this changes tests/CMakeLists.txt to
      just fail with an informative message instead, and changes the
      travis-ci builds to install pytest via pip or apt-get.
      dd3d56a8
    • Dean Moldovan's avatar
      Fix Travis cache config: remove ccache, add OS X pip cache · 14bd10d6
      Dean Moldovan authored
      ccache on Travis was never configured properly so the setting never
      actually did anything. Enabling ccache for real brings other issues:
      due to the way the preprocessor is handled, some of the Python header
      macros produce bogus compiler warnings (which in turn produce errors
      with -Werror). ccache also requires additional configuration on OS X
      and docker. It would reduce compile time by ~30 seconds at best, so
      it's not worth the trouble.
      
      [skip appveyor]
      14bd10d6
    • Dean Moldovan's avatar
      Add barebones build to Travis CI · b62a896f
      Dean Moldovan authored
      This build makes sure everything still works without optional
      dependencies (numpy/scipy/eigen) and also tests the automatic
      discovery functions in CMake (Python version, C++ standard).
      
      [skip appveyor]
      b62a896f
  34. 19 Aug, 2016 1 commit