On 28.04.2018 05:27, Yuriy Zhuravlev wrote:
    "make distcheck"

CMake have no this bad concept, in my opinion, if you want to make the project you should have a full build environment. (but I don't want to argue about it here)

this is not about having a working build environment, it is about having
a fully working and correct source tarball before distributing it as a
new release.

What "make distcheck" does is an end-to-end check of the configuration and build process itself.

So what it does is:

* create a source tarball, putting the version number given in
  configure.ac into the tarball name

* unpack the source tarball in a temporary directory, make
  everything read-only

* create a build directory, run "configure" in there

* build with "make"

* run project test suite with "make check"

* run "make install" into a tmp directory, then "make uninstall",
  to check that installation works, and that uninstall removes
  everything again

* run "make distclean" to check that cleanup really works as expected



So things spotted by this are e.g.

* missing files that didn't end up in the src tarball ("works on my
  computer")

* files being created in srcdir instead of builddir during build

* installed files missed by uninstall (ok, CMake developers have a
  strong opinion about "make uninstall anyway)

* generated files that are not properly getting cleaned up

* ... more things ***


Especially the srcdir vs builddir is one I'm missing very much with CMake, it happened several times that such problems have slipped
through in MySQL and MariaDB releases, and I've seen it in other
projects using CMake, too

--
hartmut


Reply via email to