|
Packit |
d0bcc1 |
project('atk', 'c',
|
|
Packit |
d0bcc1 |
version: '2.28.1',
|
|
Packit |
d0bcc1 |
license: 'LGPLv2.1+',
|
|
Packit |
d0bcc1 |
default_options: [
|
|
Packit |
d0bcc1 |
'buildtype=debugoptimized',
|
|
Packit |
d0bcc1 |
'warning_level=1',
|
|
Packit |
d0bcc1 |
'c_std=c99',
|
|
Packit |
d0bcc1 |
],
|
|
Packit |
d0bcc1 |
meson_version : '>= 0.40.1')
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
cc = meson.get_compiler('c')
|
|
Packit |
d0bcc1 |
host_system = host_machine.system()
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
version = meson.project_version().split('.')
|
|
Packit |
d0bcc1 |
atk_major_version = version[0].to_int()
|
|
Packit |
d0bcc1 |
atk_minor_version = version[1].to_int()
|
|
Packit |
d0bcc1 |
atk_micro_version = version[2].to_int()
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
atk_interface_age = 1
|
|
Packit |
d0bcc1 |
atk_binary_age = 10000 * atk_major_version + 100 * atk_minor_version + 10 + atk_micro_version
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
atk_api_version = '1.0'
|
|
Packit |
d0bcc1 |
atk_api_path = 'atk-@0@/atk'.format(atk_api_version)
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
atk_prefix = get_option('prefix')
|
|
Packit |
d0bcc1 |
atk_libdir = join_paths(atk_prefix, get_option('libdir'))
|
|
Packit |
d0bcc1 |
atk_sysconfdir = join_paths(atk_prefix, get_option('sysconfdir'))
|
|
Packit |
d0bcc1 |
atk_includedir = join_paths(atk_prefix, get_option('includedir'))
|
|
Packit |
d0bcc1 |
atk_datadir = join_paths(atk_prefix, get_option('datadir'))
|
|
Packit |
d0bcc1 |
atk_libexecdir = join_paths(atk_prefix, get_option('libexecdir'))
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
atk_conf = configuration_data()
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
atk_conf.set_quoted('VERSION', meson.project_version())
|
|
Packit |
d0bcc1 |
atk_conf.set_quoted('GETTEXT_PACKAGE', 'atk10')
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
# Maintain version scheme with libtool
|
|
Packit |
d0bcc1 |
atk_soversion = 0
|
|
Packit |
d0bcc1 |
atk_libversion = '@0@.@1@.@2@'.format(atk_soversion, (atk_binary_age - atk_interface_age), atk_interface_age)
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
add_project_arguments([ '-DG_DISABLE_SINGLE_INCLUDES', '-DATK_DISABLE_SINGLE_INCLUDES' ], language: 'c')
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
if cc.get_id() == 'msvc'
|
|
Packit |
d0bcc1 |
add_project_arguments([ '-FImsvc_recommended_pragmas.h' ], language: 'c')
|
|
Packit |
d0bcc1 |
endif
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
# Compiler and linker flags
|
|
Packit |
d0bcc1 |
common_cflags = []
|
|
Packit |
d0bcc1 |
common_ldflags = []
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
test_cflags = []
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
# Symbol visibility
|
|
Packit |
d0bcc1 |
if get_option('default_library') != 'static'
|
|
Packit |
d0bcc1 |
if host_system == 'windows'
|
|
Packit |
d0bcc1 |
atk_conf.set('DLL_EXPORT', true)
|
|
Packit |
d0bcc1 |
atk_conf.set('_ATK_EXTERN', '__declspec(dllexport) extern')
|
|
Packit |
d0bcc1 |
if cc.get_id() != 'msvc'
|
|
Packit |
d0bcc1 |
test_cflags += ['-fvisibility=hidden']
|
|
Packit |
d0bcc1 |
endif
|
|
Packit |
d0bcc1 |
else
|
|
Packit |
d0bcc1 |
atk_conf.set('_ATK_EXTERN', '__attribute__((visibility("default"))) extern')
|
|
Packit |
d0bcc1 |
test_cflags += ['-fvisibility=hidden']
|
|
Packit |
d0bcc1 |
endif
|
|
Packit |
d0bcc1 |
endif
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
# Check all compiler flags
|
|
Packit |
d0bcc1 |
foreach cflag: test_cflags
|
|
Packit |
d0bcc1 |
if cc.has_argument(cflag)
|
|
Packit |
d0bcc1 |
common_cflags += [ cflag ]
|
|
Packit |
d0bcc1 |
endif
|
|
Packit |
d0bcc1 |
endforeach
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
# Linker flags
|
|
Packit |
d0bcc1 |
if host_machine.system() == 'linux'
|
|
Packit |
d0bcc1 |
foreach ldflag: [ '-Wl,-Bsymbolic', '-Wl,-z,relro', '-Wl,-z,now', ]
|
|
Packit |
d0bcc1 |
if cc.has_argument(ldflag)
|
|
Packit |
d0bcc1 |
common_ldflags += [ ldflag ]
|
|
Packit |
d0bcc1 |
endif
|
|
Packit |
d0bcc1 |
endforeach
|
|
Packit |
d0bcc1 |
endif
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
# Maintain compatibility with autotools on macOS
|
|
Packit |
d0bcc1 |
if host_machine.system() == 'darwin'
|
|
Packit |
d0bcc1 |
common_ldflags += [ '-compatibility_version=1', '-current_version=1.0', ]
|
|
Packit |
d0bcc1 |
endif
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
# Functions
|
|
Packit |
d0bcc1 |
checked_funcs = [
|
|
Packit |
d0bcc1 |
'bind_textdomain_codeset',
|
|
Packit |
d0bcc1 |
]
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
foreach f: checked_funcs
|
|
Packit |
d0bcc1 |
if cc.has_function(f)
|
|
Packit |
d0bcc1 |
atk_conf.set('HAVE_' + f.underscorify().to_upper(), 1)
|
|
Packit |
d0bcc1 |
endif
|
|
Packit |
d0bcc1 |
endforeach
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
# Dependencies
|
|
Packit |
d0bcc1 |
gobject_req_version = '>= 2.31.2'
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
gobject_dep = dependency('gobject-2.0', version: gobject_req_version)
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
# Compat variables for pkgconfig
|
|
Packit |
d0bcc1 |
pkgconf = configuration_data()
|
|
Packit |
d0bcc1 |
pkgconf.set('prefix', atk_prefix)
|
|
Packit |
d0bcc1 |
pkgconf.set('exec_prefix', atk_prefix)
|
|
Packit |
d0bcc1 |
pkgconf.set('libdir', atk_libdir)
|
|
Packit |
d0bcc1 |
pkgconf.set('includedir', atk_includedir)
|
|
Packit |
d0bcc1 |
pkgconf.set('VERSION', meson.project_version())
|
|
Packit |
d0bcc1 |
pkgconf.set('ATK_API_VERSION', atk_api_version)
|
|
Packit |
d0bcc1 |
pkgconf.set('srcdir', '.')
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
foreach pkg: [ 'atk.pc', ]
|
|
Packit |
d0bcc1 |
configure_file(input: pkg + '.in',
|
|
Packit |
d0bcc1 |
output: pkg,
|
|
Packit |
d0bcc1 |
configuration: pkgconf,
|
|
Packit |
d0bcc1 |
install: true,
|
|
Packit |
d0bcc1 |
install_dir: join_paths(atk_libdir, 'pkgconfig'))
|
|
Packit |
d0bcc1 |
endforeach
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
gnome = import('gnome')
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
# Internal configuration header
|
|
Packit |
d0bcc1 |
configure_file(output: 'config.h', configuration: atk_conf)
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
root_inc = include_directories('.')
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
subdir('atk')
|
|
Packit |
d0bcc1 |
subdir('tests')
|
|
Packit |
d0bcc1 |
subdir('po')
|
|
Packit |
d0bcc1 |
|
|
Packit |
d0bcc1 |
if get_option('enable_docs')
|
|
Packit |
d0bcc1 |
subdir('docs')
|
|
Packit |
d0bcc1 |
endif
|