PS: here's a hack I did in make.gyp to output a rule that manually
touches the output file to work around this.  Perhaps you could do
something in your Xcode generator to work around it for now.

# Deep inside the "rules" conversions code path:

       if name == 'resources_grit':
          # HACK: This is ugly.  Grit intentionally doesn't touch the
          # timestamp of its output file when the file doesn't change,
          # which is fine in hash-based dependency systems like scons
          # and forge, but not kosher in the make world.  After some
          # discussion, hacking around it here seems like the least
          # amount of pain.
          fp.write('\...@touch --no-create $...@\n')

On Mon, Apr 27, 2009 at 3:12 PM, Evan Martin <[email protected]> wrote:
> The build system has a generation dependency path like this:
>
> 1) final output depends on
>  2) grit header and cc, which depends on
>    3) grit input .grd file, which depends on
>      4) theme resources
>
> This means whenever you tweak theme resources, you cause a recompile,
> even when the .cc and .h in (2) don't change.  So Glen requested Tony
> change grit to not touch the outputs if their contents don't change,
> and that's what's causing the problem.
>
> This works fine for scons (because it uses file content hashes to
> compute whether dependencies need rebuilding), but breaks systems
> (including make and Xcode) that rely on file timestamps.  Why?
> Because you end up with the timestamp of 3 being newer than the
> timestamp of 2, so the dependency checker thinks you always need to
> re-run grit to convert 3=>2.
>
> The symptom you get is that grit runs every time you build.
>
> I think the correct fix is to make grit just modify the output files,
> like every other program does.  Sorry, Glen.
>

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: [email protected] 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to