etr / libhttpserver

C++ library for creating an embedded Rest HTTP server (and more)
GNU Lesser General Public License v2.1
882 stars 184 forks source link

Be more explicit about C++ version requierments. #311

Closed bcsgh closed 1 year ago

bcsgh commented 1 year ago

Description of the Change

Prompted by https://github.com/etr/libhttpserver/issues/295

Release Notes

etr commented 1 year ago

We might also use: https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_17.html.

What do you think?

bcsgh commented 1 year ago

Seems that's already being done: https://github.com/etr/libhttpserver/blob/master/configure.ac#L47

Also, will that give a clean error to someone who builds libhttpserver using its build system and then attempts to build their own code using C++14 and link with the .a?

Lastly, I at least don't use the autoconf build at all (I use Bazel). Autoconf is very much a pain to get a hermetic build out of (it seems to assume that the configuration of my workstation is in any way relevant to how to build the library) and doesn't integrate well with everything else I'm using.

etr commented 1 year ago

Seems that's already being done: https://github.com/etr/libhttpserver/blob/master/configure.ac#L47

Also, will that give a clean error to someone who builds libhttpserver using its build system and then attempts to build their own code using C++14 and link with the .a?

Great. I did not mean it as a substitution to what you have here, though, because it won't support you beyond the compilation of the library itself.

Lastly, I at least don't use the autoconf build at all (I use Bazel). Autoconf is very much a pain to get a hermetic build out of (it seems to assume that the configuration of my workstation is in any way relevant to how to build the library) and doesn't integrate well with everything else I'm using.

To be fair, what I should be doing is uploading the output of make dist. In theory, you should have to run automake/autoconf at all.

bcsgh commented 1 year ago

To be fair, what I should be doing is uploading the output of make dist. In theory, you should have to run automake/autoconf at all.

I'm of the "always build everything from source" school of thought. Which incidentally allows you to totally avoids the question of what set of CPU/OS/etc. to generate releases for; you'll never get enough options to make people happy, so just make sure building for their own personal snowflake is fast and easy.