2016-10-28 05:00:58 +03:00
|
|
|
package utils
|
|
|
|
|
|
|
|
import (
|
2017-03-02 21:24:25 +03:00
|
|
|
"fmt"
|
2016-10-28 05:00:58 +03:00
|
|
|
"os"
|
|
|
|
"os/exec"
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
|
|
|
)
|
|
|
|
|
2017-03-11 00:54:09 +03:00
|
|
|
func QT_PKG_CONFIG() bool {
|
2017-08-21 20:39:31 +03:00
|
|
|
return os.Getenv("QT_PKG_CONFIG") == "true"
|
2016-10-28 05:00:58 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func QT_DOC_DIR() string {
|
2017-08-21 20:39:31 +03:00
|
|
|
if dir, ok := os.LookupEnv("QT_DOC_DIR"); ok {
|
2016-10-28 05:00:58 +03:00
|
|
|
return filepath.Clean(dir)
|
|
|
|
}
|
2017-03-11 00:54:09 +03:00
|
|
|
switch QT_DISTRO() {
|
2016-10-28 05:00:58 +03:00
|
|
|
case "arch":
|
2017-08-21 20:39:31 +03:00
|
|
|
return "/usr/share/doc/qt"
|
2016-10-28 05:00:58 +03:00
|
|
|
case "fedora":
|
2017-08-21 20:39:31 +03:00
|
|
|
return "/usr/share/doc/qt5"
|
2016-10-28 05:00:58 +03:00
|
|
|
case "suse":
|
2017-08-21 20:39:31 +03:00
|
|
|
return "/usr/share/doc/packages/qt5"
|
2016-10-28 05:00:58 +03:00
|
|
|
case "ubuntu":
|
2017-08-21 20:39:31 +03:00
|
|
|
return "/usr/share/qt5/doc"
|
2017-04-01 21:52:43 +03:00
|
|
|
case "gentoo":
|
2017-08-21 20:39:31 +03:00
|
|
|
return "/usr/share/doc/qt-" + QT_VERSION()
|
2016-10-28 05:00:58 +03:00
|
|
|
default:
|
2017-08-21 20:39:31 +03:00
|
|
|
Log.Error("failed to detect the Linux distro")
|
|
|
|
return ""
|
2016-10-28 05:00:58 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func QT_MISC_DIR() string {
|
2017-08-21 20:39:31 +03:00
|
|
|
if dir, ok := os.LookupEnv("QT_MISC_DIR"); ok {
|
2016-10-28 05:00:58 +03:00
|
|
|
return filepath.Clean(dir)
|
|
|
|
}
|
2017-08-21 20:39:31 +03:00
|
|
|
if QT_DISTRO() == "arch" {
|
2017-02-28 21:27:55 +03:00
|
|
|
return filepath.Join(strings.TrimSpace(RunCmd(exec.Command("pkg-config", "--variable=libdir", "Qt5Core"), "cgo.LinuxPkgConfig_libDir")), "qt")
|
|
|
|
}
|
2017-08-21 20:39:31 +03:00
|
|
|
//fedora, suse, ubuntu, gentoo
|
|
|
|
return strings.TrimSuffix(strings.TrimSpace(RunCmd(exec.Command("pkg-config", "--variable=host_bins", "Qt5Core"), "cgo.LinuxPkgConfig_hostBins")), "/bin")
|
2016-10-28 05:00:58 +03:00
|
|
|
}
|
|
|
|
|
2017-03-11 00:54:09 +03:00
|
|
|
func QT_DISTRO() string {
|
2017-08-21 20:39:31 +03:00
|
|
|
if distro, ok := os.LookupEnv("QT_DISTRO"); ok {
|
|
|
|
return distro
|
2017-03-11 00:54:09 +03:00
|
|
|
}
|
2016-10-28 05:00:58 +03:00
|
|
|
if _, err := exec.LookPath("pacman"); err == nil {
|
|
|
|
return "arch"
|
|
|
|
}
|
|
|
|
if _, err := exec.LookPath("yum"); err == nil {
|
|
|
|
return "fedora"
|
|
|
|
}
|
|
|
|
if _, err := exec.LookPath("zypper"); err == nil {
|
|
|
|
return "suse"
|
|
|
|
}
|
|
|
|
if _, err := exec.LookPath("apt-get"); err == nil {
|
|
|
|
return "ubuntu"
|
|
|
|
}
|
2017-04-01 21:52:43 +03:00
|
|
|
if _, err := exec.LookPath("emerge"); err == nil {
|
|
|
|
return "gentoo"
|
|
|
|
}
|
2016-10-28 05:00:58 +03:00
|
|
|
Log.Error("failed to detect the Linux distro")
|
|
|
|
return ""
|
|
|
|
}
|
2016-11-07 04:48:18 +03:00
|
|
|
|
|
|
|
func QT_MXE_ARCH() string {
|
2017-08-21 20:39:31 +03:00
|
|
|
if arch := os.Getenv("QT_MXE_ARCH"); arch == "amd64" {
|
2016-11-07 04:48:18 +03:00
|
|
|
return arch
|
|
|
|
}
|
|
|
|
return "386"
|
|
|
|
}
|
2017-02-25 00:53:17 +03:00
|
|
|
|
|
|
|
func QT_MXE_STATIC() bool {
|
2017-08-21 20:39:31 +03:00
|
|
|
return os.Getenv("QT_MXE_STATIC") == "true"
|
2017-02-25 00:53:17 +03:00
|
|
|
}
|
2017-03-02 21:24:25 +03:00
|
|
|
|
|
|
|
func QT_MXE_TRIPLET() string {
|
2017-08-21 20:39:31 +03:00
|
|
|
prefix := "i686"
|
2017-03-02 21:24:25 +03:00
|
|
|
if QT_MXE_ARCH() == "amd64" {
|
|
|
|
prefix = "x86_64"
|
|
|
|
}
|
2017-08-21 20:39:31 +03:00
|
|
|
suffix := "shared"
|
2017-03-02 21:24:25 +03:00
|
|
|
if QT_MXE_STATIC() {
|
|
|
|
suffix = "static"
|
|
|
|
}
|
|
|
|
return fmt.Sprintf("%v-w64-mingw32.%v", prefix, suffix)
|
|
|
|
}
|
|
|
|
|
|
|
|
func QT_MXE_DIR() string {
|
2017-08-21 20:39:31 +03:00
|
|
|
if dir, ok := os.LookupEnv("QT_MXE_DIR"); ok {
|
2017-03-02 21:24:25 +03:00
|
|
|
return filepath.Clean(dir)
|
|
|
|
}
|
|
|
|
return filepath.Join("/usr", "lib", "mxe")
|
|
|
|
}
|
|
|
|
|
|
|
|
func QT_MXE_BIN(tool string) string {
|
|
|
|
return filepath.Join(QT_MXE_DIR(), "usr", "bin", fmt.Sprintf("%v-%v", QT_MXE_TRIPLET(), tool))
|
|
|
|
}
|
2017-09-21 00:21:39 +03:00
|
|
|
|
|
|
|
func QT_MXE() bool {
|
|
|
|
return os.Getenv("QT_MXE") == "true"
|
|
|
|
}
|
2018-03-26 18:34:54 +03:00
|
|
|
|
2018-03-29 13:09:04 +03:00
|
|
|
func QT_UBPORTS() bool {
|
|
|
|
return os.Getenv("QT_UBPORTS") == "true"
|
|
|
|
}
|
|
|
|
|
|
|
|
func QT_UBPORTS_ARCH() string {
|
|
|
|
if arch := os.Getenv("QT_UBPORTS_ARCH"); arch == "amd64" {
|
|
|
|
return arch
|
|
|
|
}
|
|
|
|
return "arm"
|
|
|
|
}
|
|
|
|
|
|
|
|
func QT_UBPORTS_VERSION() string {
|
|
|
|
if rel := os.Getenv("QT_UBPORTS_VERSION"); rel == "xenial" {
|
|
|
|
return rel
|
|
|
|
}
|
|
|
|
return "vivid"
|
2018-03-26 18:34:54 +03:00
|
|
|
}
|