forked from joejulian/gio
45da52cee7
The app and app/internal/wm packages are tightly coupled, requiring quite a bit of forwarding types, values and constants from the internal package to export it. Further, no other package imports package wm. This change merges the two packages. While here, drop the pre-Go 1.14 SIGPIPE workaround. Signed-off-by: Elias Naur <mail@eliasnaur.com>
31 lines
686 B
Go
31 lines
686 B
Go
// SPDX-License-Identifier: Unlicense OR MIT
|
|
|
|
//go:build android || (darwin && ios)
|
|
// +build android darwin,ios
|
|
|
|
package app
|
|
|
|
// Android only supports non-Java programs as c-shared libraries.
|
|
// Unfortunately, Go does not run a program's main function in
|
|
// library mode. To make Gio programs simpler and uniform, we'll
|
|
// link to the main function here and call it from Java.
|
|
|
|
import (
|
|
"sync"
|
|
_ "unsafe" // for go:linkname
|
|
)
|
|
|
|
//go:linkname mainMain main.main
|
|
func mainMain()
|
|
|
|
var runMainOnce sync.Once
|
|
|
|
func runMain() {
|
|
runMainOnce.Do(func() {
|
|
// Indirect call, since the linker does not know the address of main when
|
|
// laying down this package.
|
|
fn := mainMain
|
|
fn()
|
|
})
|
|
}
|