@@ -159,7 +159,7 @@ func (m *Maker) AddStepSuffix(name string) string {
159159
160160func (m * Maker ) CMakeTargetAddDependencies (name string , dependencies []string ) string {
161161 var content string
162- dependencies = utils .AppendUniquely (dependencies , m .GetAllRunAlways (name )... )
162+ dependencies = utils .AppendUniquely (dependencies , m .GetIndependentRunAlways (name )... )
163163 if len (dependencies ) > 0 {
164164 content += "\n add_dependencies(" + m .AddStepSuffix (name )
165165 for _ , dependency := range dependencies {
@@ -194,32 +194,35 @@ func (m *Maker) BuildDependencies() string {
194194}
195195
196196func (m * Maker ) GetContextDependencies (execute string , dependsOn []string , deps DependenciesMap ) DependenciesMap {
197- for _ , item := range dependsOn {
198- if slices .Contains (m .Contexts , item ) {
199- // collect dependency on context (post build step)
200- deps [item ] = utils .AppendUniquely (deps [item ], execute )
201- } else {
202- // check recursively further dependencies
203- deps = m .GetContextDependencies (execute , m .GetDependsOn (item ), deps )
197+ if m .GetExecute (execute ).Always == nil {
198+ for _ , item := range dependsOn {
199+ if slices .Contains (m .Contexts , item ) {
200+ // collect dependency on context (post build step)
201+ deps [item ] = utils .AppendUniquely (deps [item ], execute )
202+ } else {
203+ // check recursively further dependencies
204+ deps = m .GetContextDependencies (execute , m .GetExecute (item ).DependsOn , deps )
205+ }
204206 }
205207 }
206208 return deps
207209}
208210
209- func (m * Maker ) GetDependsOn (execute string ) ( dependsOn [] string ) {
211+ func (m * Maker ) GetExecute (execute string ) Executes {
210212 for _ , item := range m .CbuildIndex .BuildIdx .Executes {
211213 if item .Execute == execute {
212- dependsOn = item .DependsOn
213- break
214+ return item
214215 }
215216 }
216- return dependsOn
217+ return Executes {}
217218}
218219
219- func (m * Maker ) GetAllRunAlways (execute string ) (elements []string ) {
220- for _ , item := range m .CbuildIndex .BuildIdx .Executes {
221- if item .Execute != execute && item .Always != nil {
222- elements = utils .AppendUniquely (elements , item .Execute )
220+ func (m * Maker ) GetIndependentRunAlways (execute string ) (elements []string ) {
221+ if m .GetExecute (execute ).Always == nil {
222+ for _ , item := range m .CbuildIndex .BuildIdx .Executes {
223+ if item .Always != nil && len (item .DependsOn ) == 0 {
224+ elements = utils .AppendUniquely (elements , item .Execute )
225+ }
223226 }
224227 }
225228 return elements
0 commit comments