Skip to content

Travis Notes

Bill Quith edited this page Aug 17, 2016 · 6 revisions

These are notes (to remind me!) of the various issues when trying to use Travis for this project. Setting up Travis for modern C++1y is a PITA.

Out of date Trusty packages

Default clang and GCC compiler versions are old. Need to update and explicitly specify versions using matrix include options. See complex example.

Mixed C++11 feature support

E.g. <codecvt> Unicode support. This is implemented on libc++, but varies on libstdc++.

  • libc++ - the new library effort by LLVM to write C++ standard library in C++1y.
  • libstdc++ - the older C++03 C++ standard library.

OSX has very good C++1y support through AppleClang. Linux is spotty in some areas. Trying to mix the two is problematic and I think causes link errors.

COMPILER variable ignored

Travis sets CXX as the compiler family, i.e. g++-5 is simplified to g++. This is not clear in any documentation and can only really be seen the Ruby source. This is no use as the compiler version you want is ignored. Currently passing the COMPILER variable to cmake (by setting CXX myself) to make sure we get the correct compiler.

Clone this wiki locally