|
Packit Service |
6a0f92 |
project('clutter-gtk', 'c', version: '1.8.4',
|
|
Packit Service |
6a0f92 |
license: 'LGPLv2.1+',
|
|
Packit Service |
6a0f92 |
default_options: [
|
|
Packit Service |
6a0f92 |
'buildtype=debugoptimized',
|
|
Packit Service |
6a0f92 |
'c_std=c99',
|
|
Packit Service |
6a0f92 |
'warning_level=1',
|
|
Packit Service |
6a0f92 |
],
|
|
Packit Service |
6a0f92 |
meson_version: '>= 0.40.1')
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
add_project_arguments([ '-D_XOPEN_SOURCE=700' ], language: 'c')
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
cc = meson.get_compiler('c')
|
|
Packit Service |
6a0f92 |
host_system = host_machine.system()
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
version = meson.project_version().split('.')
|
|
Packit Service |
6a0f92 |
gtk_clutter_major_version = version[0].to_int()
|
|
Packit Service |
6a0f92 |
gtk_clutter_minor_version = version[1].to_int()
|
|
Packit Service |
6a0f92 |
gtk_clutter_micro_version = version[2].to_int()
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
gtk_clutter_api_version = '@0@.0'.format(gtk_clutter_major_version)
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
if gtk_clutter_minor_version.is_odd()
|
|
Packit Service |
6a0f92 |
gtk_clutter_interface_age = 0
|
|
Packit Service |
6a0f92 |
else
|
|
Packit Service |
6a0f92 |
gtk_clutter_interface_age = gtk_clutter_micro_version
|
|
Packit Service |
6a0f92 |
endif
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
gtk_clutter_api_name = '@0@-@1@'.format(meson.project_name(), gtk_clutter_api_version)
|
|
Packit Service |
6a0f92 |
gtk_clutter_api_path = join_paths(gtk_clutter_api_name, meson.project_name())
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
gtk_clutter_prefix = get_option('prefix')
|
|
Packit Service |
6a0f92 |
gtk_clutter_libdir = join_paths(gtk_clutter_prefix, get_option('libdir'))
|
|
Packit Service |
6a0f92 |
gtk_clutter_includedir = join_paths(gtk_clutter_prefix, get_option('includedir'))
|
|
Packit Service |
6a0f92 |
gtk_clutter_datadir = join_paths(gtk_clutter_prefix, get_option('datadir'))
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
# maintaining compatibility with the previous libtool versioning
|
|
Packit Service |
6a0f92 |
# current = minor * 100 + micro - interface
|
|
Packit Service |
6a0f92 |
# revision = interface
|
|
Packit Service |
6a0f92 |
soversion = 0
|
|
Packit Service |
6a0f92 |
current = 100 * gtk_clutter_minor_version + gtk_clutter_micro_version - gtk_clutter_interface_age
|
|
Packit Service |
6a0f92 |
revision = gtk_clutter_interface_age
|
|
Packit Service |
6a0f92 |
libversion = '@0@.@1@.@2@'.format(soversion, current, revision)
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
config_h = configuration_data()
|
|
Packit Service |
6a0f92 |
config_h.set_quoted('GETTEXT_PACKAGE', 'cluttergtk-@0@'.format(gtk_clutter_api_version))
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
# Compiler flags
|
|
Packit Service |
6a0f92 |
common_cflags = []
|
|
Packit Service |
6a0f92 |
common_ldflags = []
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
if cc.get_id() == 'msvc'
|
|
Packit Service |
6a0f92 |
# Make MSVC more pedantic, this is a recommended pragma list
|
|
Packit Service |
6a0f92 |
# from _Win32_Programming_ by Rector and Newcomer. Taken from
|
|
Packit Service |
6a0f92 |
# glib's msvc_recommended_pragmas.h--please see that file for
|
|
Packit Service |
6a0f92 |
# the meaning of the warning codes used here
|
|
Packit Service |
6a0f92 |
test_cflags = [
|
|
Packit Service |
6a0f92 |
'-we4002',
|
|
Packit Service |
6a0f92 |
'-we4003',
|
|
Packit Service |
6a0f92 |
'-w14010',
|
|
Packit Service |
6a0f92 |
'-we4013',
|
|
Packit Service |
6a0f92 |
'-w14016',
|
|
Packit Service |
6a0f92 |
'-we4020',
|
|
Packit Service |
6a0f92 |
'-we4021',
|
|
Packit Service |
6a0f92 |
'-we4027',
|
|
Packit Service |
6a0f92 |
'-we4029',
|
|
Packit Service |
6a0f92 |
'-we4033',
|
|
Packit Service |
6a0f92 |
'-we4035',
|
|
Packit Service |
6a0f92 |
'-we4045',
|
|
Packit Service |
6a0f92 |
'-we4047',
|
|
Packit Service |
6a0f92 |
'-we4049',
|
|
Packit Service |
6a0f92 |
'-we4053',
|
|
Packit Service |
6a0f92 |
'-we4071',
|
|
Packit Service |
6a0f92 |
'-we4150',
|
|
Packit Service |
6a0f92 |
'-we4819'
|
|
Packit Service |
6a0f92 |
]
|
|
Packit Service |
6a0f92 |
elif cc.get_id() == 'gcc' or cc.get_id() == 'clang'
|
|
Packit Service |
6a0f92 |
test_cflags = [
|
|
Packit Service |
6a0f92 |
'-ffast-math',
|
|
Packit Service |
6a0f92 |
'-fstrict-aliasing',
|
|
Packit Service |
6a0f92 |
'-Wpointer-arith',
|
|
Packit Service |
6a0f92 |
'-Wmissing-declarations',
|
|
Packit Service |
6a0f92 |
'-Wformat=2',
|
|
Packit Service |
6a0f92 |
'-Wstrict-prototypes',
|
|
Packit Service |
6a0f92 |
'-Wmissing-prototypes',
|
|
Packit Service |
6a0f92 |
'-Wnested-externs',
|
|
Packit Service |
6a0f92 |
'-Wold-style-definition',
|
|
Packit Service |
6a0f92 |
'-Wunused',
|
|
Packit Service |
6a0f92 |
'-Wuninitialized',
|
|
Packit Service |
6a0f92 |
'-Wshadow',
|
|
Packit Service |
6a0f92 |
'-Wmissing-noreturn',
|
|
Packit Service |
6a0f92 |
'-Wmissing-format-attribute',
|
|
Packit Service |
6a0f92 |
'-Wredundant-decls',
|
|
Packit Service |
6a0f92 |
'-Wlogical-op',
|
|
Packit Service |
6a0f92 |
'-Wcast-align',
|
|
Packit Service |
6a0f92 |
'-Wno-unused-local-typedefs',
|
|
Packit Service |
6a0f92 |
'-Werror=implicit',
|
|
Packit Service |
6a0f92 |
'-Werror=init-self',
|
|
Packit Service |
6a0f92 |
'-Werror=main',
|
|
Packit Service |
6a0f92 |
'-Werror=missing-braces',
|
|
Packit Service |
6a0f92 |
'-Werror=return-type',
|
|
Packit Service |
6a0f92 |
'-Werror=array-bounds',
|
|
Packit Service |
6a0f92 |
'-Werror=write-strings',
|
|
Packit Service |
6a0f92 |
]
|
|
Packit Service |
6a0f92 |
else
|
|
Packit Service |
6a0f92 |
test_cflags = []
|
|
Packit Service |
6a0f92 |
endif
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
# Symbol visibility
|
|
Packit Service |
6a0f92 |
if get_option('default_library') != 'static'
|
|
Packit Service |
6a0f92 |
if host_system == 'windows'
|
|
Packit Service |
6a0f92 |
config_h.set('DLL_EXPORT', true)
|
|
Packit Service |
6a0f92 |
config_h.set('CLUTTER_GTK_EXTERN', '__declspec(dllexport) extern')
|
|
Packit Service |
6a0f92 |
if cc.get_id() != 'msvc'
|
|
Packit Service |
6a0f92 |
test_cflags += ['-fvisibility=hidden']
|
|
Packit Service |
6a0f92 |
endif
|
|
Packit Service |
6a0f92 |
else
|
|
Packit Service |
6a0f92 |
config_h.set('CLUTTER_GTK_EXTERN', '__attribute__((visibility("default"))) extern')
|
|
Packit Service |
6a0f92 |
test_cflags += ['-fvisibility=hidden']
|
|
Packit Service |
6a0f92 |
endif
|
|
Packit Service |
6a0f92 |
endif
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
foreach cflag: test_cflags
|
|
Packit Service |
6a0f92 |
if cc.has_argument(cflag)
|
|
Packit Service |
6a0f92 |
common_cflags += cflag
|
|
Packit Service |
6a0f92 |
endif
|
|
Packit Service |
6a0f92 |
endforeach
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
if host_system == 'linux'
|
|
Packit Service |
6a0f92 |
foreach ldflag: [ '-Wl,-Bsymbolic-functions', '-Wl,-z,relro', '-Wl,-z,now' ]
|
|
Packit Service |
6a0f92 |
if cc.has_argument(ldflag)
|
|
Packit Service |
6a0f92 |
common_ldflags += ldflag
|
|
Packit Service |
6a0f92 |
endif
|
|
Packit Service |
6a0f92 |
endforeach
|
|
Packit Service |
6a0f92 |
endif
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
if host_system == 'darwin'
|
|
Packit Service |
6a0f92 |
common_ldflags += [ '-compatibility_version=1', '-current_version=1.0', ]
|
|
Packit Service |
6a0f92 |
endif
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
gtk_clutter_debug_cflags = []
|
|
Packit Service |
6a0f92 |
if get_option('buildtype').startswith('debug')
|
|
Packit Service |
6a0f92 |
gtk_clutter_debug_cflags += '-DCLUTTER_GTK_ENABLE_DEBUG'
|
|
Packit Service |
6a0f92 |
elif get_option('buildtype') == 'release'
|
|
Packit Service |
6a0f92 |
gtk_clutter_debug_cflags += '-DG_DISABLE_CAST_CHECKS'
|
|
Packit Service |
6a0f92 |
endif
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
if gtk_clutter_minor_version.is_even()
|
|
Packit Service |
6a0f92 |
gtk_clutter_debug_cflags += [
|
|
Packit Service |
6a0f92 |
'-DGLIB_DISABLE_DEPRECATION_WARNINGS',
|
|
Packit Service |
6a0f92 |
'-DCLUTTER_DISABLE_DEPRECATION_WARNINGS',
|
|
Packit Service |
6a0f92 |
'-DGDK_DISABLE_DEPRECATION_WARNINGS',
|
|
Packit Service |
6a0f92 |
]
|
|
Packit Service |
6a0f92 |
endif
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
# Dependencies
|
|
Packit Service |
6a0f92 |
clutter_req_version = '>= 1.23.7'
|
|
Packit Service |
6a0f92 |
gtk_req_version = '>= 3.21.0'
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
mathlib_dep = cc.find_library('m', required: false)
|
|
Packit Service |
6a0f92 |
clutter_dep = dependency('clutter-1.0', version: clutter_req_version)
|
|
Packit Service |
6a0f92 |
gtk_dep = dependency('gtk+-3.0', version: gtk_req_version)
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
configure_file(output: 'config.h', configuration: config_h)
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
pkgconf = configuration_data()
|
|
Packit Service |
6a0f92 |
pkgconf.set('prefix', gtk_clutter_prefix)
|
|
Packit Service |
6a0f92 |
pkgconf.set('exec_prefix', gtk_clutter_prefix)
|
|
Packit Service |
6a0f92 |
pkgconf.set('libdir', gtk_clutter_libdir)
|
|
Packit Service |
6a0f92 |
pkgconf.set('includedir', gtk_clutter_includedir)
|
|
Packit Service |
6a0f92 |
pkgconf.set('CLUTTER_GTK_API_VERSION', gtk_clutter_api_version)
|
|
Packit Service |
6a0f92 |
pkgconf.set('VERSION', meson.project_version())
|
|
Packit Service |
6a0f92 |
configure_file(input: 'clutter-gtk.pc.in',
|
|
Packit Service |
6a0f92 |
output: 'clutter-gtk-@0@.pc'.format(gtk_clutter_api_version),
|
|
Packit Service |
6a0f92 |
configuration: pkgconf,
|
|
Packit Service |
6a0f92 |
install: true,
|
|
Packit Service |
6a0f92 |
install_dir: join_paths(gtk_clutter_libdir, 'pkgconfig'))
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
root_inc = include_directories('.')
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
gnome = import('gnome')
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
subdir('clutter-gtk')
|
|
Packit Service |
6a0f92 |
subdir('po')
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
subdir('examples')
|
|
Packit Service |
6a0f92 |
|
|
Packit Service |
6a0f92 |
if get_option('enable_docs')
|
|
Packit Service |
6a0f92 |
subdir('doc')
|
|
Packit Service |
6a0f92 |
endif
|