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