Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

452 Commits   2 Branches   1 Tag
   122         kx # Glade uses a Major.Minor.Micro versioning system
   122         kx #
   122         kx # With odd minor numbers representing development releases and even numbers
   122         kx # stable releases and micro numbers bug bugfixes.
   122         kx #
   122         kx # Since master is built as a nightly flatpak, we bump the version to development
   122         kx # inmediatelly after making a stable release, that way people using the nigthly
   122         kx # version will always know they are on a development release.
   122         kx project(
   122         kx   'glade', 'c',
   122         kx   version: '3.40.0',
   122         kx   license: 'GPL2',
   122         kx   default_options: 'buildtype=debugoptimized',
   122         kx   meson_version: '>= 0.53.0',
   122         kx )
   122         kx 
   122         kx glade_name = meson.project_name()
   122         kx 
   122         kx glade_version = meson.project_version()
   122         kx version_array = glade_version.split('.')
   122         kx glade_major_version = version_array[0].to_int()
   122         kx glade_minor_version = version_array[1].to_int()
   122         kx glade_micro_version = version_array[2].to_int()
   122         kx 
   122         kx glade_prefix = get_option('prefix')
   122         kx glade_bindir = get_option('bindir')
   122         kx glade_datadir = get_option('datadir')
   122         kx glade_libdir = get_option('libdir')
   122         kx glade_localedir = get_option('localedir')
   122         kx glade_mandir = get_option('mandir')
   122         kx 
   122         kx glade_catalogdir = glade_name / 'catalogs'
   122         kx glade_moduledir = glade_name / 'modules'
   122         kx glade_pixmapdir = glade_name / 'pixmaps'
   122         kx 
   122         kx gladeui_name = 'gladeui'
   122         kx 
   122         kx gladeui_version = '2.0'
   122         kx version_array = gladeui_version.split('.')
   122         kx gladeui_major_version = version_array[0].to_int()
   122         kx gladeui_minor_version = version_array[1].to_int()
   122         kx 
   122         kx gladeui_libname = '@0@-@1@'.format(gladeui_name, gladeui_version)
   122         kx 
   122         kx # If the source code has changed at all, increment gladeui_revision
   122         kx # If any interfaces have been added, removed, or changed, increment gladeui_current, and set gladeui_revision to 0.
   122         kx # If any interfaces have been added since the last public release, then increment gladeui_age.
   122         kx # If any interfaces have been removed since the last public release, then set gladeui_age to 0.
   122         kx # Reference: http://www.gnu.org/software/libtool/manual/libtool.html#Versioning
   122         kx 
   122         kx gladeui_revision = 0
   122         kx gladeui_current = 14
   122         kx gladeui_age = 1
   122         kx gladeui_current_minus_age = gladeui_current - gladeui_age
   122         kx gladeui_libversion = '@0@.@1@.@2@'.format(gladeui_current_minus_age, gladeui_age, gladeui_revision)
   122         kx 
   122         kx glade_system = host_machine.system()
   122         kx glade_debug = get_option('buildtype').contains('debug')
   122         kx if glade_debug
   122         kx   add_project_arguments('-DGLADE_ENABLE_DEBUG', language : 'c')
   122         kx endif
   122         kx 
   122         kx glade_unstable = glade_minor_version.is_odd()
   122         kx 
   122         kx gnome = import('gnome')
   122         kx i18n = import('i18n')
   122         kx pkg = import('pkgconfig')
   122         kx 
   122         kx # NOTE: On windows we only target MSYS2/mingw
   122         kx windows = import('windows')
   122         kx 
   122         kx source_root = meson.current_source_dir()
   122         kx build_root = meson.current_build_dir()
   122         kx 
   122         kx its_dir = source_root / 'data/gettext'
   122         kx po_dir = source_root / 'po'
   122         kx 
   122         kx top_inc = include_directories('.')
   122         kx 
   122         kx cc = meson.get_compiler('c')
   122         kx 
   122         kx config_h = configuration_data()
   122         kx 
   122         kx # package defines
   122         kx set_defines = [
   122         kx   # package
   122         kx   ['PACKAGE_NAME', meson.project_name()],
   122         kx   ['PACKAGE_STRING', '@0@ @1@'.format(glade_name, glade_version)],
   122         kx   ['PACKAGE_VERSION', glade_version],
   122         kx   ['VERSION', glade_version],
   122         kx   # i18n
   122         kx   ['GETTEXT_PACKAGE', glade_name],
   122         kx ]
   122         kx 
   122         kx foreach define: set_defines
   122         kx   config_h.set_quoted(define[0], define[1])
   122         kx endforeach
   122         kx 
   122         kx config_h.set('GLADE_MAJOR_VERSION', glade_major_version)
   122         kx config_h.set('GLADE_MINOR_VERSION', glade_minor_version)
   122         kx config_h.set('GLADE_MICRO_VERSION', glade_micro_version)
   122         kx config_h.set('GDK_VERSION_MIN_REQUIRED', '(G_ENCODE_VERSION (3, 0))')
   122         kx config_h.set('ENABLE_NLS', true)
   122         kx 
   122         kx # compiler flags
   122         kx common_flags = ['-DHAVE_CONFIG_H']
   122         kx 
   122         kx if get_option('buildtype').contains('debug')
   122         kx   common_flags += cc.get_supported_arguments('-Wnested-externs')
   122         kx endif
   122         kx 
   122         kx add_project_arguments(common_flags, language: 'c')
   122         kx 
   122         kx # Check required libraries
   122         kx glib_dep = dependency('glib-2.0', version: '>= 2.64.0')
   122         kx gio_dep = dependency('gio-2.0', version: '>= 2.64.0')
   122         kx gmodule_dep = dependency('gmodule-2.0')
   122         kx gmodule_export_dep = dependency('gmodule-export-2.0')
   122         kx gtk_dep = dependency('gtk+-3.0', version: '>= 3.24.0')
   122         kx libxml_dep = dependency('libxml-2.0', version: '>= 2.4.0')
   122         kx 
   122         kx m_dep = cc.find_library('m')
   122         kx 
   122         kx # Check for the unix print widgets in gtk+
   122         kx have_gtk_unix_print = cc.has_function('gtk_print_unix_dialog_new', dependencies: gtk_dep)
   122         kx 
   122         kx # Check for _gtk_widget_class_template_unset_only_for_glade() in gtk+
   122         kx config_h.set10('HAVE_GTK_TEMPLATE_UNSET', cc.has_function('_gtk_widget_class_template_unset_only_for_glade', dependencies: gtk_dep))
   122         kx 
   122         kx # va_copy.
   122         kx va_copy_src = '''
   122         kx     #include <stdarg.h>
   122         kx     int main() {
   122         kx         va_list ap1, ap2;
   122         kx         @0@(ap1, ap2);
   122         kx     };
   122         kx '''
   122         kx 
   122         kx if not cc.links(va_copy_src.format('va_copy'), name: 'how to copy va_list')
   122         kx   if cc.links(va_copy_src.format('__va_copy'))
   122         kx     config_h.set('va_copy', '__va_copy')
   122         kx   else
   122         kx     config_h.set('va_copy(dest,src)', 'memcpy(&dest,&src,sizeof(va_list))')
   122         kx   endif
   122         kx endif
   122         kx 
   122         kx # GJS support
   122         kx gjs_dep = dependency('gjs-1.0', version: '>= 1.64.0', required: get_option('gjs'))
   122         kx have_gjs = gjs_dep.found()
   122         kx 
   122         kx # Python for optional python dev libs
   122         kx pygobject_version = '3.8.0'
   122         kx pygobject_dep = dependency('pygobject-3.0', version: '>= ' + pygobject_version, required: get_option('python'))
   122         kx have_python = pygobject_dep.found()
   122         kx if have_python
   122         kx   python_dep = import('python').find_installation().dependency(embed: true)
   122         kx 
   122         kx   version_array = pygobject_version.split('.')
   122         kx   config_h.set('PYGOBJECT_REQUIRED_MAJOR', version_array[0].to_int())
   122         kx   config_h.set('PYGOBJECT_REQUIRED_MINOR', version_array[1].to_int())
   122         kx   config_h.set('PYGOBJECT_REQUIRED_MICRO', version_array[2].to_int())
   122         kx endif
   122         kx 
   122         kx # WebKit2GTK support
   122         kx webkit2gtk_dep = dependency('webkit2gtk-4.0', version: '>= 2.28.0', required: get_option('webkit2gtk'))
   122         kx have_webkit2gtk = webkit2gtk_dep.found()
   122         kx 
   122         kx # Check for GDK Quartz and MacOSX integration package
   122         kx enable_mac_integration = dependency('gdk-3.0').get_pkgconfig_variable('targets').contains('quartz')
   122         kx if enable_mac_integration
   122         kx 
   122         kx   if get_option('mac_bundle')
   122         kx     gtk_mac_integration_gtk3_dep = dependency('gtk-mac-integration-gtk3')
   122         kx     gtk_mac_bundle_flags = '-DMAC_BUNDLE'
   122         kx   endif
   122         kx endif
   122         kx 
   122         kx # Check for osx
   122         kx config_h.set('PLATFORM_OSX', glade_system == 'darwin')
   122         kx 
   122         kx if glade_system == 'windows'
   122         kx   rc_conf = configuration_data()
   122         kx   rc_conf.set('GLADE_MAJOR_VERSION', glade_major_version)
   122         kx   rc_conf.set('GLADE_MINOR_VERSION', glade_minor_version)
   122         kx   rc_conf.set('GLADE_MICRO_VERSION', glade_micro_version)
   122         kx   rc_conf.set('GLADE_CURRENT_MINUS_AGE', gladeui_current_minus_age)
   122         kx   rc_conf.set('SOURCE_ROOT', source_root)
   122         kx endif
   122         kx 
   122         kx subdir('po')
   122         kx subdir('data')
   122         kx subdir('gladeui')
   122         kx subdir('src')
   122         kx subdir('plugins')
   122         kx subdir('tests')
   122         kx subdir('help')
   122         kx 
   122         kx enable_gtk_doc = get_option('gtk_doc')
   122         kx if enable_gtk_doc
   122         kx   subdir('doc')
   122         kx endif
   122         kx 
   122         kx enable_man = get_option('man')
   122         kx if enable_man
   122         kx   subdir('man')
   122         kx endif
   122         kx 
   122         kx configure_file(
   122         kx   output: 'config.h',
   122         kx   configuration: config_h,
   122         kx )
   122         kx 
   122         kx meson.add_install_script(
   122         kx   'meson_post_install.py',
   122         kx   glade_datadir,
   122         kx )
   122         kx 
   122         kx tls_backend_support_src = '''
   122         kx #include <stdio.h>
   122         kx #include <gio/gio.h>
   122         kx int main(int argc, char **argv)
   122         kx {
   122         kx   printf ("%s\n", g_tls_backend_supports_tls (g_tls_backend_get_default ()) ? "true" : "false");
   122         kx   return 0;
   122         kx }
   122         kx '''
   122         kx tls_backend_support = 'false'
   122         kx 
   122         kx output = '\nConfiguration:\n\n'
   122         kx output += '\tCompiler:                ' + cc.get_id() + '\n'
   122         kx output += '\tSource code location:    ' + source_root + '\n'
   122         kx output += '\tDebug Enabled:           ' + glade_debug.to_string() + '\n'
   122         kx output += '\tGTK+ UNIX Print Widgets: ' + have_gtk_unix_print.to_string() + '\n'
   122         kx output += '\tGJS Widgets support:     ' + have_gjs.to_string() + '\n'
   122         kx output += '\tPYTHON Widgets support:  ' + have_python.to_string() + '\n'
   122         kx output += '\tGladeui Catalog:         ' + enable_gladeui.to_string() + '\n'
   122         kx output += '\tWebKit2GTK+ Catalog:     ' + have_webkit2gtk.to_string() + '\n'
   122         kx output += '\tIntrospection Data:      ' + enable_introspection.to_string() + '\n\n'
   122         kx output += '\tBuild Reference Manual:  ' + enable_gtk_doc.to_string() + '\n'
   122         kx output += '\tBuild Manual Pages:      ' + enable_man.to_string() + '\n'
   122         kx output += '\tTLS backend support:     ' + tls_backend_support
   122         kx message(output)