[Scons-users] Exceptions make SCons refuse to clean

Plunket, Tom tom.plunket at aristocrat-inc.com
Thu Oct 1 20:12:37 EDT 2015


I have an example for this now. What would be the best way for me to share it? I can attach an archive to an email; the 7z file is 2498 bytes. I could upload said archive to a site from where it can be downloaded. I could also upload it to a BitBucket/git project, where I suppose it might be easier to pass tweaks back and forth.

In a nutshell what I’ve found is that if file A is built into file B and file B gets built into file C, file B gets scanned before A is processed; the first time this means that B just doesn’t exist so the scanner needs to handle that. After it exists it just means that certain classes of error are latching. Cleaning C does not seem to delete B, either.


-Tom


From: Scons-users [mailto:scons-users-bounces at scons.org] On Behalf Of Bill Deegan
Sent: Tuesday, August 25, 2015 9:42 PM
To: SCons users mailing list
Subject: Re: [Scons-users] Exceptions make SCons refuse to clean

Tom,
Any chance you could come up with a small example which demonstrates your issue?
-Bill

On Tue, Aug 25, 2015 at 7:41 PM, Plunket, Tom <tom.plunket at aristocrat-inc.com<mailto:tom.plunket at aristocrat-inc.com>> wrote:
I have written a number of scanners and builders for processing data files.

The workflow is essentially:

Digital content creation tool (artist workflow) -> [Export plugin] -> XML file -> [lots of dependencies discovered] -> bundle XML DOM with dependencies

The dependencies are other digital assets, audio, video, that sort of thing. These all get built correctly. SCons drives this whole process, starting with feeding a script to the DCC tool on the command line.

Sometimes the DCC tool data specifies one dependency with different “build” parameters. E.g. a bitmap is specified once with certain compression settings and again with different settings. I do not correctly handle this yet in my scanner as the output filename is based on the input filename. Therefore I get, “Two environments with different actions were specified for the same target:” followed by the filename.

Ok so then I “fix” the input asset so I can continue working on this stuff until I come up with a good solution to the problem but oh! I can’t do a clean because I get the same error.

So the issue I’m running into, and one I’ve seen other times and thought weird but at least didn’t hang me up, is that SCons seems to scan intermediate assets that are due to be replaced and presumably generates work to be done and then does it again when that intermediate asset is replaced.

In software build parlance, it’s like it’s scanning the existing .o files even though the .c files need to be recompiled. (I realize that this case doesn’t mean much since the .o files don’t generate new dependencies but this is the problem that I’m trying to solve.)
My builders also allow me to shortcut the DCC export and copy a previously-exported XML file but that doesn’t fix the problem because the scan of the bad asset happens before it’s overwritten by the good one.

So, does anyone know how I can clean an asset that has partially built and generated an error, when that error then prevents a clean because the asset scan results in the same problem? I even tried using -i on the command line to ignore errors but errors are not ignored. :-\

Thanks a ton,
Tom

My apologoies for the following, it is added automatically by the email gateway and I cannot suppress it:
--


IMPORTANT CONFIDENTIALITY NOTICE:

This E-mail(including any documents referred to in, or attached, to this E-mail) may contain information that is personal, confidential or the subject of copyright or other proprietary rights in favor of Aristocrat, its affiliates or third parties. This E-mail is intended only for the named addressee. Any privacy, confidence, copyright or other proprietary rights in favor of Aristocrat, its affiliates or third parties, is not lost because this E-mail was sent to you by mistake.

If you received this E-mail by mistake you should: (i) not copy, disclose, distribute or otherwise use it, or its contents, without the consent of Aristocrat or the owner of the relevant rights; (ii) let us know of the mistake by reply E-mail or by telephone (US 1-877-274-9661<tel:1-877-274-9661>, or AU +61 2 9013 6000<tel:%2B61%202%209013%206000>); and (iii) delete it from your system and destroy all copies.

Any personal information contained in this E-mail must be handled in accordance with applicable privacy laws.

Electronic and internet communications can be interfered with or affected by viruses and other defects. As a result, such communications may not be successfully received or, if received, may cause interference with the integrity of receiving, processing or related systems (including hardware, software and data or information on, or using, that hardware or software). Aristocrat gives no assurances in relation to these matters. If you have any doubts about the veracity or integrity of any electronic communication we appear to have sent you, please call (US 1-877-274-9661<tel:1-877-274-9661>, or AU +61 2 9013 6000<tel:%2B61%202%209013%206000>) for clarification.

_______________________________________________
Scons-users mailing list
Scons-users at scons.org<mailto:Scons-users at scons.org>
https://pairlist4.pair.net/mailman/listinfo/scons-users



IMPORTANT CONFIDENTIALITY NOTICE:

This E-mail(including any documents referred to in, or attached, to this E-mail) may contain information that is personal, confidential or the subject of copyright or other proprietary rights in favor of Aristocrat, its affiliates or third parties. This E-mail is intended only for the named addressee. Any privacy, confidence, copyright or other proprietary rights in favor of Aristocrat, its affiliates or third parties, is not lost because this E-mail was sent to you by mistake.

If you received this E-mail by mistake you should: (i) not copy, disclose, distribute or otherwise use it, or its contents, without the consent of Aristocrat or the owner of the relevant rights; (ii) let us know of the mistake by reply E-mail or by telephone (US 1-877-274-9661, or  AU +61 2 9013 6000); and (iii) delete it from your system and destroy all copies.

Any personal information contained in this E-mail must be handled in accordance with applicable privacy laws.

Electronic and internet communications can be interfered with or affected by viruses and other defects. As a result, such communications may not be successfully received or, if received, may cause interference with the integrity of receiving, processing or related systems (including hardware, software and data or information on, or using, that hardware or software). Aristocrat gives no assurances in relation to these matters.

If you have any doubts about the veracity or integrity of any electronic communication we appear to have sent you, please call (US 1-877-274-9661, or  AU +61 2 9013 6000) for clarification.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20151002/55d46d7c/attachment-0001.html>


More information about the Scons-users mailing list