forked from AuroraMiddleware/gtk
build: Make the default setting work on non-Linux Unix-like systems
All of the four platform-dependent backends are enabled by default. It is usually a good default because it requires users to explicitly choose backends they want to use. Rules in meson.build also automatically disable unavailable backends for macOS, Windows, Linux, so users on these 3 major platforms don't have to manually disable things when running meson commands. However, meson.build doesn't do the same thing for other Unix-like systems, which is acceptable but not ideal. To make it easier to build GTK+ on these systems, the Linux case, which enables X11 and Wayland and disables Win32 and Quartz, is made the default for all operating systems that are not Windows or macOS. This commit also changes most 'host_machine.system()' calls to os_* variables, which are easier to read and less likely to be used wrongly.
This commit is contained in:
parent
e6deaa3a85
commit
e882db2763
37
meson.build
37
meson.build
@ -102,20 +102,25 @@ os_darwin = false
|
|||||||
# to ensure they are enabled
|
# to ensure they are enabled
|
||||||
if host_machine.system() == 'darwin'
|
if host_machine.system() == 'darwin'
|
||||||
os_darwin = true
|
os_darwin = true
|
||||||
win32_enabled = false
|
|
||||||
elif host_machine.system() == 'windows'
|
elif host_machine.system() == 'windows'
|
||||||
os_win32 = true
|
os_win32 = true
|
||||||
win32_enabled = true
|
|
||||||
x11_enabled = false
|
|
||||||
wayland_enabled = false
|
|
||||||
quartz_enabled = false
|
|
||||||
elif host_machine.system() == 'linux'
|
elif host_machine.system() == 'linux'
|
||||||
os_linux = true
|
os_linux = true
|
||||||
win32_enabled = false
|
endif
|
||||||
|
os_unix = not os_win32
|
||||||
|
|
||||||
|
if os_darwin
|
||||||
|
wayland_enabled = false
|
||||||
|
else
|
||||||
quartz_enabled = false
|
quartz_enabled = false
|
||||||
endif
|
endif
|
||||||
|
|
||||||
os_unix = not os_win32
|
if os_win32
|
||||||
|
wayland_enabled = false
|
||||||
|
x11_enabled = false
|
||||||
|
else
|
||||||
|
win32_enabled = false
|
||||||
|
endif
|
||||||
|
|
||||||
gtk_prefix = get_option('prefix')
|
gtk_prefix = get_option('prefix')
|
||||||
gtk_includedir = join_paths(gtk_prefix, get_option('includedir'))
|
gtk_includedir = join_paths(gtk_prefix, get_option('includedir'))
|
||||||
@ -265,7 +270,7 @@ common_cflags = cc.get_supported_arguments(test_cflags)
|
|||||||
|
|
||||||
# Symbol visibility
|
# Symbol visibility
|
||||||
if get_option('default_library') != 'static'
|
if get_option('default_library') != 'static'
|
||||||
if host_machine.system() == 'windows'
|
if os_win32
|
||||||
cdata.set('DLL_EXPORT', true)
|
cdata.set('DLL_EXPORT', true)
|
||||||
cdata.set('_GDK_EXTERN', '__declspec(dllexport) extern')
|
cdata.set('_GDK_EXTERN', '__declspec(dllexport) extern')
|
||||||
if cc.get_id() != 'msvc'
|
if cc.get_id() != 'msvc'
|
||||||
@ -284,7 +289,7 @@ if host_machine.system() == 'linux' and cc.get_id() == 'gcc'
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Maintain compatibility with autotools
|
# Maintain compatibility with autotools
|
||||||
if host_machine.system() == 'darwin'
|
if os_darwin
|
||||||
common_ldflags += [ '-compatibility_version 1', '-current_version 1.0', ]
|
common_ldflags += [ '-compatibility_version 1', '-current_version 1.0', ]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -299,10 +304,11 @@ glib_dep = dependency('glib-2.0', version: glib_req,
|
|||||||
fallback : ['glib', 'libglib_dep'])
|
fallback : ['glib', 'libglib_dep'])
|
||||||
gobject_dep = dependency('gobject-2.0', version: glib_req,
|
gobject_dep = dependency('gobject-2.0', version: glib_req,
|
||||||
fallback : ['glib', 'libgobject_dep'])
|
fallback : ['glib', 'libgobject_dep'])
|
||||||
if host_machine.system() == 'windows'
|
if os_win32
|
||||||
giowin32_dep = dependency('gio-windows-2.0', version: glib_req, required: win32_enabled,
|
giowin32_dep = dependency('gio-windows-2.0', version: glib_req, required: win32_enabled,
|
||||||
fallback : ['glib', 'libgio_dep'])
|
fallback : ['glib', 'libgio_dep'])
|
||||||
else
|
endif
|
||||||
|
if os_unix
|
||||||
giounix_dep = dependency('gio-unix-2.0', version: glib_req, required: false,
|
giounix_dep = dependency('gio-unix-2.0', version: glib_req, required: false,
|
||||||
fallback : ['glib', 'libgio_dep'])
|
fallback : ['glib', 'libgio_dep'])
|
||||||
endif
|
endif
|
||||||
@ -370,9 +376,10 @@ iso_codes_dep = dependency('iso-codes', required: false)
|
|||||||
fontconfig_dep = [] # only used in x11 backend
|
fontconfig_dep = [] # only used in x11 backend
|
||||||
atkbridge_dep = [] # only used in x11 backend
|
atkbridge_dep = [] # only used in x11 backend
|
||||||
|
|
||||||
if host_machine.system() == 'windows'
|
if os_win32
|
||||||
platform_gio_dep = giowin32_dep
|
platform_gio_dep = giowin32_dep
|
||||||
else
|
endif
|
||||||
|
if os_unix
|
||||||
platform_gio_dep = giounix_dep
|
platform_gio_dep = giounix_dep
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -582,7 +589,7 @@ if cc.has_function('bind_textdomain_codeset', dependencies: libintl_dep)
|
|||||||
cdata.set('HAVE_BIND_TEXTDOMAIN_CODESET', 1)
|
cdata.set('HAVE_BIND_TEXTDOMAIN_CODESET', 1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if host_machine.system() != 'windows'
|
if os_unix
|
||||||
cdata.set('HAVE_GIO_UNIX', giounix_dep.found())
|
cdata.set('HAVE_GIO_UNIX', giounix_dep.found())
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -723,7 +730,7 @@ foreach pkg: pkgs
|
|||||||
install_dir: pkg_install_dir)
|
install_dir: pkg_install_dir)
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
if host_machine.system() != 'windows'
|
if os_unix
|
||||||
configure_file(input: 'gtk+-unix-print-4.0.pc.in',
|
configure_file(input: 'gtk+-unix-print-4.0.pc.in',
|
||||||
output: 'gtk+-unix-print-4.0.pc',
|
output: 'gtk+-unix-print-4.0.pc',
|
||||||
configuration: pkgconf,
|
configuration: pkgconf,
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# GDK backends
|
# GDK backends
|
||||||
option('x11-backend', type: 'boolean', value: true,
|
option('x11-backend', type: 'boolean', value: true,
|
||||||
description : 'Enable the X11 gdk backend (only when building on Linux or macOS)')
|
description : 'Enable the X11 gdk backend (only when building on Unix)')
|
||||||
option('wayland-backend', type: 'boolean', value: true,
|
option('wayland-backend', type: 'boolean', value: true,
|
||||||
description : 'Enable the wayland gdk backend (only when building on Linux)')
|
description : 'Enable the wayland gdk backend (only when building on Unix except for macOS)')
|
||||||
option('broadway-backend', type: 'boolean', value: false,
|
option('broadway-backend', type: 'boolean', value: false,
|
||||||
description : 'Enable the broadway (HTML5) gdk backend')
|
description : 'Enable the broadway (HTML5) gdk backend')
|
||||||
option('win32-backend', type: 'boolean', value: true,
|
option('win32-backend', type: 'boolean', value: true,
|
||||||
|
@ -133,7 +133,7 @@ gtk_tests = [
|
|||||||
['testtexture'],
|
['testtexture'],
|
||||||
]
|
]
|
||||||
|
|
||||||
if os_linux
|
if os_unix
|
||||||
gtk_tests += [['testfontchooserdialog']]
|
gtk_tests += [['testfontchooserdialog']]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user