diff --git a/internal/cmd/cmd.go b/internal/cmd/cmd.go index 896119fc..0be78743 100644 --- a/internal/cmd/cmd.go +++ b/internal/cmd/cmd.go @@ -43,6 +43,19 @@ func ParseFlags() bool { os.Setenv("QT_API", api) } + if api := utils.QT_API(""); api != "" { + if utils.RunCmdOptional(utils.GoList("{{.Dir}}", "github.com/therecipe/qt/internal/binding/files/docs/"+api), "get doc dir") == "" { + utils.Log.Errorf("invalid api version provided: '%v'", api) + fmt.Println("valid api versions are:") + if o := utils.RunCmdOptional(utils.GoList("'{{ join .Imports \"|\" }}'", "github.com/therecipe/qt/internal/binding/files/docs"), "get doc dir"); o != "" { + for _, v := range strings.Split(o, "|") { + fmt.Println(strings.TrimPrefix(strings.TrimSpace(strings.Replace(v, "'", "", -1)), "github.com/therecipe/qt/internal/binding/files/docs/")) + } + } + os.Exit(1) + } + } + if dir := *qt_dir; dir != utils.QT_DIR() { os.Setenv("QT_DIR", dir) } @@ -238,7 +251,7 @@ func virtual(arg []string, target, path string, writeCacheToHost bool, docker bo switch system { case "darwin": case "linux": - if (strings.HasPrefix(target, "windows") || strings.HasPrefix(target, "ubports")) && strings.Contains(target, "_") { + if (strings.HasPrefix(target, "windows") || strings.HasPrefix(target, "ubports") || strings.HasPrefix(target, "linux")) && strings.Contains(target, "_") { image = target } else if docker && strings.Contains(target, "_") { utils.Log.Fatalf("%v is currently not supported", target) @@ -396,6 +409,9 @@ func virtual(arg []string, target, path string, writeCacheToHost bool, docker bo if strings.HasPrefix(args[i], "ubports_") { args[i] = "ubports" } + if strings.HasPrefix(args[i], "linux_") { + args[i] = "linux" + } } utils.RunCmd(exec.Command("docker", args...), fmt.Sprintf("deploy binary for %v on %v with docker", target, runtime.GOOS)) diff --git a/internal/cmd/setup/install.go b/internal/cmd/setup/install.go index 47790b2c..3907b2dc 100644 --- a/internal/cmd/setup/install.go +++ b/internal/cmd/setup/install.go @@ -126,6 +126,7 @@ func Install(target string, docker, vagrant, failfast bool) { println(msg) failed = append(failed, strings.ToLower(module)) if strings.ToLower(module) == "core" || failfast { + utils.Log.Errorf("failed to install '%v'; aborting setup", strings.ToLower(module)) os.Exit(1) } } diff --git a/internal/cmd/setup/prep.go b/internal/cmd/setup/prep.go index 76592740..aa3b7c3c 100644 --- a/internal/cmd/setup/prep.go +++ b/internal/cmd/setup/prep.go @@ -43,7 +43,7 @@ func Prep() { var suc bool sPath := filepath.Join(utils.GOBIN(), app) var dPath string - for _, pdPath := range filepath.SplitList("/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:" + filepath.Join(filepath.Join(runtime.GOROOT(), "bin"))) { + for _, pdPath := range filepath.SplitList("/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin") { dPath = filepath.Join(pdPath, app) if sPath == dPath { continue diff --git a/internal/docker/linux/Dockerfile.static b/internal/docker/linux/Dockerfile.static index f5b1371c..90da1f49 100644 --- a/internal/docker/linux/Dockerfile.static +++ b/internal/docker/linux/Dockerfile.static @@ -31,6 +31,7 @@ COPY --from=therecipe/qt:linux /opt/Qt/Licenses /opt/Qt/Licenses RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install build-essential libglib2.0-dev libglu1-mesa-dev libpulse-dev \ && apt-get --no-install-recommends -qq -y install fontconfig libasound2 libegl1-mesa libnss3 libpci3 libxcomposite1 libxcursor1 libxi6 libxrandr2 libxtst6 && apt-get -qq clean +RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install libfontconfig1-dev libfreetype6-dev libxrender-dev libxkbcommon-dev && apt-get -qq clean RUN $GOPATH/bin/qtsetup prep RUN $GOPATH/bin/qtsetup check diff --git a/internal/docker/linux/Dockerfile.static_base b/internal/docker/linux/Dockerfile.static_base index 69eb32bb..ecfd991a 100644 --- a/internal/docker/linux/Dockerfile.static_base +++ b/internal/docker/linux/Dockerfile.static_base @@ -1,10 +1,13 @@ FROM ubuntu:16.04 RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install ca-certificates git -RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install dbus fontconfig libx11-6 libx11-xcb1 + RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install build-essential libglib2.0-dev libglu1-mesa-dev libpulse-dev \ && apt-get --no-install-recommends -qq -y install fontconfig libasound2 libegl1-mesa libnss3 libpci3 libxcomposite1 libxcursor1 libxi6 libxrandr2 libxtst6 -RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install libdbus-1-dev libssl-dev +RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install libdbus-1-dev libssl-dev libxkbcommon-dev + +RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install libfontconfig1-dev libfreetype6-dev libx11-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev +RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxkbcommon-dev RUN git clone -q --depth 1 -b 5.12 --recursive https://code.qt.io/qt/qt5.git /opt/qt5 -RUN cd /opt/qt5 && ./configure -prefix /opt/Qt/5.12.0/gcc_64 -confirm-license -opensource -static -qt-zlib -qt-libpng -qt-libjpeg -dbus -opengl -optimize-size -skip qtwebengine -skip qtfeedback -nomake tests -nomake examples && make && make install +RUN cd /opt/qt5 && ./configure -prefix /opt/Qt/5.12.0/gcc_64 -confirm-license -opensource -static -qt-zlib -qt-libpng -qt-libjpeg -xcb -dbus-runtime -openssl-runtime -opengl -optimize-size -skip qtwebengine -skip qtfeedback -nomake tests -nomake examples && make && make install