@@ -392,14 +392,14 @@ func (c *Cbuild) CMakeTargetCompileOptionsAbstractions(name string, abstractions
392392 if language == "C" {
393393 prefix = "CC"
394394 }
395- if ! IsAbstractionEmpty (abstractions , language ) {
395+ if ! AreAbstractionsEmpty (abstractions , [] string { language } ) {
396396 content += "\n cbuild_set_options_flags(" + prefix
397397 content += c .SetOptionsFlags (abstractions , language )
398398 content += " " + prefix + "_OPTIONS_FLAGS_" + name + ")"
399399 options += c .LanguageSpecificCompileOptions (language , "${" + prefix + "_OPTIONS_FLAGS_" + name + "}" )
400400 }
401401 }
402- if len (content ) > 0 {
402+ if len (options ) > 0 {
403403 content += "\n target_compile_options(" + name + "_ABSTRACTIONS INTERFACE" + options + "\n )"
404404 }
405405 return content
@@ -434,23 +434,18 @@ func IsCompileMiscEmpty(misc Misc) bool {
434434}
435435
436436func AreAbstractionsEmpty (abstractions CompilerAbstractions , languages []string ) bool {
437+ if len (abstractions .Debug ) > 0 || len (abstractions .Optimize ) > 0 || len (abstractions .Warnings ) > 0 {
438+ return false
439+ }
437440 for _ , language := range languages {
438- if ! IsAbstractionEmpty (abstractions , language ) {
441+ if (language == "C" && len (abstractions .LanguageC ) > 0 ) ||
442+ (language == "CXX" && len (abstractions .LanguageCpp ) > 0 ) {
439443 return false
440444 }
441445 }
442446 return true
443447}
444448
445- func IsAbstractionEmpty (abstractions CompilerAbstractions , language string ) bool {
446- if len (abstractions .Debug ) > 0 || len (abstractions .Optimize ) > 0 || len (abstractions .Warnings ) > 0 ||
447- (language == "C" && len (abstractions .LanguageC ) > 0 ) ||
448- (language == "CXX" && len (abstractions .LanguageCpp ) > 0 ) {
449- return false
450- }
451- return true
452- }
453-
454449func GetFileOptions (file Files , hasAbstractions bool , delimiter string ) string {
455450 var options []string
456451 language := GetLanguage (file )
@@ -712,7 +707,7 @@ func HasFileAbstractions(files []Files) bool {
712707 for _ , file := range files {
713708 if strings .Contains (file .Category , "source" ) {
714709 fileAbstractions := CompilerAbstractions {file .Debug , file .Optimize , file .Warnings , file .LanguageC , file .LanguageCpp }
715- hasFileAbstractions = ! IsAbstractionEmpty (fileAbstractions , GetLanguage (file ))
710+ hasFileAbstractions = ! AreAbstractionsEmpty (fileAbstractions , [] string { GetLanguage (file )} )
716711 if hasFileAbstractions {
717712 break
718713 }
@@ -764,7 +759,7 @@ func (c *Cbuild) CMakeSetFileProperties(file Files, abstractions CompilerAbstrac
764759 language := GetLanguage (file )
765760 hasMisc := ! IsCompileMiscEmpty (file .Misc )
766761 // file compiler abstractions
767- hasAbstractions := ! IsAbstractionEmpty (abstractions , language )
762+ hasAbstractions := ! AreAbstractionsEmpty (abstractions , [] string { language } )
768763 if hasAbstractions {
769764 content += c .CompilerAbstractions (abstractions , language )
770765 }
0 commit comments