]> git.tdb.fi Git - builder.git/blobdiff - source/lib/target.cpp
Avoid spurious dependency loop errors from side effects
[builder.git] / source / lib / target.cpp
index f99b0bc4165d1f4c342ebf9c9127159b90ca4bd2..d1aaf73be578c3836b48cf251536a4a4d446612b 100644 (file)
@@ -111,6 +111,9 @@ void Target::mark_rebuild(const string &reason)
 
 void Target::prepare()
 {
+       if(primary_target && primary_target->state<PREPARING)
+               primary_target->prepare();
+
        if(state>PREPARING)
                return;
        if(state==PREPARING)
@@ -122,8 +125,6 @@ void Target::prepare()
        }
 
        state = PREPARING;
-       if(primary_target)
-               primary_target->prepare();
        /* Prepare existing dependencies early, because their information may be
        needed to find other dependencies. */
        for(Target *d: depends)