Re:Updating Our macOS Open Source Offering
by ksherlock on Friday September 22, 2017 @01:18PM
(#15314008)
I build travis CI jobs on Mac OS because that's the easiest way to get a reasonably modern c++ compiler. I'm glad somebody realizes there's life beyond c++-03
Re:Updating Our macOS Open Source Offering
by ameliaquining on Friday September 22, 2017 @02:31PM
(#15314560)
Why can't you just run Clang on Linux? Surely its C++11 and later features aren't exclusive to macOS? Or are you talking about some other compiler?
Re:Updating Our macOS Open Source Offering
by geofft on Friday September 22, 2017 @02:54PM
(#15314762)
Travis is still on Ubuntu 14.04, but that ships with clang 3.4 and gcc 4.8, both of which support C++11 just fine, so yeah, I'm confused why 'ksherlock needs macOS. clang 3.4 even supports C++14 (gcc needs version 5; also you might want gcc 5 for the C++11 ABI changes to std::string and std::list).
'ksherlock, if you really want a newer compiler, I'd use http://apt.llvm.org/ . Specifically do something like
sudo: required
before_install:
- curl https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
- echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty main" | sudo tee /etc/apt/sources.list.d/llvm.list
- sudo apt-get update
- sudo apt-get install clang-6.0
which will get you the latest nightly build of the not-yet-released clang 6.Alternatively I think you can do it like this without sudo: required:
addons:
apt:
sources:
- llvm-toolchain-trusty-5.0
packages:
- clang-5.0
but clang-6.0 isn't on their whitelist https://github.com/travis-ci/apt-package-whitelist . Maybe send in a PR!
For those curious about the setup, we have our own infrastructure that runs a custom in-memory Linux-based OS called Build OS[3] that performs build tasks in throw-away VMs (KVM). This is used for all targets, including Mac OS (though we have to run Mac OS builds on a bunch of Mac Mini's due to Apple's licensing restrictions).
[1] https://build2.org
[2] https://cppget.org/?builds
[3] https://git.build2.org/cgit/buildos/tree/