[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