selfstanding docker setup

This commit is contained in:
therecipe 2017-03-23 21:06:55 +01:00
parent 6bcfb21c9a
commit a0460f5a46
10 changed files with 51 additions and 30 deletions

View file

@ -64,7 +64,7 @@ func main() {
utils.CheckBuildTarget(target)
if docker {
cmd.Docker([]string{"qtminimal", "-debug"}, target, path)
cmd.Docker([]string{"qtminimal", "-debug"}, target, path, false)
} else {
minimal.Minimal(path, target)
}

View file

@ -64,7 +64,7 @@ func main() {
utils.CheckBuildTarget(target)
if docker {
cmd.Docker([]string{"qtmoc", "-debug"}, target, path)
cmd.Docker([]string{"qtmoc", "-debug"}, target, path, false)
} else {
moc.Moc(path, target)
}

View file

@ -73,7 +73,7 @@ func main() {
utils.CheckBuildTarget(target)
if docker {
cmd.Docker([]string{"qtrcc", "-debug"}, target, path)
cmd.Docker([]string{"qtrcc", "-debug"}, target, path, false)
} else {
rcc.Rcc(path, target, output)
}

View file

@ -72,28 +72,23 @@ func main() {
utils.CheckBuildTarget(target)
if docker {
setup.Test(target, docker)
return
}
switch mode {
case "full":
setup.Prep()
setup.Check(target)
setup.Generate(target)
setup.Install(target)
setup.Test(target, false)
setup.Check(target, docker)
setup.Generate(target, docker)
setup.Install(target, docker)
setup.Test(target, docker)
case "prep":
setup.Prep()
case "check":
setup.Check(target)
setup.Check(target, docker)
case "generate":
setup.Generate(target)
setup.Generate(target, docker)
case "install":
setup.Install(target)
setup.Install(target, docker)
case "test":
setup.Test(target, false)
setup.Test(target, docker)
case "update":
setup.Update()
case "upgrade":

View file

@ -41,7 +41,7 @@ func ParseFlags() bool {
return help != nil && *help
}
func Docker(arg []string, target, path string) {
func Docker(arg []string, target, path string, writeCacheToHost bool) {
arg = append(arg, target)
var image string
@ -76,7 +76,15 @@ func Docker(arg []string, target, path string) {
paths = append(paths, fmt.Sprintf("/media/sf_GOPATH%v", i))
}
args = append(args, []string{"-e", "GOPATH=/home/user/work:" + strings.Join(paths, ":")}...)
gpath := strings.Join(paths, ":")
if writeCacheToHost {
gpath += ":/home/user/work"
args = append(args, []string{"-e", "QT_STUB=true"}...)
} else {
gpath = "/home/user/work:" + gpath
}
args = append(args, []string{"-e", "GOPATH=" + gpath}...)
args = append(args, []string{"-i", fmt.Sprintf("therecipe/qt:%v", image)}...)
@ -92,7 +100,7 @@ func Docker(arg []string, target, path string) {
}
}
if !found {
if !found && path != "" {
utils.Log.Panicln("Project needs to be inside GOPATH", path, os.Getenv("GOPATH"))
}

View file

@ -33,7 +33,7 @@ func Deploy(mode, target, path string, docker bool, ldFlags string, fast bool) {
args = append(args, "-fast")
}
args = append(args, []string{"-ldflags=" + ldFlags, "build"}...)
cmd.Docker(args, target, path)
cmd.Docker(args, target, path, false)
break
}

View file

@ -11,8 +11,14 @@ import (
"github.com/therecipe/qt/internal/utils"
)
func Check(target string) {
utils.Log.Infof("running: 'qtsetup check %v'", target)
func Check(target string, docker bool) {
utils.Log.Infof("running: 'qtsetup check %v' [docker=%v]", target, docker)
if docker {
if _, err := exec.LookPath("docker"); err != nil {
utils.Log.WithError(err).Fatal("failed to find docker, did you install docker?")
}
return
}
hash := "please install git"
if _, err := exec.LookPath("git"); err == nil {

View file

@ -8,10 +8,16 @@ import (
"github.com/therecipe/qt/internal/binding/templater"
"github.com/therecipe/qt/internal/utils"
"github.com/therecipe/qt/internal/cmd"
)
func Generate(target string) {
utils.Log.Infof("running: 'qtsetup generate %v'", target)
func Generate(target string, docker bool) {
utils.Log.Infof("running: 'qtsetup generate %v' [docker=%v]", target, docker)
if docker {
cmd.Docker([]string{"/home/user/work/bin/qtsetup", "-debug", "generate"}, "linux", "", true)
return
}
parser.LoadModules()

View file

@ -14,8 +14,8 @@ import (
"github.com/therecipe/qt/internal/utils"
)
func Install(target string) {
utils.Log.Infof("running: 'qtsetup install %v'", target)
func Install(target string, docker bool) {
utils.Log.Infof("running: 'qtsetup install %v' [docker=%v]", target, docker)
if target == "sailfish" || target == "sailfish-emulator" {
if _, err := ioutil.ReadDir(filepath.Join(runtime.GOROOT(), "bin", "linux_386")); err != nil {
@ -39,7 +39,7 @@ func Install(target string) {
}
mode := "full"
if utils.QT_STUB() {
if utils.QT_STUB() || docker {
mode = "stub"
}
utils.Log.Infof("installing %v qt/%v", mode, strings.ToLower(module))

View file

@ -16,7 +16,12 @@ import (
)
func Test(target string, docker bool) {
utils.Log.Infof("running: 'qtsetup test %v'", target)
if docker && target == "darwin" {
utils.Log.Warn("darwin is currently not supported as a deploy target with docker; testing the linux deployment instead")
target = "linux"
}
utils.Log.Infof("running: 'qtsetup test %v' [docker=%v]", target, docker)
if utils.CI() && target == runtime.GOOS && runtime.GOOS != "windows" { //TODO: split test for windows ?
utils.Log.Infof("running setup/test %v CI", target)
@ -110,11 +115,12 @@ func Test(target string, docker bool) {
continue
}
example := filepath.Join(cat, example)
utils.Log.Infoln("testing", example)
path := utils.GoQtPkgPath("internal", "examples", example)
utils.Log.Infof("testing %v%v(%v)", example, strings.Repeat(" ", 20-len(example)), path)
deploy.Deploy(
mode,
target,
utils.GoQtPkgPath("internal", "examples", example),
path,
docker,
"",
false,