QML support for the Go language

Overview

QML support for the Go language

Documentation

The introductory documentation as well as the detailed API documentation is available at gopkg.in/qml.v1.

Blog posts

Some relevant blog posts:

Videos

These introductory videos demonstrate the use of Go QML:

Community

Please join the mailing list for following relevant development news and discussing project details.

Installation

To try the alpha release you'll need:

  • Go >= 1.2, for the C++ support of go build
  • Qt 5.0.X or 5.1.X with the development files
  • The Qt headers qmetaobject_p.h and qmetaobjectbuilder_p.h, for the dynamic meta object support

See below for more details about getting these requirements installed in different environments and operating systems.

After the requirements are satisfied, go get should work as usual:

go get gopkg.in/qml.v1

Requirements on Ubuntu

If you are using Ubuntu, the Ubuntu SDK will take care of the Qt dependencies:

$ sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
$ sudo apt-get update
$ sudo apt-get install qtdeclarative5-dev qtbase5-private-dev qtdeclarative5-private-dev libqt5opengl5-dev qtdeclarative5-qtquick2-plugin

and Go >= 1.2 may be installed using godeb:

$ # Pick the right one for your system: 386 or amd64
$ ARCH=amd64
$ wget -q https://godeb.s3.amazonaws.com/godeb-$ARCH.tar.gz
$ tar xzvf godeb-$ARCH.tar.gz
godeb
$ sudo mv godeb /usr/local/bin
$ godeb install
$ go get gopkg.in/qml.v1

Requirements on Ubuntu Touch

After following the installation instructions for Ubuntu Touch, run the following commands to get a working build environment inside the device:

$ adb shell
# cd /tmp
# wget https://github.com/go-qml/qml/raw/v1/cmd/ubuntu-touch/setup.sh
# /bin/bash setup.sh
# su - phablet
$

At the end of setup.sh, the phablet user will have GOPATH=$HOME in the environment, the qml package will be built, and the particle example will be built and run. For stopping it from the command line, run as the phablet user:

$ ubuntu-app-stop gopkg.in.qml.particle-example

for running it again:

$ ubuntu-app-launch gopkg.in.qml.particle-example

These commands depend on the following file, installed by setup.sh:

~/.local/share/applications/gopkg.in.qml.particle-example.desktop

Requirements on Mac OS X

On Mac OS X you'll need QT5. It's easiest to install with Homebrew, a third-party package management system for OS X.

Installation instructions for Homebrew are here:

http://brew.sh/

Then, install the qt5 and pkg-config packages:

$ brew install qt5 pkg-config

Then, force brew to "link" qt5 (this makes it available under /usr/local):

$ brew link --force qt5

And finally, fetch and install go-qml:

$ go get gopkg.in/qml.v1

Requirements on Windows

On Windows you'll need the following:

Then, assuming Qt was installed under C:\Qt5.1.1\, set up the following environment variables in the respective configuration:

CPATH += C:\Qt5.1.1\5.1.1\mingw48_32\include
LIBRARY_PATH += C:\Qt5.1.1\5.1.1\mingw48_32\lib
PATH += C:\Qt5.1.1\5.1.1\mingw48_32\bin

After reopening the shell for the environment changes to take effect, this should work:

go get gopkg.in/qml.v1

Requirements everywhere else

If your operating system does not offer these dependencies readily, you may still have success installing Go >= 1.2 and Qt 5.0.2 directly from the upstreams. Note that you'll likely have to adapt environment variables to reflect the custom installation path for these libraries. See the instructions above for examples.

