diff --git a/app/app_debug.go b/app/app_debug.go deleted file mode 100644 index f6b274dc73..0000000000 --- a/app/app_debug.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build debug -// +build debug - -package app - -import "fyne.io/fyne/v2" - -const buildMode = fyne.BuildDebug diff --git a/app/app_release.go b/app/app_release.go deleted file mode 100644 index 37b0a353fd..0000000000 --- a/app/app_release.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build release -// +build release - -package app - -import "fyne.io/fyne/v2" - -const buildMode = fyne.BuildRelease diff --git a/app/app_standard.go b/app/app_standard.go deleted file mode 100644 index 01f2ccc560..0000000000 --- a/app/app_standard.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build !debug && !release -// +build !debug,!release - -package app - -import "fyne.io/fyne/v2" - -const buildMode = fyne.BuildStandard diff --git a/app/settings.go b/app/settings.go index c3b576b79b..cc0d32ed42 100644 --- a/app/settings.go +++ b/app/settings.go @@ -7,6 +7,7 @@ import ( "sync" "fyne.io/fyne/v2" + "fyne.io/fyne/v2/internal/build" "fyne.io/fyne/v2/theme" ) @@ -44,7 +45,7 @@ type settings struct { } func (s *settings) BuildType() fyne.BuildType { - return buildMode + return build.Mode } func (s *settings) PrimaryColor() string { diff --git a/app/settings_test.go b/app/settings_test.go index 07388b857b..68f954b9a7 100644 --- a/app/settings_test.go +++ b/app/settings_test.go @@ -8,6 +8,7 @@ import ( "fyne.io/fyne/v2" "github.com/stretchr/testify/assert" + "fyne.io/fyne/v2/internal/build" "fyne.io/fyne/v2/test" "fyne.io/fyne/v2/theme" ) @@ -17,7 +18,7 @@ func TestSettingsBuildType(t *testing.T) { assert.Equal(t, fyne.BuildStandard, set.BuildType()) // during test we should have a normal build set = &settings{} - assert.Equal(t, buildMode, set.BuildType()) // when testing this package only it could be debug or release + assert.Equal(t, build.Mode, set.BuildType()) // when testing this package only it could be debug or release } func TestSettingsLoad(t *testing.T) { diff --git a/internal/build/build.go b/internal/build/build.go new file mode 100644 index 0000000000..7db2881d5e --- /dev/null +++ b/internal/build/build.go @@ -0,0 +1,2 @@ +// Package build contains information about they type of build currently running. +package build diff --git a/internal/build/driver_notwayland.go b/internal/build/driver_notwayland.go new file mode 100644 index 0000000000..dbe88559c7 --- /dev/null +++ b/internal/build/driver_notwayland.go @@ -0,0 +1,7 @@ +//go:build !wayland +// +build !wayland + +package build + +// IsWayland is true when compiling for the wayland windowing system. +const IsWayland = false diff --git a/internal/build/driver_wayland.go b/internal/build/driver_wayland.go new file mode 100644 index 0000000000..eaa86cf1c1 --- /dev/null +++ b/internal/build/driver_wayland.go @@ -0,0 +1,7 @@ +//go:build wayland +// +build wayland + +package build + +// IsWayland is true when compiling for the wayland windowing system. +const IsWayland = true diff --git a/internal/build/mode_debug.go b/internal/build/mode_debug.go new file mode 100644 index 0000000000..e89ac6c13a --- /dev/null +++ b/internal/build/mode_debug.go @@ -0,0 +1,9 @@ +//go:build debug +// +build debug + +package build + +import "fyne.io/fyne/v2" + +// Mode is the application's build mode. +const Mode = fyne.BuildDebug diff --git a/internal/build/mode_release.go b/internal/build/mode_release.go new file mode 100644 index 0000000000..8c4f6604f6 --- /dev/null +++ b/internal/build/mode_release.go @@ -0,0 +1,9 @@ +//go:build release +// +build release + +package build + +import "fyne.io/fyne/v2" + +// Mode is the application's build mode. +const Mode = fyne.BuildRelease diff --git a/internal/build/mode_standard.go b/internal/build/mode_standard.go new file mode 100644 index 0000000000..c46dac9992 --- /dev/null +++ b/internal/build/mode_standard.go @@ -0,0 +1,9 @@ +//go:build !debug && !release +// +build !debug,!release + +package build + +import "fyne.io/fyne/v2" + +// Mode is the application's build mode. +const Mode = fyne.BuildStandard diff --git a/internal/driver/glfw/canvas.go b/internal/driver/glfw/canvas.go index fbd294de54..2cb47f9755 100644 --- a/internal/driver/glfw/canvas.go +++ b/internal/driver/glfw/canvas.go @@ -8,6 +8,7 @@ import ( "fyne.io/fyne/v2/canvas" "fyne.io/fyne/v2/internal" "fyne.io/fyne/v2/internal/app" + "fyne.io/fyne/v2/internal/build" "fyne.io/fyne/v2/internal/driver" "fyne.io/fyne/v2/internal/driver/common" "fyne.io/fyne/v2/theme" @@ -20,10 +21,10 @@ var _ fyne.Canvas = (*glCanvas)(nil) type glCanvas struct { common.Canvas - content fyne.CanvasObject - menu fyne.CanvasObject - padded, debug bool - size fyne.Size + content fyne.CanvasObject + menu fyne.CanvasObject + padded bool + size fyne.Size onTypedRune func(rune) onTypedKey func(*fyne.KeyEvent) @@ -298,7 +299,7 @@ func (c *glCanvas) paint(size fyne.Size) { } } - if c.debug { + if build.Mode == fyne.BuildDebug { c.DrawDebugOverlay(node.Obj(), pos, size) } } @@ -339,6 +340,5 @@ func newCanvas() *glCanvas { c := &glCanvas{scale: 1.0, texScale: 1.0, padded: true} c.Initialize(c, c.overlayChanged) c.setContent(&canvas.Rectangle{FillColor: theme.BackgroundColor()}) - c.debug = fyne.CurrentApp().Settings().BuildType() == fyne.BuildDebug return c } diff --git a/internal/driver/glfw/driver_notwayland.go b/internal/driver/glfw/driver_notwayland.go deleted file mode 100644 index 941c833825..0000000000 --- a/internal/driver/glfw/driver_notwayland.go +++ /dev/null @@ -1,6 +0,0 @@ -//go:build !wayland -// +build !wayland - -package glfw - -const isWayland = false diff --git a/internal/driver/glfw/driver_wayland.go b/internal/driver/glfw/driver_wayland.go deleted file mode 100644 index 810ff92517..0000000000 --- a/internal/driver/glfw/driver_wayland.go +++ /dev/null @@ -1,6 +0,0 @@ -//go:build wayland -// +build wayland - -package glfw - -const isWayland = true diff --git a/internal/driver/glfw/window_desktop.go b/internal/driver/glfw/window_desktop.go index d04fccd421..ba3dc0845a 100644 --- a/internal/driver/glfw/window_desktop.go +++ b/internal/driver/glfw/window_desktop.go @@ -14,6 +14,7 @@ import ( "fyne.io/fyne/v2" "fyne.io/fyne/v2/canvas" "fyne.io/fyne/v2/driver/desktop" + "fyne.io/fyne/v2/internal/build" "fyne.io/fyne/v2/internal/driver/common" "fyne.io/fyne/v2/internal/painter" "fyne.io/fyne/v2/internal/painter/gl" @@ -184,7 +185,7 @@ func (w *window) doCenterOnScreen() { } func (w *window) RequestFocus() { - if isWayland || w.view() == nil { + if build.IsWayland || w.view() == nil { return } @@ -296,7 +297,7 @@ func (w *window) getMonitorForWindow() *glfw.Monitor { } func (w *window) detectScale() float32 { - if isWayland { // Wayland controls scale through content scaling + if build.IsWayland { // Wayland controls scale through content scaling return 1.0 } monitor := w.getMonitorForWindow() @@ -319,7 +320,7 @@ func (w *window) resized(_ *glfw.Window, width, height int) { } func (w *window) scaled(_ *glfw.Window, x float32, y float32) { - if !isWayland { // other platforms handle this using older APIs + if !build.IsWayland { // other platforms handle this using older APIs return } @@ -707,7 +708,7 @@ func (w *window) rescaleOnMain() { func (w *window) create() { runOnMain(func() { - if !isWayland { + if !build.IsWayland { // make the window hidden, we will set it up and then show it later glfw.WindowHint(glfw.Visible, glfw.False) } diff --git a/internal/driver/mobile/canvas.go b/internal/driver/mobile/canvas.go index ec2375ba3b..35c20f58bc 100644 --- a/internal/driver/mobile/canvas.go +++ b/internal/driver/mobile/canvas.go @@ -30,8 +30,8 @@ type mobileCanvas struct { scale float32 size fyne.Size - touched map[int]mobile.Touchable - padded, debug bool + touched map[int]mobile.Touchable + padded bool onTypedRune func(rune) onTypedKey func(event *fyne.KeyEvent) @@ -50,7 +50,6 @@ type mobileCanvas struct { // NewCanvas creates a new gomobile mobileCanvas. This is a mobileCanvas that will render on a mobile device using OpenGL. func NewCanvas() fyne.Canvas { ret := &mobileCanvas{padded: true} - ret.debug = fyne.CurrentApp().Settings().BuildType() == fyne.BuildDebug ret.scale = fyne.CurrentDevice().SystemScaleForWindow(nil) // we don't need a window parameter on mobile ret.touched = make(map[int]mobile.Touchable) ret.lastTapDownPos = make(map[int]fyne.Position) diff --git a/internal/driver/mobile/driver.go b/internal/driver/mobile/driver.go index 5e06cffbdc..dcb9a028dd 100644 --- a/internal/driver/mobile/driver.go +++ b/internal/driver/mobile/driver.go @@ -12,6 +12,7 @@ import ( "fyne.io/fyne/v2/internal" "fyne.io/fyne/v2/internal/animation" intapp "fyne.io/fyne/v2/internal/app" + "fyne.io/fyne/v2/internal/build" "fyne.io/fyne/v2/internal/cache" "fyne.io/fyne/v2/internal/driver" "fyne.io/fyne/v2/internal/driver/common" @@ -315,7 +316,7 @@ func (d *mobileDriver) paintWindow(window fyne.Window, size fyne.Size) { } } - if c.debug { + if build.Mode == fyne.BuildDebug { c.DrawDebugOverlay(node.Obj(), pos, size) } } diff --git a/internal/painter/gl/gl.go b/internal/painter/gl/gl.go index 65fea635db..482447a25d 100644 --- a/internal/painter/gl/gl.go +++ b/internal/painter/gl/gl.go @@ -7,6 +7,7 @@ import ( "runtime" "fyne.io/fyne/v2" + "fyne.io/fyne/v2/internal/build" ) const floatSize = 4 @@ -17,7 +18,7 @@ const max16bit = float32(255 * 255) // Receives a function as parameter, to lazily get the error code only when // needed, avoiding unneeded overhead. func logGLError(getError func() uint32) { - if fyne.CurrentApp().Settings().BuildType() != fyne.BuildDebug { + if build.Mode != fyne.BuildDebug { return }