veselink1 / refl-cpp

Static reflection for C++17 (compile-time enumeration, attributes, proxies, overloads, template functions, metaprogramming).
https://veselink1.github.io/refl-cpp/md__introduction.html
MIT License
1.05k stars 76 forks source link

Refactor CircleCI config #46

Closed friendlyanon closed 3 years ago

friendlyanon commented 3 years ago

This PR will make CircleCI use the gcc and clang images by teeks99, which are based on Ubuntu, so it's less hassle to set things up (install cmake and ninja).

The gcc and clang jobs are run using a parameterized matrix as well.

Just a note, but CI env var is always set in CI services and developer mode is force enabled if the CI env var is a true value, i.e. no need to pass refl-cpp_DEVELOPER_MODE.

Edit: you should enable running CI on PRs. On CircleCI, you can do this in Project settings > Advanced > Build forked pull requests and Auto-cancel redundant builds.

veselink1 commented 3 years ago

I like the new config. That being said, calling this a refactor is a bit of a stretch :). A couple of points I'd like to raise.

friendlyanon commented 3 years ago

It does not look like refl-cpp supports Clang 5.0, see the CI run.

Edit: well, actually it's the examples that are failing. They either have to be Clang 5.0 compatible or they should be disabled in clang executor.

veselink1 commented 3 years ago

It seems like Clang is building in GCC compatibility mode.

/usr/bin/clang++-5.0  -I../include -O3 -DNDEBUG -std=gnu++17 
                                                   ^^^
friendlyanon commented 3 years ago

Seems there is no change with extensions off.

veselink1 commented 3 years ago

It didn't have up to date libstdc++ installed and one wasn't available with that image. I rebased everything off of ubutnu:20.04 and added a two more compiler versions to build against in 24ab424.