github.com/metux/go-metabuild@v0.0.0-20240118143255-d9ed5ab697f9/engine/autoconf/probe/c_function.go (about)

     1  package probe
     2  
     3  import (
     4  	"fmt"
     5  )
     6  
     7  type ProbeCFunction struct {
     8  	ProbeCBase
     9  }
    10  
    11  func (p ProbeCFunction) Probe() error {
    12  	f := p.Functions()
    13  	src := p.CSource()
    14  	for _, i := range f {
    15  		src.Text.WriteString(fmt.Sprintf("extern int %s();\n", i))
    16  	}
    17  	for _, i := range f {
    18  		src.MainBody.WriteString(fmt.Sprintf("    %s();\n", i))
    19  	}
    20  	return p.RunCheckCProg(src)
    21  }
    22  
    23  func MakeProbeCFunction(chk Check) ProbeInterface {
    24  	p := ProbeCFunction{MakeProbeCBase(chk)}
    25  	p.SetIdList(p.Functions())
    26  	return p
    27  }