fix qtmoc issue on linux

This commit is contained in:
therecipe 2017-02-28 19:27:55 +01:00
parent a006cbcfc8
commit 864e4fbe10
4 changed files with 21 additions and 14 deletions

View file

@ -162,7 +162,7 @@ func build() {
ldFlags = strings.Split(gLdFlags, " ") ldFlags = strings.Split(gLdFlags, " ")
} }
if strings.ToLower(os.Getenv("QT_DOCKER")) == "true" { if utils.QT_DOCKER() {
tagFlags = append(tagFlags, "docker") tagFlags = append(tagFlags, "docker")
} }
@ -518,7 +518,7 @@ func predeploy() {
Applicationbinary: filepath.Join(depPath, "libgo.so"), Applicationbinary: filepath.Join(depPath, "libgo.so"),
} }
if strings.ToLower(os.Getenv("QT_DOCKER")) == "true" { if utils.QT_DOCKER() {
jsonStruct.AndroidExtraLibs += "," + filepath.Join(os.Getenv("HOME"), "openssl-1.0.2k", "libcrypto.so") + "," + filepath.Join(os.Getenv("HOME"), "openssl-1.0.2k", "libssl.so") jsonStruct.AndroidExtraLibs += "," + filepath.Join(os.Getenv("HOME"), "openssl-1.0.2k", "libcrypto.so") + "," + filepath.Join(os.Getenv("HOME"), "openssl-1.0.2k", "libssl.so")
} }

View file

@ -255,13 +255,16 @@ func (m *appMoc) runQtMoc() (err error) {
case "darwin": case "darwin":
mocPath = filepath.Join(utils.QT_DARWIN_DIR(), "bin", "moc") mocPath = filepath.Join(utils.QT_DARWIN_DIR(), "bin", "moc")
case "linux": case "linux":
if m.buildTarget == "windows" || os.Getenv("QT_MXE_ARCH") != "" { if m.buildTarget == "windows" || (utils.QT_DOCKER() && os.Getenv("QT_MXE_ARCH") != "") {
mocPath = filepath.Join("/usr/lib/mxe/usr/", func() string { var prefix = "i686"
if utils.QT_MXE_ARCH() == "386" { if utils.QT_MXE_ARCH() == "amd64" {
return "i686" prefix = "x86_64"
} }
return "x86_64" var suffix = "shared"
}()+"-w64-mingw32.shared/qt5/bin/moc") if utils.QT_MXE_STATIC() {
suffix = "static"
}
mocPath = filepath.Join("/usr", "lib", "mxe", "usr", fmt.Sprintf("%v-w64-mingw32.%v", prefix, suffix), "qt5", "bin", "moc")
} else if utils.UsePkgConfig() { } else if utils.UsePkgConfig() {
mocPath = filepath.Join(strings.TrimSpace(utils.RunCmd(exec.Command("pkg-config", "--variable=host_bins", "Qt5Core"), "moc.LinuxPkgConfig_hostBins")), "moc") mocPath = filepath.Join(strings.TrimSpace(utils.RunCmd(exec.Command("pkg-config", "--variable=host_bins", "Qt5Core"), "moc.LinuxPkgConfig_hostBins")), "moc")
} else { } else {

View file

@ -113,3 +113,7 @@ func QT_QMAKE_DIR() string {
func QT_QMAKE_CGO() bool { func QT_QMAKE_CGO() bool {
return strings.ToLower(os.Getenv("QT_QMAKE_CGO")) == "true" return strings.ToLower(os.Getenv("QT_QMAKE_CGO")) == "true"
} }
func QT_DOCKER() bool {
return strings.ToLower(os.Getenv("QT_DOCKER")) == "true"
}

View file

@ -52,12 +52,12 @@ func QT_MISC_DIR() string {
switch LinuxDistro() { switch LinuxDistro() {
case "arch": case "arch":
return filepath.Join(strings.TrimSpace(RunCmd(exec.Command("pkg-config", "--variable=libdir", "Qt5Core"), "cgo.LinuxPkgConfig_libDir")), "qt") return filepath.Join(strings.TrimSpace(RunCmd(exec.Command("pkg-config", "--variable=libdir", "Qt5Core"), "cgo.LinuxPkgConfig_libDir")), "qt")
case "fedora", "suse", "ubuntu": case "fedora", "suse", "ubuntu":
return strings.TrimSuffix(strings.TrimSpace(RunCmd(exec.Command("pkg-config", "--variable=host_bins", "Qt5Core"), "cgo.LinuxPkgConfig_hostBins")), "/bin") return strings.TrimSuffix(strings.TrimSpace(RunCmd(exec.Command("pkg-config", "--variable=host_bins", "Qt5Core"), "cgo.LinuxPkgConfig_hostBins")), "/bin")
} }
Log.Error("failed to detect the Linux distro") Log.Error("failed to detect the Linux distro")
return "" return ""
} }
func LinuxDistro() string { func LinuxDistro() string {