env variables for rpi + only build minimal

This commit is contained in:
therecipe 2016-10-07 16:41:24 +02:00
parent 593e26153f
commit e5b2d9abca
9 changed files with 95 additions and 100 deletions

View file

@ -3,11 +3,9 @@ clone_depth: 1
clone_folder: C:\work\src\github.com\therecipe\qt
environment:
GOPATH: C:\work
PATH: C:\Qt\Qt5.7.0\Tools\mingw530_32\bin;%PATH%
install:
- cmd: >-
set PATH=%PATH%;C:\Qt\Tools\mingw530_32\bin
set QT=qt-opensource-windows-x86-android-5.7.0.exe
curl -sL --retry 3 -o %TMP%\%QT% https://download.qt.io/official_releases/qt/5.7/5.7.0/%QT%

View file

@ -29,7 +29,7 @@ install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then travis_wait 45 $GOPATH/src/github.com/therecipe/qt/internal/ci/darwin.sh; fi
before_script:
- sudo chown $USER /usr/local/bin/
- sudo chown $USER /usr/local/bin
script:
- if [[ "$DESKTOP" == "true" ]]; then $GOPATH/src/github.com/therecipe/qt/setup.sh; else go run $GOPATH/src/github.com/therecipe/qt/internal/setup/generate.go; fi

View file

@ -63,7 +63,7 @@
3. Add the directory that contains **gcc** and **g++** to your **PATH**
* `C:\Qt\Qt5.7.0\Tools\mingw530_32\bin\`
* `C:\Qt\Qt5.7.0\Tools\mingw530_32\bin`
4. Download the binding
@ -224,7 +224,7 @@
* `cd $HOME/raspi/qt-everywhere-opensource-src-5.7.0/qtwayland && wget https://github.com/qtproject/qtwayland/commit/75294be3.patch && patch -p1 -i 75294be3.patch`
5. Download the cross compiler
5. Download the cross compiler; you can also define a custom location with **RPI_TOOLS_DIR**
* `cd $HOME/raspi && git clone --depth 1 https://github.com/raspberrypi/tools.git`
@ -285,7 +285,7 @@
* `rsync -avz root@$RASPI_IP:/opt/vc sysroot/opt --delete`
11. Prepare sysroot
11. Prepare sysroot; you can also define a custom location with **RPI1_SYSROOT_DIR**, **RPI2_SYSROOT_DIR** or **RPI3_SYSROOT_DIR**
* `cd $HOME/raspi && wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py`
* `chmod +x sysroot-relativelinks.py && ./sysroot-relativelinks.py sysroot`

View file

