Thanks George.
The specific question was whether requiring newer CMake was going to cause a
significant burden. I am *certain* that for the vast majority of folks, this
will be a far lower than burden than requiring a completely different build
system (meson or bazel for instance).
There are people for whom the requirement of *any* build system is onerous –
some have asked for a way to turn all of nng into a single C file or header
file library even. But even for those people, getting CMake installed is a
fairly low bar. Especially as modern CMake is available and pre-packaged for
pretty much all the mainstream platforms, with no need to install anything else.
Sent from Mail for Windows 10
From: George Lambert
Sent: Thursday, January 2, 2020 7:46 AM
To: nanomsg@xxxxxxxxxxxxx
Subject: [nanomsg] Re: NNG & modern CMake
I defer my support to Garrett if this is a Consensus decision but it is not the
final decision belongs to
Garrett anyway.
George Lambert
On Thu, Jan 2, 2020 at 10:44 AM George Lambert <marchon@xxxxxxxxx> wrote:
I generally lurk more than contribute, but in this case I have an opinion.
This is a good idea. The users here are engineers not end users so we should be
able to work together to Fix any problems from our unique environments that
come up, but the goal is the best library itself.
Not compilation tools or build process, we all have to deal with build process
challenges from time to time.
George
On Thu, Jan 2, 2020 at 10:33 AM Mauro Delazeri <maurodelazeri@xxxxxxxxx> wrote:
I think cmake is good enough
On Thu, Jan 2, 2020 at 10:23 AM Garrett D'Amore <garrett@xxxxxxxxxx> wrote:
Hi Franklin,
Thanks for sharing your thoughts.
Actually, I find the python requirement to be somewhat onerous – I don’t use
Python regularly, and I’ve got too much scar tissue around competing
dependencies and the 18 different ways that Python projects try to cope around
that (such as virtual environments.)
The other thing is that Meson doesn’t have as much traction with IDE support or
mindshare in the community.
The final thing is that I have a lot invested in CMake at this point – and I
don’t think I’m the only one. Picking up yet another build & configure
language just isn’t something I want to spend time on unless there is a real
benefit to doing so.
Sent from Mail for Windows 10
From: Franklin Mathieu
Sent: Thursday, January 2, 2020 1:29 AM
To: nanomsg@xxxxxxxxxxxxx
Subject: [nanomsg] Re: NNG & modern CMake
Hey Garrett,
Did you have the chance to look at Meson[1] too? It has been gaining
quite the traction for C and C++ projects and I've found it to be way
nicer than CMake overall on my own projects, mostly due to not having
to work around quirks in older versions of CMake, and a proper DSL
where everything isn't just strings. Plus, the only thing Meson
requires is Python 3 and can be installed via pip if there's no
package available for the distro (or on Windows, macOS), so there's no
real issue about availability or using a more recent version.
Cheers,
[1]: https://mesonbuild.com
Le jeu. 2 janv. 2020 à 01:22, Garrett D'Amore <garrett@xxxxxxxxxx> a écrit :
All,
This is a heads up (and a request for objections if any) that at some point
soon a future release of NNG (possibly starting with v1.3) will require
significantly newer CMake versions. I’m contemplating requiring at least
3.13, and probably more like 3.14 or even 3.15.
There are a number of features that more recent CMake brings to the table,
which potentially reduce the effort required to have easily supportable,
flexible configuration. At present we are working around limitations in
older releases, but it’s becoming somewhat annoying to have to keep doing so.
Note that CMake binaries are packaged and freely and readily available for
Ubuntu 16.x and newer, RedHat 7.x and newer, Windows, and macOS. Recent
Visual Studio 2019 even *includes* cmake 3.15.
This might make things slightly more annoying for folks using CMake on
non-mainstream platforms, but even on those platforms bootstrapping CMake is
generally a very simple task. (Note also that modern CMake can cross compile
easily, so even if your target environment is not mainstream, you won’t be
impacted as long as your *development* system isn’t too far off the beaten
path.)
If this is going to cause anyone undue stress, please let me know.
Garrett