diff options
| author | zhuyaliang <[email protected]> | 2021-07-25 11:52:47 +0800 | 
|---|---|---|
| committer | raveit65 <[email protected]> | 2021-07-30 19:02:49 +0200 | 
| commit | 8dca108a6a4bed0b3411e41cb04b143c71036b67 (patch) | |
| tree | 35632a66e2d50c89a690e5202a2e0ff56e7285b6 | |
| parent | a1216168706c08384154d3cea579d223fdc9e81d (diff) | |
| download | mate-calc-8dca108a6a4bed0b3411e41cb04b143c71036b67.tar.bz2 mate-calc-8dca108a6a4bed0b3411e41cb04b143c71036b67.tar.xz  | |
Add build support for meson
| -rw-r--r-- | data/meson.build | 30 | ||||
| -rw-r--r-- | help/LINGUAS | 112 | ||||
| -rw-r--r-- | help/meson.build | 33 | ||||
| -rw-r--r-- | meson-postinstall.sh | 13 | ||||
| -rw-r--r-- | meson.build | 65 | ||||
| -rw-r--r-- | po/meson.build | 3 | ||||
| -rw-r--r-- | src/meson.build | 120 | ||||
| -rw-r--r-- | src/utility.h | 1 | 
8 files changed, 377 insertions, 0 deletions
diff --git a/data/meson.build b/data/meson.build new file mode 100644 index 0000000..538b26a --- /dev/null +++ b/data/meson.build @@ -0,0 +1,30 @@ +# Desktop file +i18n.merge_file( +  input: 'mate-calc.desktop.in', +  output: 'mate-calc.desktop', +  type: 'desktop', +  po_dir: po_dir, +  install: true, +  install_dir: join_paths(get_option('datadir'), 'applications'), +) + +# Appdata +i18n.merge_file( +  input: 'mate-calc.appdata.xml.in', +  output: 'mate-calc.appdata.xml', +  type: 'xml', +  po_dir: po_dir, +  install: true, +  install_dir: join_paths(get_option('datadir'), 'metainfo') +) + +# Gschema + install_data('org.mate.calc.gschema.xml', +   install_dir: join_paths(get_option('datadir'), 'glib-2.0', 'schemas'), + ) + +# Manpage +install_man( +  'mate-calc-cmd.1', +  'mate-calc.1' +) diff --git a/help/LINGUAS b/help/LINGUAS new file mode 100644 index 0000000..f7091dc --- /dev/null +++ b/help/LINGUAS @@ -0,0 +1,112 @@ +af +am +ar +as +ast +az +be +bg +bn +bn_IN +br +bs +ca +ca@valencia +cmn +crh +cs +cy +da +de +dz +el +en_AU +en_CA +en_GB +eo +es +es_AR +es_CO +es_MX +et +eu +fa +fi +fr +frp +fur +ga +gl +gu +ha +he +hi +hr +hu +hy +id +ie +ig +is +it +ja +ka +kk +km +kn +ko +ku +ku_IQ +ky +li +lt +lv +mai +mg +mk +ml +mn +mr +ms +my +nb +nds +ne +nl +nn +nso +oc +or +pa +pl +pms +ps +pt +pt_BR +ro +ru +rw +si +sk +sl +sq +sr +sr@latin +sv +ta +te +th +tk +tr +ug +uk +ur +uz +vi +wa +xh +yo +zh_CN +zh_HK +zh_TW +zu diff --git a/help/meson.build b/help/meson.build new file mode 100644 index 0000000..bbe3028 --- /dev/null +++ b/help/meson.build @@ -0,0 +1,33 @@ +mate_calc_help_pages = [ +    'absolute.page', +    'base.page', +    'boolean.page', +    'complex.page', +    'conv-base.page', +    'conv-character.page', +    'conv-currency.page', +    'conv-length.page', +    'conv-time.page', +    'conv-weight.page', +    'equation.page', +    'factorial.page', +    'factorize.page', +    'financial.page', +    'functions.page', +    'index.page', +    'keyboard.page', +    'legal.xml', +    'logarithm.page', +    'modulus.page', +    'mouse.page', +    'number-display.page', +    'percentage.page', +    'power.page', +    'scientific.page', +    'superscript.page', +    'trigonometry.page', +    'variables.page' +] +gnome.yelp(meson.project_name(), +  sources: mate_calc_help_pages, +) diff --git a/meson-postinstall.sh b/meson-postinstall.sh new file mode 100644 index 0000000..fa131ea --- /dev/null +++ b/meson-postinstall.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# Package managers set this so we don't need to run + +if [ -z "$DESTDIR" ]; then +  echo Compiling GSettings schemas... +  glib-compile-schemas ${MESON_INSTALL_PREFIX}/share/glib-2.0/schemas + +  echo Updating desktop database... +  update-desktop-database -q ${MESON_INSTALL_PREFIX}/share/applications + +  ln -sf ${MESON_INSTALL_PREFIX}/bin/'mate-calc' ${MESON_INSTALL_PREFIX}/bin/'mate-calculator' +fi diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..d7fa021 --- /dev/null +++ b/meson.build @@ -0,0 +1,65 @@ +project('mate-calc','c', +  version: '1.25.1', +  meson_version: '>=0.50.0', +  license: 'GPLv3+', +) + +i18n = import('i18n') +gnome = import('gnome') + +po_dir = join_paths(meson.source_root(), 'po') +datadir = join_paths([ get_option('prefix'),get_option('datadir') ]) +pkgdatadir = join_paths([ get_option('prefix'),get_option('datadir'),'mate-calc' ]) +bindir = join_paths([ get_option('prefix'), 'bin' ]) +schemadir = join_paths([ datadir, 'glib-2.0', 'schemas' ]) +locale_dir = join_paths(get_option('prefix'), get_option('localedir')) + +# Dependencies +glib_min_version = '2.40.0' + +gio = dependency('gio-2.0', version: '>= ' + glib_min_version) +glib = dependency('glib-2.0', version: '>= ' + glib_min_version) +gobject = dependency('gobject-2.0', version: '>= ' + glib_min_version) +libxml = dependency('libxml-2.0') +gtk = dependency('gtk+-3.0', version : '>=3.22') + +# Libraries +cc = meson.get_compiler('c') +mpc = declare_dependency( +  dependencies: [ +    cc.find_library('mpc'), +  ] +) +mpfr = declare_dependency( +  dependencies: [ +    cc.find_library('mpfr'), +  ] +) +conf = configuration_data() + +top_inc = include_directories('.') + +conf.set('G_LOG_USE_STRUCTURED', true) +conf.set_quoted('PACKAGE_NAME', 'mate-calc') +conf.set_quoted('PACKAGE_VERSION', meson.project_version()) +conf.set_quoted('VERSION', meson.project_version()) +conf.set_quoted('GETTEXT_PACKAGE', 'mate-calc') +conf.set_quoted('PACKAGE_URL', 'https://mate-desktop.org') +conf.set_quoted('DATADIR', datadir) +conf.set_quoted('UI_DIR', join_paths([pkgdatadir,'uidir'])) +conf.set_quoted('PKGDATADIR', pkgdatadir) +conf.set_quoted('LOCALE_DIR', join_paths([ get_option('prefix'), +                                           get_option('datadir'), +                                          'locale' ])) + +conf.set_quoted('pkgdatadir', pkgdatadir) +conf.set_quoted('bindir', bindir) + +configure_file(output : 'config.h', configuration : conf) + +subdir('src') +subdir('data') +subdir('po') +subdir('help') + +meson.add_install_script('meson-postinstall.sh') diff --git a/po/meson.build b/po/meson.build new file mode 100644 index 0000000..f904cde --- /dev/null +++ b/po/meson.build @@ -0,0 +1,3 @@ +i18n.gettext(meson.project_name(), +  preset: 'glib' +) diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..bb183cd --- /dev/null +++ b/src/meson.build @@ -0,0 +1,120 @@ +src = [] +src_cmd = [] +test_mp_src = [] +test_mp_eq_src = [] + +enums = [] + +enums += gnome.mkenums('types', +    sources: 'mp-serializer.h', +    c_template: 'mp-enums.c.template', +    h_template: 'mp-enums.h.template') + +ui_files = files( +    'buttons-advanced.ui', +    'buttons-basic.ui', +    'buttons-financial.ui', +    'preferences.ui' +) + +ui_resources = gnome.compile_resources( +    'ui_resources', +    'org.mate.calculator.gresource.xml', +    source_dir: 'src' +) + +src += [ +    'mate-calc.c', +    'currency-manager.c', +    'currency.c', +    'financial.c', +    'lexer.c', +    'math-buttons.c', +    'math-converter.c', +    'math-display.c', +    'math-equation.c', +    'math-history.c', +    'math-history-entry.c', +    'math-preferences.c', +    'math-variable-popup.c', +    'math-variables.c', +    'math-window.c', +    'mp-binary.c', +    'mp-convert.c', +    'mp-equation.c', +    'mp-trigonometric.c', +    'mp-serializer.c', +    'mp.c', +    'parser.c', +    'parserfunc.c', +    'prelexer.c', +    'unit-category.c', +    'unit-manager.c', +    'unit.c', +    enums, +    ui_resources +] + +src_cmd += [ +	'mate-calc-cmd.c', +	'currency.c', +	'currency-manager.c', +	'mp.c', +	'mp-binary.c', +	'mp-convert.c', +	'mp-equation.c', +	'mp-serializer.c', +	'mp-trigonometric.c', +	'unit.c', +	'unit-category.c', +	'unit-manager.c', +	'prelexer.c', +	'lexer.c', +	'parserfunc.c', +	'parser.c', +	enums +] + +test_mp_src += [ +    'test-mp.c', +    'mp.c', +    'mp-convert.c', +    'mp-trigonometric.c' +] + +test_mp_eq_src += [ +    'test-mp-equation.c', +    'currency.c', +    'currency-manager.c', +    'mp.c', +    'mp-convert.c', +    'mp-binary.c', +    enums, +    'mp-equation.c', +    'mp-serializer.c', +    'mp-trigonometric.c', +    'unit.c', +    'unit-category.c', +    'unit-manager.c', +    'prelexer.c', +    'lexer.c', +    'parserfunc.c', +    'parser.c', +] + +executable('mate-calc', src, include_directories: top_inc, +    dependencies : [gio, glib, gobject,gtk, libxml, mpc, mpfr], +	link_args: '-rdynamic', +    install : true, +    install_dir : get_option('bindir')) + +executable('mate-calc-cmd', src_cmd, include_directories: top_inc, +    dependencies : [gio, libxml, mpc, mpfr], +    install : true, +    install_dir : get_option('bindir')) + +executable('test-mp', test_mp_src, include_directories: top_inc, +    dependencies : [gio, libxml, mpc, mpfr]) + +executable('test-mp-equation', test_mp_eq_src, include_directories: top_inc, +    dependencies: [gio, libxml, mpc, mpfr]) diff --git a/src/utility.h b/src/utility.h index 91745ed..15d40b2 100644 --- a/src/utility.h +++ b/src/utility.h @@ -2,6 +2,7 @@  #define UTILITY_H  #include <glib/gi18n.h> +#include "config.h"  extern GSettings *g_settings_var;  | 