@ -3,7 +3,6 @@ package templater
import (
"bytes"
"fmt"
"os"
"path/filepath"
"runtime"
"strings"
@ -484,8 +483,8 @@ func cgoRaspberryPi1(module string) {
}())
fmt.Fprint(bb, "/*\n")
fmt.Fprint(bb, "#cgo CFLAGS: -pipe -marm -mfpu=vfp -mtune=arm1176jzf-s -march=armv6zk -mabi=aapcs-linux -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -O2 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CXXFLAGS: -pipe -marm -mfpu=vfp -mtune=arm1176jzf-s -march=armv6zk -mabi=aapcs-linux -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -O2 -std=gnu++11 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CFLAGS: -pipe -marm -mfpu=vfp -mtune=arm1176jzf-s -march=armv6zk -mabi=aapcs-linux -mfloat-abi=hard --sysroot=${RPI1_SYSROOT_DIR} -O2 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CXXFLAGS: -pipe -marm -mfpu=vfp -mtune=arm1176jzf-s -march=armv6zk -mabi=aapcs-linux -mfloat-abi=hard --sysroot=${RPI1_SYSROOT_DIR} -O2 -std=gnu++11 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CXXFLAGS: -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG")
for _, m := range libs {
@ -493,7 +492,7 @@ func cgoRaspberryPi1(module string) {
}
fmt.Fprint(bb, "\n")
fmt.Fprintf(bb, "#cgo CXXFLAGS: -I%v/5.7/rpi1/include -I/home/${USERNAME}/raspi/sysroot/opt/vc/include -I/home/${USERNAME}/raspi/sysroot/opt/vc/include/interface/vcos/pthreads -I/home/${USERNAME}/raspi/sysroot/opt/vc/include/interface/vmcs_host/linux -I%v/5.7/rpi1/mkspecs/devices/linux-rasp-pi-g++\n", utils.QT_DIR(), utils.QT_DIR())
fmt.Fprintf(bb, "#cgo CXXFLAGS: -I%v/5.7/rpi1/include -I${RPI1_SYSROOT_DIR}/opt/vc/include -I${RPI1_SYSROOT_DIR}/opt/vc/include/interface/vcos/pthreads -I${RPI1_SYSROOT_DIR}/opt/vc/include/interface/vmcs_host/linux -I%v/5.7/rpi1/mkspecs/devices/linux-rasp-pi-g++\n", utils.QT_DIR(), utils.QT_DIR())
fmt.Fprint(bb, "#cgo CXXFLAGS:")
for _, m := range libs {
@ -501,9 +500,9 @@ func cgoRaspberryPi1(module string) {
}
fmt.Fprint(bb, "\n\n")
fmt.Fprintf(bb, "#cgo LDFLAGS: -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/opt/vc/lib -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/lib/arm-linux-gnueabihf -Wl,-rpath-link,%v/5.7/rpi1/lib -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin\n", utils.QT_DIR())
fmt.Fprintf(bb, "#cgo LDFLAGS: -Wl,-rpath-link,${RPI1_SYSROOT_DIR}/opt/vc/lib -Wl,-rpath-link,${RPI1_SYSROOT_DIR}/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,${RPI1_SYSROOT_DIR}/lib/arm-linux-gnueabihf -Wl,-rpath-link,%v/5.7/rpi1/lib -mfloat-abi=hard --sysroot=${RPI1_SYSROOT_DIR} -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin\n", utils.QT_DIR())
fmt.Fprintf(bb, "#cgo LDFLAGS: -L/home/${USERNAME}/raspi/sysroot/opt/vc/lib -L%v/5.7/rpi1/lib", utils.QT_DIR())
fmt.Fprintf(bb, "#cgo LDFLAGS: -L${RPI1_SYSROOT_DIR}/opt/vc/lib -L%v/5.7/rpi1/lib", utils.QT_DIR())
for _, m := range libs {
if m != "UiPlugin" {
fmt.Fprintf(bb, " -lQt5%v", m)
@ -515,12 +514,7 @@ func cgoRaspberryPi1(module string) {
fmt.Fprint(bb, "import \"C\"\n")
var username = os.Getenv("USERNAME")
if username == "" {
username = "user"
}
var tmp = strings.Replace(bb.String(), "${USERNAME}", username, -1)
var tmp = strings.Replace(bb.String(), "${RPI1_SYSROOT_DIR}", utils.RPI1_SYSROOT_DIR(), -1)
if module == parser.MOC {
utils.Save(filepath.Join(MocAppPath, "moc_cgo_rpi1_linux_arm.go"), tmp)
@ -545,8 +539,8 @@ func cgoRaspberryPi2(module string) {
}())
fmt.Fprint(bb, "/*\n")
fmt.Fprint(bb, "#cgo CFLAGS: -pipe -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -O2 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CXXFLAGS: -pipe -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -O2 -std=gnu++11 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CFLAGS: -pipe -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux -mfloat-abi=hard --sysroot=${RPI2_SYSROOT_DIR} -O2 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CXXFLAGS: -pipe -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux -mfloat-abi=hard --sysroot=${RPI2_SYSROOT_DIR} -O2 -std=gnu++11 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CXXFLAGS: -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG")
for _, m := range libs {
@ -554,7 +548,7 @@ func cgoRaspberryPi2(module string) {
}
fmt.Fprint(bb, "\n")
fmt.Fprintf(bb, "#cgo CXXFLAGS: -I%v/5.7/rpi2/include -I/home/${USERNAME}/raspi/sysroot/opt/vc/include -I/home/${USERNAME}/raspi/sysroot/opt/vc/include/interface/vcos/pthreads -I/home/${USERNAME}/raspi/sysroot/opt/vc/include/interface/vmcs_host/linux -I%v/5.7/rpi2/mkspecs/devices/linux-rasp-pi2-g++\n", utils.QT_DIR(), utils.QT_DIR())
fmt.Fprintf(bb, "#cgo CXXFLAGS: -I%v/5.7/rpi2/include -I${RPI2_SYSROOT_DIR}/opt/vc/include -I${RPI2_SYSROOT_DIR}/opt/vc/include/interface/vcos/pthreads -I${RPI2_SYSROOT_DIR}/opt/vc/include/interface/vmcs_host/linux -I%v/5.7/rpi2/mkspecs/devices/linux-rasp-pi2-g++\n", utils.QT_DIR(), utils.QT_DIR())
fmt.Fprint(bb, "#cgo CXXFLAGS:")
for _, m := range libs {
@ -562,9 +556,9 @@ func cgoRaspberryPi2(module string) {
}
fmt.Fprint(bb, "\n\n")
fmt.Fprintf(bb, "#cgo LDFLAGS: -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/opt/vc/lib -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/lib/arm-linux-gnueabihf -Wl,-rpath-link,%v/5.7/rpi2/lib -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin\n", utils.QT_DIR())
fmt.Fprintf(bb, "#cgo LDFLAGS: -Wl,-rpath-link,${RPI2_SYSROOT_DIR}/opt/vc/lib -Wl,-rpath-link,${RPI2_SYSROOT_DIR}/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,${RPI2_SYSROOT_DIR}/lib/arm-linux-gnueabihf -Wl,-rpath-link,%v/5.7/rpi2/lib -mfloat-abi=hard --sysroot=${RPI2_SYSROOT_DIR} -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin\n", utils.QT_DIR())
fmt.Fprintf(bb, "#cgo LDFLAGS: -L/home/${USERNAME}/raspi/sysroot/opt/vc/lib -L%v/5.7/rpi2/lib", utils.QT_DIR())
fmt.Fprintf(bb, "#cgo LDFLAGS: -L${RPI2_SYSROOT_DIR}/opt/vc/lib -L%v/5.7/rpi2/lib", utils.QT_DIR())
for _, m := range libs {
if m != "UiPlugin" {
fmt.Fprintf(bb, " -lQt5%v", m)
@ -576,12 +570,7 @@ func cgoRaspberryPi2(module string) {
fmt.Fprint(bb, "import \"C\"\n")
var username = os.Getenv("USERNAME")
if username == "" {
username = "user"
}
var tmp = strings.Replace(bb.String(), "${USERNAME}", username, -1)
var tmp = strings.Replace(bb.String(), "${RPI2_SYSROOT_DIR}", utils.RPI2_SYSROOT_DIR(), -1)
if module == parser.MOC {
utils.Save(filepath.Join(MocAppPath, "moc_cgo_rpi2_linux_arm.go"), tmp)
@ -606,8 +595,8 @@ func cgoRaspberryPi3(module string) {
}())
fmt.Fprint(bb, "/*\n")
fmt.Fprint(bb, "#cgo CFLAGS: -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -O2 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CXXFLAGS: -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb -std=c++11 -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -O2 -std=gnu++11 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CFLAGS: -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb -mfloat-abi=hard --sysroot=${RPI3_SYSROOT_DIR} -O2 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CXXFLAGS: -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb -std=c++11 -mfloat-abi=hard --sysroot=${RPI3_SYSROOT_DIR} -O2 -std=gnu++11 -fno-exceptions -Wall -W -D_REENTRANT -fPIC\n")
fmt.Fprint(bb, "#cgo CXXFLAGS: -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG")
for _, m := range libs {
@ -615,7 +604,7 @@ func cgoRaspberryPi3(module string) {
}
fmt.Fprint(bb, "\n")
fmt.Fprintf(bb, "#cgo CXXFLAGS: -I%v/5.7/rpi3/include -I/home/${USERNAME}/raspi/sysroot/opt/vc/include -I/home/${USERNAME}/raspi/sysroot/opt/vc/include/interface/vcos/pthreads -I/home/${USERNAME}/raspi/sysroot/opt/vc/include/interface/vmcs_host/linux -I%v/5.7/rpi3/mkspecs/devices/linux-rpi3-g++\n", utils.QT_DIR(), utils.QT_DIR())
fmt.Fprintf(bb, "#cgo CXXFLAGS: -I%v/5.7/rpi3/include -I${RPI3_SYSROOT_DIR}/opt/vc/include -I${RPI3_SYSROOT_DIR}/opt/vc/include/interface/vcos/pthreads -I${RPI3_SYSROOT_DIR}/opt/vc/include/interface/vmcs_host/linux -I%v/5.7/rpi3/mkspecs/devices/linux-rpi3-g++\n", utils.QT_DIR(), utils.QT_DIR())
fmt.Fprint(bb, "#cgo CXXFLAGS:")
for _, m := range libs {
@ -623,9 +612,9 @@ func cgoRaspberryPi3(module string) {
}
fmt.Fprint(bb, "\n\n")
fmt.Fprintf(bb, "#cgo LDFLAGS: -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/opt/vc/lib -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/lib/arm-linux-gnueabihf -Wl,-rpath-link,%v/5.7/rpi3/lib -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin\n", utils.QT_DIR())
fmt.Fprintf(bb, "#cgo LDFLAGS: -Wl,-rpath-link,${RPI3_SYSROOT_DIR}/opt/vc/lib -Wl,-rpath-link,${RPI3_SYSROOT_DIR}/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,${RPI3_SYSROOT_DIR}/lib/arm-linux-gnueabihf -Wl,-rpath-link,%v/5.7/rpi3/lib -mfloat-abi=hard --sysroot=${RPI3_SYSROOT_DIR} -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin\n", utils.QT_DIR())
fmt.Fprintf(bb, "#cgo LDFLAGS: -L/home/${USERNAME}/raspi/sysroot/opt/vc/lib -L%v/5.7/rpi3/lib", utils.QT_DIR())
fmt.Fprintf(bb, "#cgo LDFLAGS: -L${RPI3_SYSROOT_DIR}/opt/vc/lib -L%v/5.7/rpi3/lib", utils.QT_DIR())
for _, m := range libs {
if m != "UiPlugin" {
fmt.Fprintf(bb, " -lQt5%v", m)
@ -637,12 +626,7 @@ func cgoRaspberryPi3(module string) {
fmt.Fprint(bb, "import \"C\"\n")
var username = os.Getenv("USERNAME")
if username == "" {
username = "user"
}
var tmp = strings.Replace(bb.String(), "${USERNAME}", username, -1)
var tmp = strings.Replace(bb.String(), "${RPI3_SYSROOT_DIR}", utils.RPI3_SYSROOT_DIR(), -1)
if module == parser.MOC {
utils.Save(filepath.Join(MocAppPath, "moc_cgo_rpi3_linux_arm.go"), tmp)

View file

@ -96,9 +96,7 @@ func args() {
}
}
if buildTarget == "sailfish" || buildTarget == "sailfish-emulator" || strings.ToLower(os.Getenv("CI")) == "true" {
buildMinimal = true
}
buildMinimal = true
switch buildMode {
case "build", "run", "test":
@ -219,12 +217,7 @@ func qrc() {
func qmlHeader() string {
var username = os.Getenv("USERNAME")
if username == "" {
username = "user"
}
return strings.Replace(strings.Replace(strings.Replace(`package main
return strings.Replace(strings.Replace(strings.Replace(strings.Replace(strings.Replace(strings.Replace(`package main
/*
#cgo +build windows,386 LDFLAGS: -L${QT_DIR}/5.7/mingw53_32/lib -lQt5Core
@ -254,15 +247,18 @@ func qmlHeader() string {
#cgo +build sailfish,linux,arm LDFLAGS: -Wl,-rpath,/usr/share/harbour-${APPNAME}/lib -Wl,-rpath-link,/srv/mer/targets/SailfishOS-armv7hl/usr/lib -Wl,-rpath-link,/srv/mer/targets/SailfishOS-armv7hl/lib -L/srv/mer/targets/SailfishOS-armv7hl/usr/lib -L/srv/mer/targets/SailfishOS-armv7hl/lib -lQt5Core
#cgo +build rpi1,linux,arm LDFLAGS: -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/opt/vc/lib -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/lib/arm-linux-gnueabihf -Wl,-rpath-link,${QT_DIR}/5.7/rpi1/lib -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -L/home/${USERNAME}/raspi/sysroot/opt/vc/lib -L${QT_DIR}/5.7/rpi1/lib -lQt5Core
#cgo +build rpi2,linux,arm LDFLAGS: -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/opt/vc/lib -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/lib/arm-linux-gnueabihf -Wl,-rpath-link,${QT_DIR}/5.7/rpi2/lib -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -L/home/${USERNAME}/raspi/sysroot/opt/vc/lib -L${QT_DIR}/5.7/rpi2/lib -lQt5Core
#cgo +build rpi3,linux,arm LDFLAGS: -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/opt/vc/lib -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/${USERNAME}/raspi/sysroot/lib/arm-linux-gnueabihf -Wl,-rpath-link,${QT_DIR}/5.7/rpi3/lib -mfloat-abi=hard --sysroot=/home/${USERNAME}/raspi/sysroot -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -L/home/${USERNAME}/raspi/sysroot/opt/vc/lib -L${QT_DIR}/5.7/rpi3/lib -lQt5Core
#cgo +build rpi1,linux,arm LDFLAGS: -Wl,-rpath-link,${RPI1_SYSROOT_DIR}/opt/vc/lib -Wl,-rpath-link,${RPI1_SYSROOT_DIR}/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,${RPI1_SYSROOT_DIR}/lib/arm-linux-gnueabihf -Wl,-rpath-link,${QT_DIR}/5.7/rpi1/lib -mfloat-abi=hard --sysroot=${RPI1_SYSROOT_DIR} -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -L${RPI1_SYSROOT_DIR}/opt/vc/lib -L${QT_DIR}/5.7/rpi1/lib -lQt5Core
#cgo +build rpi2,linux,arm LDFLAGS: -Wl,-rpath-link,${RPI2_SYSROOT_DIR}/opt/vc/lib -Wl,-rpath-link,${RPI2_SYSROOT_DIR}/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,${RPI2_SYSROOT_DIR}/lib/arm-linux-gnueabihf -Wl,-rpath-link,${QT_DIR}/5.7/rpi2/lib -mfloat-abi=hard --sysroot=${RPI2_SYSROOT_DIR} -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -L${RPI2_SYSROOT_DIR}/opt/vc/lib -L${QT_DIR}/5.7/rpi2/lib -lQt5Core
#cgo +build rpi3,linux,arm LDFLAGS: -Wl,-rpath-link,${RPI3_SYSROOT_DIR}/opt/vc/lib -Wl,-rpath-link,${RPI3_SYSROOT_DIR}/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,${RPI3_SYSROOT_DIR}/lib/arm-linux-gnueabihf -Wl,-rpath-link,${QT_DIR}/5.7/rpi3/lib -mfloat-abi=hard --sysroot=${RPI3_SYSROOT_DIR} -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -L${RPI3_SYSROOT_DIR}/opt/vc/lib -L${QT_DIR}/5.7/rpi3/lib -lQt5Core
*/
import "C"`,
"${QT_DIR}", strings.Replace(utils.QT_DIR(), "\\", "/", -1), -1),
"${USERNAME}", username, -1),
"${APPNAME}", appName, -1)
"${QT_DIR}", utils.QT_DIR(), -1),
"${RPI1_SYSROOT_DIR}", utils.RPI1_SYSROOT_DIR(), -1),
"${RPI2_SYSROOT_DIR}", utils.RPI2_SYSROOT_DIR(), -1),
"${RPI3_SYSROOT_DIR}", utils.RPI3_SYSROOT_DIR(), -1),
"${APPNAME}", appName, -1),
"\\", "/", -1)
}
func build() {
@ -470,8 +466,8 @@ func build() {
"GOARM": "7",
"CGO_ENABLED": "1",
"CC": fmt.Sprintf("/home/%v/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc", os.Getenv("USERNAME")),
"CXX": fmt.Sprintf("/home/%v/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-g++", os.Getenv("USERNAME")),
"CC": fmt.Sprintf("%v/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc", utils.RPI_TOOLS_DIR()),
"CXX": fmt.Sprintf("%v/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-g++", utils.RPI_TOOLS_DIR()),
}
if buildTarget == "rpi1" {
@ -788,7 +784,7 @@ func deploy() {
if strings.HasPrefix(buildTarget, "rpi") {
libraryPath = fmt.Sprintf("%v/5.7/%v/lib/", utils.QT_DIR(), buildTarget)
lddPath = fmt.Sprintf("/home/%v/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-ldd", os.Getenv("USERNAME"))
lddPath = fmt.Sprintf("%v/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-ldd", utils.RPI_TOOLS_DIR())
lddExtra = "--root=/"
lddOutput = runCmd(exec.Command(lddPath, lddExtra, filepath.Join(depPath, appName)), "deploy.ldd")
} else {

View file

@ -83,6 +83,7 @@ func moc(appPath string) {
}
tmpFiles = append(tmpFiles, filepath.Join(appPath, name))
}
utils.RemoveAll(filepath.Join(appPath, "cleanup.json"))
var module = &parser.Module{Project: parser.MOC, Namespace: &parser.Namespace{Classes: make([]*parser.Class, 0)}}

View file

@ -184,8 +184,8 @@ func main() {
"GOARM": "7",
"CGO_ENABLED": "1",
"CC": fmt.Sprintf("/home/%v/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc", os.Getenv("USERNAME")),
"CXX": fmt.Sprintf("/home/%v/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-g++", os.Getenv("USERNAME")),
"CC": fmt.Sprintf("%v/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc", utils.RPI_TOOLS_DIR()),
"CXX": fmt.Sprintf("%v/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-g++", utils.RPI_TOOLS_DIR()),
}
if buildTarget == "rpi1" {
@ -207,10 +207,6 @@ func main() {
}
runCmd(cmd, "install.std_1")
if strings.HasPrefix(buildTarget, "sailfish") {
return
}
//armv7
if buildTarget == "ios" && (strings.HasPrefix(runtime.Version(), "go1.7") || strings.HasPrefix(runtime.Version(), "devel")) {
var cmdiOS = exec.Command("go", "install")
@ -228,7 +224,7 @@ func main() {
}
}
if strings.ToLower(os.Getenv("CI")) == "true" {
if buildTarget != "desktop" || strings.ToLower(os.Getenv("CI")) == "true" {
return
}

View file

@ -26,45 +26,37 @@ func main() {
fmt.Println("------------------------test----------------------------")
//TODO:
var gopath = os.Getenv("GOPATH")
if gopath != "" {
utils.MakeFolder(filepath.Join(os.Getenv("GOPATH"), "bin"))
utils.MakeFolder(filepath.Join(gopath, "bin"))
utils.RemoveAll(filepath.Join(os.Getenv("GOPATH"), "bin", fmt.Sprintf("qtdeploy%v", ending)))
utils.RemoveAll(filepath.Join(os.Getenv("GOPATH"), "bin", fmt.Sprintf("qtmoc%v", ending)))
utils.RemoveAll(filepath.Join(gopath, "bin", fmt.Sprintf("qtdeploy%v", ending)))
utils.RemoveAll(filepath.Join(gopath, "bin", fmt.Sprintf("qtmoc%v", ending)))
runCmd(exec.Command("go", "build", "-o", filepath.Join(os.Getenv("GOPATH"), "bin", fmt.Sprintf("qtdeploy%v", ending)), utils.GoQtPkgPath("internal", "deploy", "deploy.go")), "qtdeploy")
runCmd(exec.Command("go", "build", "-o", filepath.Join(os.Getenv("GOPATH"), "bin", fmt.Sprintf("qtmoc%v", ending)), utils.GoQtPkgPath("internal", "moc", "moc.go")), "qtmoc")
runCmd(exec.Command("go", "build", "-o", filepath.Join(gopath, "bin", fmt.Sprintf("qtdeploy%v", ending)), utils.GoQtPkgPath("internal", "deploy", "deploy.go")), "qtdeploy")
runCmd(exec.Command("go", "build", "-o", filepath.Join(gopath, "bin", fmt.Sprintf("qtmoc%v", ending)), utils.GoQtPkgPath("internal", "moc", "moc.go")), "qtmoc")
switch runtime.GOOS {
case "darwin", "linux":
{
utils.RemoveAll(filepath.Join("/usr", "local", "bin", "qtdeploy"))
utils.RemoveAll(filepath.Join("/usr", "local", "bin", "qtmoc"))
switch runtime.GOOS {
case "darwin", "linux":
{
utils.RemoveAll(filepath.Join("/usr", "local", "bin", "qtdeploy"))
utils.RemoveAll(filepath.Join("/usr", "local", "bin", "qtmoc"))
runCmdOptional(exec.Command("ln", "-s", filepath.Join(gopath, "bin", "qtdeploy"), filepath.Join("/usr", "local", "bin", "qtdeploy")), "symlink.qtdeploy")
runCmdOptional(exec.Command("ln", "-s", filepath.Join(gopath, "bin", "qtmoc"), filepath.Join("/usr", "local", "bin", "qtmoc")), "symlink.qtmoc")
}
case "windows":
{
utils.RemoveAll(filepath.Join(runtime.GOROOT(), "bin", fmt.Sprintf("qtdeploy%v", ending)))
utils.RemoveAll(filepath.Join(runtime.GOROOT(), "bin", fmt.Sprintf("qtmoc%v", ending)))
var cmdDeploy = exec.Command("cmd", "/C", "mklink", "/H", fmt.Sprintf("qtdeploy%v", ending), filepath.Join(gopath, "bin", fmt.Sprintf("qtdeploy%v", ending)))
cmdDeploy.Dir = filepath.Join(runtime.GOROOT(), "bin")
runCmdOptional(cmdDeploy, "symlink.qtdeploy")
var cmdMoc = exec.Command("cmd", "/C", "mklink", "/H", fmt.Sprintf("qtmoc%v", ending), filepath.Join(gopath, "bin", fmt.Sprintf("qtmoc%v", ending)))
cmdMoc.Dir = filepath.Join(runtime.GOROOT(), "bin")
runCmdOptional(cmdMoc, "symlink.qtmoc")
}
runCmdOptional(exec.Command("ln", "-s", filepath.Join(os.Getenv("GOPATH"), "bin", "qtdeploy"), filepath.Join("/usr", "local", "bin", "qtdeploy")), "symlink.qtdeploy")
runCmdOptional(exec.Command("ln", "-s", filepath.Join(os.Getenv("GOPATH"), "bin", "qtmoc"), filepath.Join("/usr", "local", "bin", "qtmoc")), "symlink.qtmoc")
}
} else {
panic("GOPATH not set")
case "windows":
{
utils.RemoveAll(filepath.Join(runtime.GOROOT(), "bin", fmt.Sprintf("qtdeploy%v", ending)))
utils.RemoveAll(filepath.Join(runtime.GOROOT(), "bin", fmt.Sprintf("qtmoc%v", ending)))
var cmdDeploy = exec.Command("cmd", "/C", "mklink", "/H", fmt.Sprintf("qtdeploy%v", ending), filepath.Join(os.Getenv("GOPATH"), "bin", fmt.Sprintf("qtdeploy%v", ending)))
cmdDeploy.Dir = filepath.Join(runtime.GOROOT(), "bin")
runCmdOptional(cmdDeploy, "symlink.qtdeploy")
var cmdMoc = exec.Command("cmd", "/C", "mklink", "/H", fmt.Sprintf("qtmoc%v", ending), filepath.Join(os.Getenv("GOPATH"), "bin", fmt.Sprintf("qtmoc%v", ending)))
cmdMoc.Dir = filepath.Join(runtime.GOROOT(), "bin")
runCmdOptional(cmdMoc, "symlink.qtmoc")
}
}
//TODO:
@ -82,7 +74,7 @@ func main() {
fmt.Print(example)
//TODO:
runCmd(exec.Command(filepath.Join(gopath, "bin", "qtdeploy"), "test", buildTarget, filepath.Join(utils.GoQtPkgPath("internal", "examples"), example)), fmt.Sprintf("test.%v", example))
runCmd(exec.Command(filepath.Join(os.Getenv("GOPATH"), "bin", "qtdeploy"), "test", buildTarget, filepath.Join(utils.GoQtPkgPath("internal", "examples"), example)), fmt.Sprintf("test.%v", example))
fmt.Println(strings.Repeat(" ", 45-len(example)), time.Since(before)/time.Second*time.Second)
}

View file

@ -183,3 +183,31 @@ func runCmd(cmd *exec.Cmd, name string) string {
}
return string(out)
}
func RPI_TOOLS_DIR() string {
if dir := os.Getenv("RPI_TOOLS_DIR"); dir != "" {
return filepath.Clean(dir)
}
return filepath.Join(os.Getenv("HOME"), "raspi", "tools")
}
func RPI1_SYSROOT_DIR() string {
if dir := os.Getenv("RPI1_SYSROOT_DIR"); dir != "" {
return filepath.Clean(dir)
}
return filepath.Join(os.Getenv("HOME"), "raspi", "sysroot")
}
func RPI2_SYSROOT_DIR() string {
if dir := os.Getenv("RPI2_SYSROOT_DIR"); dir != "" {
return filepath.Clean(dir)
}
return filepath.Join(os.Getenv("HOME"), "raspi", "sysroot")
}
func RPI3_SYSROOT_DIR() string {
if dir := os.Getenv("RPI3_SYSROOT_DIR"); dir != "" {
return filepath.Clean(dir)
}
return filepath.Join(os.Getenv("HOME"), "raspi", "sysroot")
}