forked from OSchip/llvm-project
56 lines
1.3 KiB
Go
56 lines
1.3 KiB
Go
|
//===- zdefaultcc.go - default compiler locations -------------------------===//
|
||
|
//
|
||
|
// The LLVM Compiler Infrastructure
|
||
|
//
|
||
|
// This file is distributed under the University of Illinois Open Source
|
||
|
// License. See LICENSE.TXT for details.
|
||
|
//
|
||
|
//===----------------------------------------------------------------------===//
|
||
|
//
|
||
|
// This file provides default locations for cc, cxx and llgo.
|
||
|
//
|
||
|
//===----------------------------------------------------------------------===//
|
||
|
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"path/filepath"
|
||
|
"os"
|
||
|
"os/exec"
|
||
|
)
|
||
|
|
||
|
var defaultGCCGO, defaultCC, defaultCXX string
|
||
|
|
||
|
func getInstPrefix() (string, error) {
|
||
|
path, err := exec.LookPath(os.Args[0])
|
||
|
if err != nil {
|
||
|
return "", err
|
||
|
}
|
||
|
|
||
|
path, err = filepath.EvalSymlinks(path)
|
||
|
if err != nil {
|
||
|
return "", err
|
||
|
}
|
||
|
|
||
|
prefix := filepath.Join(path, "..", "..")
|
||
|
return prefix, nil
|
||
|
}
|
||
|
|
||
|
func init() {
|
||
|
prefix, err := getInstPrefix()
|
||
|
if err != nil {
|
||
|
panic(err.Error())
|
||
|
}
|
||
|
|
||
|
defaultCC = filepath.Join(prefix, "bin", "clang")
|
||
|
defaultCXX = filepath.Join(prefix, "bin", "clang++")
|
||
|
defaultGCCGO = filepath.Join(prefix, "bin", "llgo")
|
||
|
toolDir = filepath.Join(prefix, "lib", "go", "llgo-@LLGO_VERSION@")
|
||
|
|
||
|
gccgoName = os.Getenv("GCCGO")
|
||
|
if gccgoName == "" {
|
||
|
gccgoName = defaultGCCGO
|
||
|
}
|
||
|
gccgoBin, _ = exec.LookPath(gccgoName)
|
||
|
}
|