Re: A Gtk's build system ?



Le 06/08/2014 22:01, Krzysztof Kosiński a écrit :
2014-08-06 21:43 GMT+02:00 Colomban Wendling <lists ban herbesfolles org>:
Le 06/08/2014 21:30, Krzysztof Kosiński a écrit :
[Waf] does not require silly lists of files to work

If that refers to using globs in the build system files, don't.  Glob
showed on many a situation to be the source of various build problems,
including, but not limited to, a file to be missing from the source tree
(which would not be easily noticeable and would work on the author's
setup), or unexpected files to be included in a build.

I am not really convinced by this.

1. If there are any uncommitted files, version control will tell you about this.
2. If you have 'unexpected files' in the source tree, you are doing
something wrong.

Even if both are more or less true, they still happen no matter what,
experience shows this.

Having files that should not be built is even something that might be
desired in situation where e.g. one is in the step of adding a new file
but has to quickly work on something else (say, an important fix).  A
Git user will probably stash his changes to get back to it later, but a
stash won't affect the not-yet-added files.  Result is a build failure
requiring to temporarily and manually get the files out of the glob match.

Same problem happened when installing unwanted files that were only
supposed to be used for building purpose but happened to match an
obscure pattern hidden somewhere and went unnoticed for a long time as
it didn't have a real impact apart from clobbering the installation.

All this happened to me and others using globs, where it didn't when
using explicit lists.

Adding a file to a list on the other hand is really trivial and hard to
forget (as the build won't include it otherwise), and I believe this
little hassle is nothing compared to the eventual issues a glob might
induce at unexpected times.

[...]

Also, FWIW patterns can generally be used just fine in Autotools -- but
again, please, don't use them.

Autotools can't correctly use patterns / wildcards, because it
requires manually re-running automake whenever a file is added or
deleted.
http://www.gnu.org/software/automake/manual/html_node/Wildcards.html

OK sorry for that, I guess the wildcards I saw with Autotools were only
in list of files to install (maybe with manual expansion), not to build.

Regards,
Colomban


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]