I'm having a build problem because some old messages are
still kicking around on my system. Specifically, javac can't
compile org.sandev.ui.sandmessages.FormAction because it
can't find org.sandev.ui.structs.FormActionStruct.
I think this is the problem:
Build code (run generators, FormAction gets generated)
Update from CVS (FormActionStruct struct gets deleted)
Scrub
Build again (fails)
I think scrubbing the build after updating from CVS is the
problem. Since the struct gets deleted by CVS update, the
generator called by scrub doesn't know to to delete the
message. Therefore the generated message sticks around +
causes compile errors.
Logged In: YES
user_id=452458
The deleted struct/node tracking is done through the
source declaration files (so in this case that's
FormActionStruct.java) and the build state information
(which in this case is apps/ui/build/StructDecls.txt).
The state info contains a line referencing the previously
known struct declaration. So for example:
"C:\sand\apps\ui\build\..\src\org\sandev\ui\structs\ActionStru
ct.java"
When SandBuildDriver is figuring out all the SandDecls for
each project, it diffs the directory listing against the
contents of the build state to determine the status of
each SandDecl:
- source exists, no state exists -> STATUS_NEW
- source exists, target is newer/equal ->
STATUS_UNCHANGED
- source exists, target is older -> STATUS_CHANGED
- no source, state exists -> STATUS_DELETED
In the case of STATUS_DELETED, the SandDecl is synthesized
since there is no actual source file. The logic was
tested fairly early on in the v1.3 release process and was
working then. Not sure what is going on, but that's where
I would start looking. I'm ordering a replacement
computer today, but I won't have the horsepower to look
into this until it shows up.