On 2014-08-27 12:29 PM, Steve Fink wrote:
Maybe it's just me, but I'm having a lot of trouble following this
thread. Can someone spell out exactly what use cases we're talking about
here? Because I've heard several. Enumerating some of them:

1. I touched a file or files. Compile everything within a directory
hierarchy that uses that file. Do not link.

2. I touched a file or files. Compile everything that uses that file. Do
not link.

2a. I touched a C++ header file which is included all over the place. I anticipate that this change will break a specific set of .cpp files. Recompile *those files* right now. Do not recompile anything else. Do not link.

It is *often* the case that the set of .cpp files in question is "all the files in this directory", but in my experience even that is too many sometimes. For instance, if I'm adding a CSS feature and I have to touch nsCSSValue.h, I probably want to iterate on nsCSSParser.cpp and nsCSSValue.cpp until those are happy, and only then try rebuilding the rest of layout/style/. In the days of |make -f client.mk| I used to do this by copying compiler commands into a shell window, and then iterating on <up-arrow><return>, but I don't know how to get full compiler commands out of mach. (Grumble.)

|mach build LIST OF SPECIFIC .cpp FILES| would address this use case; one could use shell globs to get "everything in directory X".

zw
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to