raise error when circular dependencies are found - close #38

This commit is contained in:
josh committed 2017-06-13 19:37:41 -04:00
1 parent eca01c38df
commit 6dd70ff65e
4 files changed
+28

No files matched your search

+6
View File
@@ -47,12 +47,18 @@ module Rscons
# @return [nil, Hash]
# The next job to run.
def get_next_job_to_run(targets_still_building)
targets_skipped = Set.new
@jobs.keys.each do |target|
skip = false
(@jobs[target][0][:sources] + (@build_dependencies[target] || []).to_a).each do |src|
if @jobs.include?(src)
if targets_skipped.include?(src) or (src == target)
# We have encountered a circular dependency.
raise "Circular build dependency for #{src}"
end
# Skip this target because it depends on another target later in
# the job set.
targets_skipped << target
skip = true
break
end