-
Notifications
You must be signed in to change notification settings - Fork 757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add CI jobs to implement platform support RFC #4906
add CI jobs to implement platform support RFC #4906
Conversation
some, if not all the linux failures are because i turned on scel, but the PR to update the scel submodule hasn't been merged into develop yet. |
i've added 3 new jobs:
|
common/SC_AppleEventLoop.mm
Outdated
} | ||
|
||
void run() { | ||
#if 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since it looks like this has been if'd out forever now, do you feel ok if we just get rid of it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah! but that code is actually just to demonstrate PR #5014 -- i'll make that change there :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(done - a865795)
oh, i just realized i haven't touched the deployment aspect of this yet. we don't want all those macOS jobs trying to push to S3 or GitHub. |
ready for review again. i just pushed this to the branch on this repo as well to see if the deployment step will work correctly. |
clang 4-6 needs to be linked to libatomic manually use libc++ with clang add config option for using libstdc++ remove dead cmake code
travis: add many new CI jobs add syslibs-only jobs makes it possible to test using devendored boost and yamlcpp travis: support clang and syslibs builds on linux travis: turn on scvim, scel, and sced in linux builds [skip appveyor] travis: add libscsynth builds [skip appveyor] travis: add gcc10 job [skip appveyor] travis: only deploy from single macOS job
… by boost 1.73 in xcode
i think i've finally resolved all the issues here. the PR text is updated with a summary of the changes. @joshpar (or anyone else) can you please review when you have time? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks great, thanks!
thanks @dyfer ! |
Purpose and Motivation
part of implementing supercollider/rfcs#1 was adding CI jobs to enforce compatibility with platforms and toolchains, this PR does that.
no new Windows jobs because each new job adds ~15 minutes to the total build time.
it's possible that Travis builds will take too long after we start doing this; we can remove jobs if that's the case. we can also run some of them less often, for instance on cron schedules or when a special keyword is in the commit message or when making a release.
Summary of changes
.travis.yml
: rewrite build matrix and add new jobs for a total of 18. this covers a variety of toolchains and build configurations; see the "summary" comment at the top of that file for full details.travis.yml
: add some logic around deployments to ensure only 1 macOS build is deployedbefore-install-linux.sh
,before-install-osx.sh
: update logic to install the right packages depending on configurationbefore-script-linux.sh
,before-script-osx.sh
: use correct CMake flags depending on build job configurationscript-linux.sh
: use 2 cores when building on linux, which we already do in sc3-plugins with no problems encountered so farCMakeLists.txt
: add an option for using libstdc++ with clang,SC_CLANG_USES_LIBSTDCPP
; remove obsolete logic for pre-3.1 cmake.README_LINUX.md
: add info on using clangREADME_MACOS.md
: update the version of Xcode required to 10server/supernova/CMakeLists.txt
: link against libatomic on clang version 4, 5, 6; a build issue i encountered when running clang build jobsexternal_libraries/libsndfile/VERSION
to VERSION.txt; very obscure issue. with Boost 1.73 on macOS (which happens in the system libs build), a boost header ends up including this file because it thinks it's the C++20<version>
header. i don't like modifying 3rd party code but it doesn't seem like this file even exists in the main repo, and it's not used by our build system. renaming it seemed to be the most sensible solution to a really nonsensical problem.Types of changes
To-do list