MCPcopy Create free account
hub / github.com/celer-pkg/celer / checkAllTools

Method checkAllTools

configs/port_install.go:815–864  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

813}
814
815func (p *Port) checkAllTools() error {
816 var allTools []string
817 buildConfig := p.MatchedConfig
818 for _, nameVersion := range buildConfig.DevDependencies {
819 port := Port{DevDep: true}
820 if err := port.Init(p.ctx, nameVersion); err != nil {
821 return err
822 }
823
824 allTools = append(allTools, port.MatchedConfig.CheckTools()...)
825 }
826 for _, nameVersion := range buildConfig.Dependencies {
827 port := Port{DevDep: p.DevDep, HostDep: p.DevDep || p.HostDep}
828 if err := port.Init(p.ctx, nameVersion); err != nil {
829 return err
830 }
831 allTools = append(allTools, port.MatchedConfig.CheckTools()...)
832 }
833
834 if p.ctx.CCacheEnabled() {
835 allTools = append(allTools, "ccache")
836 }
837
838 allTools = append(allTools, p.MatchedConfig.CheckTools()...)
839
840 // Validate tools exist and ensure tool paths are in PATH.
841 if err := buildtools.CheckTools(p.ctx, allTools...); err != nil {
842 return err
843 }
844
845 // Refresh dynamic expression variables after tool detection because some
846 // ports rely on build_tools-provided paths during option expansion.
847 if exprVars := p.ctx.ExprVars(); exprVars != nil {
848 if buildtools.PythonTool != nil {
849 buildtools.PythonTool.RegisterExprVars(exprVars)
850 }
851 if buildtools.LLVMPath != "" {
852 llvmConfig := expr.If(runtime.GOOS == "windows", "llvm-config.exe", "llvm-config")
853 llvmRoot := fileio.ToRelPath(buildtools.LLVMPath)
854 exprVars.Put("LLVM_CONFIG", filepath.ToSlash(filepath.Join(llvmRoot, "bin", llvmConfig)))
855 }
856 }
857
858 if p.MatchedConfig != nil {
859 p.putExprVars(*p.MatchedConfig)
860 p.MatchedConfig.ExprVars = p.exprVars
861 }
862
863 return nil
864}
865
866// collectAllDeps walks the full transitive dependency tree (deps +
867// dev_deps) starting from p, returning a de-duplicated list of every

Callers 2

InstallMethod · 0.95
InstallFromSourceMethod · 0.95

Calls 10

InitMethod · 0.95
putExprVarsMethod · 0.95
CheckToolsFunction · 0.92
IfFunction · 0.92
ToRelPathFunction · 0.92
RegisterExprVarsMethod · 0.80
PutMethod · 0.80
CheckToolsMethod · 0.65
CCacheEnabledMethod · 0.65
ExprVarsMethod · 0.65

Tested by

no test coverage detected