[Scons-users] Problem with Repository build

Dirk Bächle tshortik at gmx.de
Wed Aug 3 13:20:26 EDT 2016


Hi Martin,

On 03.08.2016 13:31, Martin Ritter wrote:
> Hi all,
>
> we have a problem building our software with SCons versions newer than
> 2.2.0 [1] when using env.Repository()
>
>   > $ scons --debug=stacktrace
>> scons: done reading SConscript files.
>> scons: Building targets ...
>> scons: *** [build/Linux_x86_64/opt/alignment/dataobjects/src/MilleData.os] AttributeError : 'NoneType' object has no attribute 'get_contents'
>> scons: internal stack trace:
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Job.py", line 199, in start


ahhh "The Belle II"! Awesome, and welcome to the SCons User mailing list.

Can you tell us a little bit more about how you run your builds? Do you see a difference between "-j n" builds and single-core ones? 
Are there any custom Builders and/or Emitters involved?

And in the error example you gave, does the target "MilleData.os" exist afterwards?

Best regards,

Dirk

>>     task.prepare()
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Script/Main.py", line 164, in prepare
>>     return SCons.Taskmaster.OutOfDateTask.prepare(self)
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Taskmaster.py", line 172, in prepare
>>     self.exception_raise()
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Taskmaster.py", line 806, in _find_next_ready_node
>>     children = executor.get_all_children()
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Executor.py", line 322, in get_all_children
>>     result.extend(target.children())
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Node/__init__.py", line 1373, in children
>>     self.scan()
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Node/__init__.py", line 1049, in scan
>>     executor.scan_sources(self.builder.source_scanner)
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Executor.py", line 479, in scan_sources
>>     self.scan(scanner, self.get_all_sources())
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Executor.py", line 496, in scan
>>     deps.extend(node.get_implicit_deps(env, scanner, path, kw))
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Node/__init__.py", line 943, in get_implicit_deps
>>     included_deps = [x for x in node.get_found_includes(env, scanner, path) if x not in seen]
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Node/FS.py", line 2893, in get_found_includes
>>     result = [n.disambiguate() for n in scanner(self, env, path)]
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Scanner/__init__.py", line 203, in __call__
>>     if self.scan_check and not self.scan_check(node, env):
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Scanner/__init__.py", line 309, in current_check
>>     return not node.has_builder() or node.is_up_to_date()
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Node/FS.py", line 3286, in is_up_to_date
>>     if not self.changed(r):
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Node/FS.py", line 3241, in changed
>>     has_changed = SCons.Node.Node.changed(self, node)
>>   File "/home/ritter/belle2/scons-2.5/lib/SCons/Node/__init__.py", line 1462, in changed
>>     contents = self.get_executor().get_contents()
>> scons: building terminated because of errors.
>
>
> Compilation without the Repository() setup works fine.
>
> I think it is caused by the fact that Node.FS.File.release_target_info()
> sets self.executor to None. If I remove that line it seems to compile
> fine. This error also does not seem to happen for all targets, just for
> a subset of them.
>
> Best Regards,
>
> Martin
>
> [1] it works with 2.2.0, I checked 2.3.6 and 2.5.0, both show the same error
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>



More information about the Scons-users mailing list