Issues
  • private/qmetaobject_p.h: No such file or directory

    private/qmetaobject_p.h: No such file or directory

    go get -v -u github.com/niemeyer/qml
    github.com/niemeyer/qml (download)
    github.com/niemeyer/qml
    # github.com/niemeyer/qml
    In file included from src/github.com/niemeyer/qml/cpp/capi.cpp:10:0,
                     from src/github.com/niemeyer/qml/all.cpp:2:
    src/github.com/niemeyer/qml/cpp/govalue.h:7:35: fatal error: private/qmetaobject_p.h: No such file or directory
     #include <private/qmetaobject_p.h>
    

    OS: Archlinux 64 bits QT version: 5.2.1 (I received an update today. It was ok with the previous version.)

    opened by pierrre 27
  •  Mac OS bug: is only safe to invoke on the main thread

    Mac OS bug: is only safe to invoke on the main thread

    mac os 10.9.3 QT 5.2.1

    github.com/go-qml/qml/examples/customtype

    2014-05-23 01:41:40.054 customtype[44170:1b03] *** Assertion failure in +[NSUndoManager _endTopLevelGroupings], /SourceCache/Foundation/Foundation-1056.13/Misc.subproj/NSUndoManager.m:328 2014-05-23 01:41:40.056 customtype[44170:1b03] +[NSUndoManager(NSInternal) _endTopLevelGroupings] is only safe to invoke on the main thread. 2014-05-23 01:41:40.065 customtype[44170:1b03](0 CoreFoundation 0x00007fff96fb925c __exceptionPreprocess + 172 1 libobjc.A.dylib 0x00007fff93a99e75 objc_exception_throw + 43 2 CoreFoundation 0x00007fff96fb9038 +[NSException raise:format:arguments:] + 104 3 Foundation 0x00007fff96b5cd41 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189 4 Foundation 0x00007fff96ac728c +[NSUndoManager%28NSPrivate%29 _endTopLevelGroupings] + 156 5 AppKit 0x00007fff957ffa43 -[NSApplication run] + 688 6 libqcocoa.dylib 0x0000000007db95a5 _ZN21QCocoaEventDispatcher13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE + 2149 7 QtCore 0x0000000005a3345d _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE + 397 8 QtCore 0x0000000005a362e7 _ZN16QCoreApplication4execEv + 359 9 customtype 0x0000000004079c61 runtime.asmcgocall + 97)

    opened by ablegao 24
  • panic running customtype.go on windows

    panic running customtype.go on windows

    When running customtype.go on windows I get following output:

    I just tried running customtype.go on windows and I get an panic...

    Text changed...
    panic: invalid memory address or nil pointer dereference
    fatal error: panic during malloc
    [signal 0xc0000005 code=0x0 addr=0x20 pc=0x41b2aa]
    
    runtime stack:
    runtime.panic(0x4cf6c0, 0x60c338)
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/panic.c:233 +0x2b
    runtime: unexpected return pc for runtime.sigpanic called from 0x6fcaef11
    
    goroutine 4 [syscall]:
    runtime.cgocall(0x487e4b, 0x3056d4)
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/cgocall.c:149 +0x10c fp=0x3056c8
    github.com/niemeyer/qml._Cfunc_objectGoAddr(0x25a7660, 0x13120358, 0x4b4240)
            C:/Users/THOMAS~1.PC1/AppData/Local/Temp/go-build936011503/github.com/niemeyer/qml/_obj/_cgo_defun.c:376 +0x33 fp=0x3056d4
    github.com/niemeyer/qml.func┬╖016()
            c:/GoExt/src/github.com/niemeyer/qml/qml.go:384 +0x58 fp=0x3056f4github.com/niemeyer/qml.hookIdleTimer()
            c:/GoExt/src/github.com/niemeyer/qml/bridge.go:163 +0x53 fp=0x30570c
    ----- stack segment boundary -----
    runtime.cgocallbackg1()
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/cgocall.c:296 +0xb4 fp=0x305770
    runtime.cgocallbackg()
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/cgocall.c:266 +0x7a fp=0x305778
    runtime.cgocallback_gofunc(0x403cb0, 0x48796b, 0x3057c4)
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/asm_386.s:676 +0x57 fp=0x305788
    runtime.asmcgocall(0x48796b, 0x3057c4)
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/asm_386.s:584 +0x22 fp=0x30578c
    runtime.cgocall(0x48796b, 0x3057c4)
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/cgocall.c:149 +0x120 fp=0x3057b8
    github.com/niemeyer/qml._Cfunc_applicationExec(0x6139a0)
            C:/Users/THOMAS~1.PC1/AppData/Local/Temp/go-build936011503/github.com/niemeyer/qml/_obj/_cgo_defun.c:61 +0x33 fp=0x3057c4
    github.com/niemeyer/qml.guiLoop()
            c:/GoExt/src/github.com/niemeyer/qml/bridge.go:34 +0x54 fp=0x3057ccruntime.goexit()
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/proc.c:1394 fp=0x3057d0
    created by github.com/niemeyer/qml.Init
            c:/GoExt/src/github.com/niemeyer/qml/qml.go:58 +0x8c
    
    goroutine 1 [chan receive]:
    github.com/niemeyer/qml.gui(0x13129260)
            c:/GoExt/src/github.com/niemeyer/qml/bridge.go:62 +0x94
    github.com/niemeyer/qml.(*Common).Interface(0x13120300, 0x0, 0x26c8c8)
            c:/GoExt/src/github.com/niemeyer/qml/qml.go:387 +0x93
    main.run(0x0, 0x1)
            c:/Workspace/goqml/qml/examples/customtype/customtype.go:47 +0x120
    main.main()
            c:/Workspace/goqml/qml/examples/customtype/customtype.go:10 +0x20
    
    goroutine 3 [syscall]:
    runtime.goexit()
            C:/Users/ADMINI~1/AppData/Local/Temp/2/bindist738819395/go/src/pkg/runtime/proc.c:1394
    exit status 2
    
    opened by tcoopman 16
  • Context.SetVar - panic: pre-allocated buffer size was wrong

    Context.SetVar - panic: pre-allocated buffer size was wrong

    I'm unable to pass a struct via Context.SetVar and access one of its fields in the QML. I've tried passing many different structs to SetVars and calling them from the QML in many ways.

    panic: pre-allocated buffer size was wrong

    goroutine 4 [running]: runtime.panic(0x53e340, 0xc21000a300) /usr/local/go/src/pkg/runtime/panic.c:266 +0xb6 github.com/niemeyer/qml.typeInfo(0x55d860, 0xc21001d5d0, 0x55d860) /home/eb/Dropbox/go/src/github.com/niemeyer/qml/datatype.go:304 +0x7fd github.com/niemeyer/qml.wrapGoValue(0xc21001d540, 0x55d860, 0xc21001d5d0, 0x1, 0x0) /home/eb/Dropbox/go/src/github.com/niemeyer/qml/bridge.go:233 +0x40d github.com/niemeyer/qml.packDataValue(0x55d860, 0xc21001d5d0, 0xc21000a2d0, 0xc21001d540, 0x7fe6a0e09c01) /home/eb/Dropbox/go/src/github.com/niemeyer/qml/datatype.go:106 +0x21a github.com/niemeyer/qml.func·013() /home/eb/Dropbox/go/src/github.com/niemeyer/qml/qml.go:292 +0x84 github.com/niemeyer/qml.hookIdleTimer() /home/eb/Dropbox/go/src/github.com/niemeyer/qml/bridge.go:172 +0x5b github.com/niemeyer/qml._Cfunc_applicationExec(0x8c1380) github.com/niemeyer/qml/_obj/_cgo_defun.c:57 +0x31 github.com/niemeyer/qml.guiLoop() /home/eb/Dropbox/go/src/github.com/niemeyer/qml/bridge.go:41 +0x5b created by github.com/niemeyer/qml.Init /home/eb/Dropbox/go/src/github.com/niemeyer/qml/qml.go:44 +0xa0

    goroutine 1 [runnable]: github.com/niemeyer/qml.gui(0xc21001d600) /home/eb/Dropbox/go/src/github.com/niemeyer/qml/bridge.go:68 +0xa3 github.com/niemeyer/qml.(*Context).SetVar(0xc21000a2a0, 0x57fd80, 0x5, 0x55d860, 0xc21001d5d0) /home/eb/Dropbox/go/src/github.com/niemeyer/qml/qml.go:298 +0x10b main.run(0x7fe6a0e09ed0, 0x2) /home/eb/Dropbox/go/src/taq/taq.go:90 +0x19d main.main() /home/eb/Dropbox/go/src/taq/taq.go:73 +0x31b

    goroutine 3 [syscall]: runtime.goexit() /usr/local/go/src/pkg/runtime/proc.c:1394

    exit status 2

    the go -code is here:

    type Cell struct { num int val string pic string }

    func NewCell(num int) Cell { return Cell{val: "",num:num,pic:"blank.png"} }

    cell01 := NewCell(1) 
    engine.Context().SetVar("cell1", &cell01)
    

    and the qml file:

    Image {
             source: cell1.pic
             fillMode: Image.PreserveAspectFit
         }
    

    Any ideas?

    opened by eblincow 13
  • Loading QPixmap as images?

    Loading QPixmap as images?

    This is more like a question: Is it possible to load a QPixmap (using loadFromData) from Go side as an image yo be used as an Image in QML? I believe with C++ one needs to use QDeclarativeImageProvider (at least with Qt 4, not sure about Qt 5.1+).

    An example image viewer using this package would be immensely helpful :)

    enhancement 
    opened by raichu 13
  • Windows Build Problem: ... qopenglversionfunctions.h:785:43: error: expected unqualified-id ...

    Windows Build Problem: ... qopenglversionfunctions.h:785:43: error: expected unqualified-id ...

    Hi,

    building under Linux was no problem. But I'm struggling for a few days to try to build it under windows 7 with mingw.

    Below is the error message I received. I also tried with Qt 5.2.1; same error.

    I don't know what to do now... :( Any hints?

    Thanks for the great work so far! Cheers, Christopher

    >go get gopkg.in/qml.v0
    # gopkg.in/qml.v0
    In file included from C:/Qt/Qt5.1.1/5.1.1/mingw48_32/include/QtGui/qopenglcontext.h:63:0,
                     from C:/Qt/Qt5.1.1/5.1.1/mingw48_32/include/QtGui/QtGui:32,
                     from C:/Qt/Qt5.1.1/5.1.1/mingw48_32/include/QtOpenGL/QtOpenGLDepends:3,
                     from C:/Qt/Qt5.1.1/5.1.1/mingw48_32/include/QtOpenGL/QtOpenGL:3,
                     from gopkg.in\qml.v0\cpp/govalue.cpp:3,
                     from gopkg.in\qml.v0\all.cpp:3:
    C:/Qt/Qt5.1.1/5.1.1/mingw48_32/include/QtGui/qopenglversionfunctions.h:785:43: error: expected unqualified-id before ')' token
         void (QOPENGLF_APIENTRYP MemoryBarrier)(GLbitfield barriers);
    
    opened by countcb 12
  • SIGSEGV when changing state property on QML object

    SIGSEGV when changing state property on QML object

    i have created qml file with qt creator and it works very well when i run with QtCreator.But it does not run when i use the same qml file with Go. i am getting error like this : SIGSEGV: segmentation violation PC=0xb65dc472 signal arrived during cgo execution Its crashing while i move one rectangle to another rectangle's position. Most of the tutorials are working well even gopher example is working well.
    i attached you an example. its working well. But if i use rect1.x and rect1.y instead of 50 & 160 its crashing. So the problem is here. working case :

    states: State {
            name: "down";
            PropertyChanges { target: rect1; x:50; y: 160}
        }
    crashing :
    states: State {
            name: "down";
            PropertyChanges { target: rect1; x:rect2.x; y: rect2.y}
        }
    
    
    Complete code :
    
    
    import QtQuick 2.0
    Rectangle {
        id: page
        width: 320; height: 480
        color: "lightgray"
        state:"none"
        Rectangle {
            id: rect1
            x: 30
            y: 30
            width:50
            height:50
            MouseArea {
                anchors.fill: parent
                onClicked: page.state = 'down'
            }
        }
        Rectangle {
            id: rect2
            x: 50
            y: 160
            width:50
            height:50
        }
        states: State {
            name: "down";
            PropertyChanges { target: rect1; x:50; y: 160} // if i use rect2.x and rect2.y instead of 50 & 160 its crashing...
        }
        transitions: Transition {
            from: "none"; to: "down";
            NumberAnimation { properties: "x,y"; duration: 2000; easing.type: Easing.InOutQuad }
        }
    }
    
    opened by sountharcs 10
  • OSX 10.9.1  Error: no such file or directory : '/QtCore'

    OSX 10.9.1 Error: no such file or directory : '/QtCore'

    ☁  ~  go version 
    go version go1.2 darwin/386
    ☁  ~  ls /usr/local/Cellar/qt5/HEAD/include/QtCore/ | grep '^5'
    5.2.1
    ☁  ~  echo $PKG_CONFIG_PATH
    /usr/local/opt/qt5/lib/pkgconfig
    
    ☁  ~  CXX=g++-4.8 go get github.com/niemeyer/qml
    # github.com/niemeyer/qml
    clang: error: no such file or directory: '/QtCore'
    

    is there any path not configured ?

    opened by xyhp915 10
  • Crash On Windows using qtx64 5.4.0

    Crash On Windows using qtx64 5.4.0

    http://sourceforge.net/projects/qtx64/files/qt-x64/5.4.0/mingw-4.9/seh/qt-5.4.0-x64-mingw492r0-seh-opengl.exe/download

    I've been using go1.4, qt 5.4.0 to explore this library and it crashes on the example programs.

    Any idea what the problem is?

    C:\Users\fire\go\src\gopkg.in\qml.v1\examples\controls\gallery>gallery.exe
    Exception 0xc0000005 0x1 0x0 0x7fffb6f85ed9
    PC=0x7fffb6f85ed9
    signal arrived during cgo execution
    
    gopkg.in/qml%2ev1._Cfunc_idleTimerInit(0x693ce4)
            C:/Users/fire/go/src/gopkg.in/qml.v1/:191 +0x4c
    gopkg.in/qml%2ev1.Run(0x5ab078, 0x0, 0x0)
            C:/Users/fire/go/src/gopkg.in/qml.v1/bridge.go:56 +0x141
    main.main()
            C:/Users/fire/go/src/gopkg.in/qml.v1/examples/controls/gallery/gallery.g
    o:10 +0x39
    
    goroutine 17 [syscall, locked to thread]:
    runtime.goexit()
            c:/go/src/runtime/asm_amd64.s:2232 +0x1
    rax     0x0
    rbx     0x23fe48
    rcx     0xece672284a970000
    rdx     0x0
    rdi     0xffffffffffffffff
    rsi     0x689060
    rbp     0x689420
    rsp     0x23fdf0
    r8      0x23f3e8
    r9      0x0
    r10     0x0
    r11     0x23f830
    r12     0xb
    r13     0x0
    r14     0x23fe40
    r15     0x4cf8b0
    rip     0x7fffb6f85ed9
    rflags  0x7fff00010286
    cs      0x33
    fs      0x53
    gs      0x2b
    
    opened by fire 9
  • Add support for resource bundles

    Add support for resource bundles

    Some references:

    • http://qt-project.org/doc/qt-5/resources.html
    • http://qt-project.org/doc/qt-5/qresource.html
    • http://qt-project.org/wiki/QtResources

    The qml package may leverage the public API behind this logic to load the resource from in-memory data:

    Using Resources in a Library

    If you have resources in a library, you need to force initialization of your resources by calling Q_INIT_RESOURCE() with the base name of the .qrc file. For example: (...) This ensures that the resources are linked into the final application binary in the case of static linking. You should put the initialization code close to where the resources are used in your library, so that clients of your library will only link in the resources if they use the feature of the library that depends on them.

    That's the definition of these macros, from qglobal.h:

    #define Q_INIT_RESOURCE(name) \
        do { extern int QT_MANGLE_NAMESPACE(qInitResources_ ## name) ();       \
            QT_MANGLE_NAMESPACE(qInitResources_ ## name) (); } while (0)
    #define Q_CLEANUP_RESOURCE(name) \
        do { extern int QT_MANGLE_NAMESPACE(qCleanupResources_ ## name) ();    \
            QT_MANGLE_NAMESPACE(qCleanupResources_ ## name) (); } while (0)
    

    These functions are automatically built by the rcc tool. At their bottom, logic similar to the following is used to actually do the registration at runtime:

    qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
    

    This function is defined in qtbase/src/corelib/io/qresource.cpp and is exported, but is not declared in any header. It's safe to do a local declaration and use it, though, because public code does the same and depends on it to work.

    opened by niemeyer 8
  • signal: segmentation fault before 'main.main'

    signal: segmentation fault before 'main.main'

    This was on Go 1.2 Linux 64 debian sid. Both packages work in isolation. They do not like each other, not sure why.

    // test2.go

    package main

    import ( "azul3d.org/v0/native/freetype" "gopkg.in/v0/qml" )

    var a freetype.Font

    func main() { qml.Init(nil) }

    opened by comaldave 8
  • Installation on Ubuntu 19.10

    Installation on Ubuntu 19.10

    Two problems with the installation instructions:

    1. The Ubuntu SDK PPA structure has changed or moved, most packages are now available as part of the current unstable release, except for qtquick2, which appears to be now provided by the package qml-module-qtquick2.

    The following should do on 19.10 without having to install an extra PPA:

    $ sudo apt-get install qtdeclarative5-dev qtbase5-private-dev qtdeclarative5-private-dev libqt5opengl5-de qml-module-qtquick2

    1. Despite this making installation simpler in appearance, other problems appear to have been introduced when attempting to go get the Go package. Screenshot follows:

    Screenshot at 2020-02-02 02-40-28

    opened by haiitch 0
  •  on Mac QT 5.13.0 + Go 1.12.7 installing error when did 'go get gopkg.in/qml.v1'

    on Mac QT 5.13.0 + Go 1.12.7 installing error when did 'go get gopkg.in/qml.v1'

    $ go get gopkg.in/qml.v1

    gopkg.in/qml.v1

    In file included from all.cpp:2: In file included from ../../go/src/gopkg.in/qml.v1/cpp/capi.cpp:10: In file included from ../../go/src/gopkg.in/qml.v1/cpp/govalue.h:7: In file included from ../../go/src/gopkg.in/qml.v1/cpp/private/qmetaobject_p.h:1: ../../go/src/gopkg.in/qml.v1/cpp/private/qtheader.h:39:2: error: Unupported Qt minor version. Please report. In file included from all.cpp:2: In file included from ../../go/src/gopkg.in/qml.v1/cpp/capi.cpp:10: In file included from ../../go/src/gopkg.in/qml.v1/cpp/govalue.h:7: ../../go/src/gopkg.in/qml.v1/cpp/private/qmetaobject_p.h:2:10: fatal error: 'QtCore/5.QT_MINOR.0/QtCore/private/qmetaobject_p.h' file not found ../../go/src/gopkg.in/qml.v1/cpp/private/qtheader.h:68:37: note: expanded from macro 'QT_PRIVATE_HEADER'

    opened by qinwanguk 1
  • build go-qml failure

    build go-qml failure

    Hello,

    i have follow the README, but when i try "go get gopkg.in/qml.v1", it show error below:

    # gopkg.in/qml.v1
    In file included from ../gopkg.in/qml.v1/cpp/private/qobject_p.h:2:0,
                     from /usr/include/x86_64-linux-gnu/qt5/QtCore/5.9.5/QtCore/private/qmetaobject_p.h:58,
                     from ../gopkg.in/qml.v1/cpp/private/qmetaobject_p.h:2,
                     from cpp/govalue.h:7,
                     from cpp/capi.cpp:10,
                     from all.cpp:2:
    /usr/include/x86_64-linux-gnu/qt5/QtCore/5.9.5/QtCore/private/qobject_p.h:55:10: fatal error: QtCore/private/qglobal_p.h: No such file or directory
     #include <QtCore/private/qglobal_p.h>
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    
    

    My OS: ubuntu 18.04 LTS.

    do you any ideas to fix it? Thank you for reading

    opened by tranhoaison 1
  • Broken under Go 1.12 (relocation target runtime.acquirem not defined for ABI0 (but is defined for ABIInternal))

    Broken under Go 1.12 (relocation target runtime.acquirem not defined for ABI0 (but is defined for ABIInternal))

    Compiling using Go 1.12 gives the following error:

    cdata.Ref: relocation target runtime.acquirem not defined for ABI0 (but is defined for ABIInternal)
    cdata.Ref: relocation target runtime.releasem not defined for ABI0 (but is defined for ABIInternal)
    
    opened by neclepsio 5
  • Qt 5.11 Support

    Qt 5.11 Support

    Any plans on supporting 5.11? Or is this project dead? :skull:

    $ go get -u -v gopkg.in/qml.v1
    Fetching https://gopkg.in/qml.v1?go-get=1
    Parsing meta tags from https://gopkg.in/qml.v1?go-get=1 (status code 200)
    get "gopkg.in/qml.v1": found meta tag get.metaImport{Prefix:"gopkg.in/qml.v1", VCS:"git", RepoRoot:"https://gopkg.in/qml.v1"} at https://gopkg.in/qml.v1?go-get=1
    gopkg.in/qml.v1 (download)
    Fetching https://gopkg.in/qml.v1/cdata?go-get=1
    Parsing meta tags from https://gopkg.in/qml.v1/cdata?go-get=1 (status code 200)
    get "gopkg.in/qml.v1/cdata": found meta tag get.metaImport{Prefix:"gopkg.in/qml.v1", VCS:"git", RepoRoot:"https://gopkg.in/qml.v1"} at https://gopkg.in/qml.v1/cdata?go-get=1
    get "gopkg.in/qml.v1/cdata": verifying non-authoritative meta tag
    Fetching https://gopkg.in/qml.v1?go-get=1
    Parsing meta tags from https://gopkg.in/qml.v1?go-get=1 (status code 200)
    Fetching https://gopkg.in/qml.v1/gl/glbase?go-get=1
    Parsing meta tags from https://gopkg.in/qml.v1/gl/glbase?go-get=1 (status code 200)
    get "gopkg.in/qml.v1/gl/glbase": found meta tag get.metaImport{Prefix:"gopkg.in/qml.v1", VCS:"git", RepoRoot:"https://gopkg.in/qml.v1"} at https://gopkg.in/qml.v1/gl/glbase?go-get=1
    get "gopkg.in/qml.v1/gl/glbase": verifying non-authoritative meta tag
    gopkg.in/qml.v1
    # gopkg.in/qml.v1
    In file included from go/src/gopkg.in/qml.v1/cpp/private/qmetaobject_p.h:1,
                     from cpp/govalue.h:7,
                     from cpp/capi.cpp:10,
                     from all.cpp:2:
    go/src/gopkg.in/qml.v1/cpp/private/qtheader.h:39:2: error: #error Unupported Qt minor version. Please report.
     #error Unupported Qt minor version. Please report.
      ^~~~~
    go/src/gopkg.in/qml.v1/cpp/private/qtheader.h:68:37: fatal error: QtCore/5.QT_MINOR.1/QtCore/private/qmetaobject_p.h: No such file or directory
     #define QT_PRIVATE_HEADER(dir,file) <dir/QT_MAJOR.QT_MINOR.QT_MICRO/dir/private/file>
                                         ^
    compilation terminated.
    
    
    opened by MrYakobo 6
Releases(v1.2)
A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.)

xgbutil is a utility library designed to work with the X Go Binding. This project's main goal is to make various X related tasks easier. For example,

Andrew Gallant 181 Jul 20, 2022
Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly

Introduction Qt is a free and open-source widget toolkit for creating graphical user interfaces as well as cross-platform applications that run on var

null 9.4k Aug 8, 2022
A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.)

xgbutil is a utility library designed to work with the X Go Binding. This project's main goal is to make various X related tasks easier. For example,

Andrew Gallant 181 Jul 20, 2022
A package to build progressive web apps with Go programming language and WebAssembly.

go-app is a package to build progressive web apps (PWA) with Go programming language and WebAssembly. It uses a declarative syntax that allows creatin

Maxence Charriere 6.3k Jul 30, 2022
A Windows GUI toolkit for the Go Programming Language

About Walk Walk is a "Windows Application Library Kit" for the Go Programming Language. Its primarily useful for Desktop GUI development, but there is

Alexander Neumann 6.1k Aug 4, 2022
Simple QML binding for Go

Qamel Qamel is a simple QML binding for Go, heavily inspired by therecipe/qt. This package only binds Qt's classes that used for creating a simple QML

null 162 Aug 6, 2022
Database Abstraction Layer (dbal) for Go. Support SQL builder and get result easily (now only support mysql)

godbal Database Abstraction Layer (dbal) for go (now only support mysql) Motivation I wanted a DBAL that No ORM、No Reflect、Concurrency Save, support S

徐佳军 53 Jan 23, 2022
Replacement of ApacheBench(ab), support for transactional requests, support for command line and package references to HTTP stress testing tool.

stress stress is an HTTP stress testing tool. Through this tool, you can do a stress test on the HTTP service and get detailed test results. It is ins

Wenjia Xiong 36 Mar 2, 2022
🎨 Terminal color rendering library, support 8/16 colors, 256 colors, RGB color rendering output, support Print/Sprintf methods, compatible with Windows.

?? Terminal color rendering library, support 8/16 colors, 256 colors, RGB color rendering output, support Print/Sprintf methods, compatible with Windows. GO CLI 控制台颜色渲染工具库,支持16色,256色,RGB色彩渲染输出,使用类似于 Print/Sprintf,兼容并支持 Windows 环境的色彩渲染

Gookit 1.1k Aug 1, 2022
Dynamic object-oriented programming support for the Go language

Goop Description The Goop (Go Object-Oriented Programming) package provides support for dynamic object-oriented programming constructs in Go, much lik

Los Alamos National Laboratory 105 Jun 6, 2022
YAML support for the Go language.

YAML support for the Go language Introduction The yaml package enables Go programs to comfortably encode and decode YAML values. It was developed with

null 5.8k Aug 3, 2022
YAML support for the Go language

YAML support for the Go language Why a new library? As of this writing, there already exists a de facto standard library for YAML processing for Go: h

Masaaki Goshima 733 Jul 29, 2022
YAML support for the Go language

YAML support for the Go language

Masaaki Goshima 733 Jul 29, 2022
A db proxy for distributed transaction, read write splitting and sharding! Support any language! It can be deployed as a sidecar in a pod.

DBPack DBPack means a database cluster tool pack. It can be deployed as a sidecar in a pod, it shields complex basic logic, so that business developme

null 262 Aug 2, 2022
Generate code for any language, with any language.

gocog - generate code for any language, with any language gocog v1.0 build 20130206 Binaries for popular OSes are available on the Downloads page of t

Nate Finch 65 Feb 11, 2021
Floppa programming language inspired by the brainf*ck programming language. Created just for fun and you can convert your brainf*ck code to floppa code.

Floppa Programming Language Created just for fun. But if you want to contribute, why not? Floppa p.l. inspired by the brainf*ck programming language.

null 18 Apr 26, 2022
Please is a cross-language high-performance extensible build system for reproducible multi-language builds.

Please is a cross-language build system with an emphasis on high performance, extensibility and reproducibility. It supports a number of popular languages and can automate nearly any aspect of your build process.

Thought Machine 2.1k Aug 9, 2022
Q Language : A script language for Go

Q Language - A script language for Go 语言特色 与 Go 语言有最好的互操作性。可不进行任何包装即可直接使用 Go 语言的函数、类及其成员变量和方法。 有赖于 Go 语言的互操作性,这门语言直接拥有了一套非常完整且您十分熟悉的标准库,无额外学习成本。 与 Go

null 10 Jul 16, 2022
T# Programming Language. Something like Porth, Forth but written in Go. Stack-oriented programming language.

The T# Programming Language WARNING! THIS LANGUAGE IS A WORK IN PROGRESS! ANYTHING CAN CHANGE AT ANY MOMENT WITHOUT ANY NOTICE! Something like Forth a

T# 92 Jun 29, 2022
A repository for showcasing my knowledge of the Google Go (2009) programming language, and continuing to learn the language.

Learning Google Golang (programming language) Not to be confused with the Go! programming language by Francis McCabe I don't know very much about the

Sean P. Myrick V19.1.7.2 1 Nov 26, 2021
A repository for showcasing my knowledge of the Go! (2003) programming language, and continuing to learn the language.

Learning Go! (programming language) Not to be confused with Google Golang (2009) I don't know too much about the Go! programming language, but I know

Sean P. Myrick V19.1.7.2 1 Nov 26, 2021
Yayx programming language is begginer friendly programming language.

Yayx Yayx programming language is begginer friendly programming language. What have yayx: Easy syntax Dynamic types Can be compiled to outhers program

null 1 Dec 27, 2021
Yayx programming language is begginer friendly programming language.

Yayx Yayx programming language is begginer friendly programming language. What have yayx: Easy syntax Dynamic types Can be compiled to outhers program

Yayx Programming Language 7 May 20, 2022
Becca - A simple dynamic language for exploring language design

Becca A simple dynamic language for exploring language design What is Becca Becc

Nicholas Bailey 0 Mar 29, 2022
Tdtl - TKeel Digital Twins Language (TDTL) is language of Digital Twins in tKeel

TQL TKeel Digital Twins Language (TDTL) is language of Digital Twins in tKeel, w

null 1 Feb 18, 2022
Go session management for web servers (including support for Google App Engine - GAE).

Session The Go standard library includes a nice http server, but unfortunately it lacks a very basic and important feature: HTTP session management. T

András Belicza 107 Jun 1, 2022
Slack bot core/framework written in Go with support for reactions to message updates/deletes

Overview Requirements Features Demo The Name Concepts Create Your Own Slackscot Assembling the Parts and Bringing Your slackscot to Life Configuration

Alexandre Normand 52 Jul 6, 2022