package cgo

import "golang.org/x/tools/go/internal/cgo"

Index

Functions

func ProcessFiles

func ProcessFiles(bp *build.Package, fset *token.FileSet, DisplayPath func(path string) string, mode parser.Mode) ([]*ast.File, error)

ProcessFiles invokes the cgo preprocessor on bp.CgoFiles, parses the output and returns the resulting ASTs.

func Run

func Run(bp *build.Package, pkgdir, tmpdir string, useabs bool) (files, displayFiles []string, err error)

Run invokes the cgo preprocessor on bp.CgoFiles and returns two lists of files: the resulting processed files (in temporary directory tmpdir) and the corresponding names of the unprocessed files.

Run is adapted from (*builder).cgo in $GOROOT/src/cmd/go/build.go, but these features are unsupported: Objective C, CGOPKGPATH, CGO_FLAGS.

If useabs is set to true, absolute paths of the bp.CgoFiles will be passed in to the cgo preprocessor. This in turn will set the // line comments referring to those files to use absolute paths. This is needed for go/packages using the legacy go list support so it is able to find the original files.

Source Files

cgo.go cgo_pkgconfig.go

Version
v0.30.0 (latest)
Published
Feb 10, 2025
Platform
linux/amd64
Imports
12 packages
Last checked
7 hours ago

Tools for package owners.