[gxml] Porting project from Autotools to Meson
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gxml] Porting project from Autotools to Meson
- Date: Sat, 6 May 2017 00:45:29 +0000 (UTC)
commit 845ba31e79577e4a3ba9d584a148dcfb2e44318a
Author: Yannick Inizan <inizan yannick gmail com>
Date: Fri May 5 19:36:08 2017 -0500
Porting project from Autotools to Meson
configure.ac | 8 ++-
gxml/Makefile.am | 12 ++++-
gxml/gxml.deps.in | 1 +
gxml/gxml.pc.in | 13 +++++
gxml/meson.build | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++++
meson.build | 23 ++++++++
6 files changed, 206 insertions(+), 5 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 7687c30..3070f80 100644
--- a/configure.ac
+++ b/configure.ac
@@ -120,9 +120,12 @@ VALA_API_REQUIRED=
LIBVALA_REQUIRED=
GEE_REQUIRED=0.18.0
LIBXML_REQUIRED=2.7
-GIO_MODULES="gio-2.0 >= 2.16"
+GIO_MODULES="gio-2.0 >= 2.32"
VALADOC_REQUIRED=0.30
+PCDEPS="gee-0.8 gio-2.0 libxml-2.0"
+AC_SUBST(PCDEPS)
+
# Check glib
PKG_CHECK_MODULES([GLIB],
[glib-2.0 >= $GLIB_REQUIRED
@@ -141,7 +144,6 @@ PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_REQUIRED)
# Check for GIO
PKG_CHECK_MODULES(GIO, $GIO_MODULES)
-
# Check for GObject Introspection
GOBJECT_INTROSPECTION_CHECK([1.32.0])
@@ -247,7 +249,7 @@ AM_CONDITIONAL(PLATFORM_WIN32, [test x$platform_win32 = xyes])
AC_CONFIG_FILES([
Makefile
gxml/namespace-info.vala
-gxml/gxml-0.14.pc
+gxml/gxml.pc
gxml/Makefile
test/Makefile
docs/Makefile
diff --git a/gxml/Makefile.am b/gxml/Makefile.am
index 5b70f0f..ef5e820 100644
--- a/gxml/Makefile.am
+++ b/gxml/Makefile.am
@@ -202,6 +202,12 @@ gxml_HEADERS = gxml.h xlibxml.h
# .vapi Vala API file
gxml-0.14.vapi: libgxml-0.14.la
+
+gxml-0.14.deps:
+ echo 'libxml-2.0' > $@
+ echo 'gee-0.8' >> $@
+ echo 'gio-2.0' >> $@
+
vapidir = $(datadir)/vala/vapi
dist_vapi_DATA = \
gxml-0.14.vapi \
@@ -209,9 +215,11 @@ dist_vapi_DATA = \
$(NULL)
# .pc pkg-config file
-pkgconfig_in = gxml-0.14.pc.in
+gxml-0.14.pc:
+ cp gxml.pc $@
+
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = $(pkgconfig_in:.in=)
+pkgconfig_DATA = gxml-0.14.pc
EXTRA_DIST = \
$(sources) \
diff --git a/gxml/gxml.deps.in b/gxml/gxml.deps.in
new file mode 100644
index 0000000..ff7dc3f
--- /dev/null
+++ b/gxml/gxml.deps.in
@@ -0,0 +1 @@
+@VALADEPS@
diff --git a/gxml/gxml.pc.in b/gxml/gxml.pc.in
new file mode 100644
index 0000000..761f885
--- /dev/null
+++ b/gxml/gxml.pc.in
@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+datadir=@prefix@/share
+includedir=@prefix@/include
+
+Name: libgxml
+Description: GObject API for XML manipulation and serialization library
+URL: http://live.gnome.org/GXml
+Version: @GXML_VERSION@
+Requires: @PCDEPS@
+Libs: -L${libdir} -lgxml-@API_VERSION@
+Cflags: -I${includedir}/gxml-@API_VERSION@/gxml
diff --git a/gxml/meson.build b/gxml/meson.build
new file mode 100644
index 0000000..8691f9a
--- /dev/null
+++ b/gxml/meson.build
@@ -0,0 +1,154 @@
+vapidir = get_option('datadir') + '/vala/vapi'
+includedir = get_option('includedir') + '/gxml-@0@/gxml'.format(API_VERSION)
+
+conf = configuration_data()
+conf.set('prefix', get_option('prefix'))
+conf.set('libdir', get_option('prefix') + '/' + get_option('libdir'))
+conf.set('VALADEPS', VALADEPS)
+conf.set('PCDEPS', PCDEPS)
+conf.set('GXML_VERSION', GXML_VERSION)
+conf.set('API_VERSION', API_VERSION)
+
+configure_file(input : 'gxml.pc.in',
+ output : 'gxml-@0@.pc'.format(API_VERSION),
+ configuration : conf,
+ install : true,
+ install_dir : join_paths(get_option('libdir'), 'pkgconfig'))
+
+configure_file(input : 'gxml.deps.in',
+ output : 'gxml-@0@.deps'.format(API_VERSION),
+ configuration : conf,
+ install : true,
+ install_dir : vapidir)
+
+conf = configuration_data()
+conf.set_quoted('PACKAGE_LOCALE_DIR', join_paths(get_option('prefix'), get_option('datadir'), 'locale'))
+conf.set_quoted('GETTEXT_PACKAGE', 'GXml')
+configure_file(output : 'config.h',
+ configuration : conf)
+
+sources = [
+ 'Attribute.vala',
+ 'CDATA.vala',
+ 'Character.vala',
+ 'Comment.vala',
+ 'Document.vala',
+ 'DocumentType.vala',
+ 'DomAttr.vala',
+ 'DomCharacter.vala',
+ 'DomCollections.vala',
+ 'DomDocument.vala',
+ 'DomElement.vala',
+ 'DomEvents.vala',
+ 'DomMutationObservers.vala',
+ 'DomNode.vala',
+ 'DomRange.vala',
+ 'Element.vala',
+ 'Enumeration.vala',
+ 'GHtml.vala',
+ 'GomAttr.vala',
+ 'GomCollections.vala',
+ 'GomDocument.vala',
+ 'GomElement.vala',
+ 'GomNode.vala',
+ 'GomObject.vala',
+ 'GomProperty.vala',
+ 'GomSchema.vala',
+ 'GomText.vala',
+ 'GXmlAttribute.vala',
+ 'GXmlCDATA.vala',
+ 'GXmlCharacter.vala',
+ 'GXmlChildNode.vala',
+ 'GXmlComment.vala',
+ 'GXmlDocument.vala',
+ 'GXmlDomCollections.vala',
+ 'GXmlDomEvents.vala',
+ 'GXmlDomRange.vala',
+ 'GXmlElement.vala',
+ 'GXmlHashMapAttr.vala',
+ 'gxml-init.vala',
+ 'GXmlListChildren.vala',
+ 'GXmlListNamespaces.vala',
+ 'GXmlNamespace.vala',
+ 'GXmlNode.vala',
+ 'GXmlProcessingInstruction.vala',
+ 'GXmlText.vala',
+ 'GXPathObject.vala',
+ 'Namespace.vala',
+ 'Node.vala',
+ 'NodeType.vala',
+ 'Notation.vala',
+ 'Parser.vala',
+ 'ProcessingInstruction.vala',
+ 'Schema.vala',
+ 'Serializable.vala',
+ 'SerializableBool.vala',
+ 'SerializableContainer.vala',
+ 'SerializableDouble.vala',
+ 'SerializableEnum.vala',
+ 'SerializableFloat.vala',
+ 'SerializableGeeArrayList.vala',
+ 'SerializableGeeDualKeyMap.vala',
+ 'SerializableGeeHashMap.vala',
+ 'SerializableGeeTreeMap.vala',
+ 'SerializableInt.vala',
+ 'SerializableMapDualKey.vala',
+ 'SerializableMapKey.vala',
+ 'SerializableObjectModel.vala',
+ 'SerializableProperty.vala',
+ 'SerializableValueList.vala',
+ 'TAttribute.vala',
+ 'TCDATA.vala',
+ 'TComment.vala',
+ 'TDocument.vala',
+ 'TElement.vala',
+ 'Text.vala',
+ 'TNamespace.vala',
+ 'TNode.vala',
+ 'TProcessingInstruction.vala',
+ 'TText.vala',
+ 'xlibxml.c',
+ 'xlibxml.h',
+ 'XParser.vala',
+ 'XPath.vala',
+ meson.build_root() + '/namespace-info.vala'
+]
+
+gxml = library('gxml-@0@'.format(API_VERSION),
+ sources,
+ version : GXML_VERSION,
+ vala_header : 'gxml.h',
+ vala_vapi : 'gxml-@0@.vapi'.format(API_VERSION),
+ vala_gir : 'GXml-@0@.gir'.format(API_VERSION),
+ dependencies : [ gee, gio, xml ],
+ vala_args : [
+ '--vapidir=' + meson.source_root() + '/vapi',
+ '--pkg', 'config'
+ ],
+ c_args : [
+ '-include',
+ meson.current_build_dir() + '/config.h',
+ xlibxml_cflags
+ ],
+ install : true,
+ install_dir : [
+ get_option('libdir'),
+ includedir,
+ vapidir,
+ true
+ ])
+
+install_headers('xlibxml.h', subdir : includedir)
+
+g_ir_compiler = find_program('g-ir-compiler')
+custom_target('gxml-typelib',
+ command: [
+ g_ir_compiler,
+ '--shared-library', 'libgxml-@0@.so.@1@'.format (API_VERSION, GXML_VERSION),
+ '--output', '@OUTPUT@',
+ join_paths(meson.current_build_dir(), 'GXml-@0@.gir'.format(API_VERSION))
+ ],
+ output: 'GXml-@0@.typelib'.format(API_VERSION),
+ depends: gxml,
+ install: true,
+ install_dir: join_paths(get_option('libdir'), 'girepository-1.0'))
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..f4a8d09
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,23 @@
+project('gxml', [ 'vala', 'c'])
+
+xml = dependency('libxml-2.0')
+gio = dependency('gio-2.0')
+gee = dependency('gee-0.8')
+
+VALADEPS = 'gee-0.8\ngio-2.0\nlibxml-2.0'
+PCDEPS = 'gee-0.8 gio-2.0 libxml-2.0'
+
+API_VERSION = '0.14'
+GXML_VERSION = '0.15.0'
+
+xlibxml_cflags = '-I' + meson.current_source_dir()
+
+conf = configuration_data()
+conf.set('API_VERSION', API_VERSION)
+
+configure_file(input : 'gxml/namespace-info.vala.in',
+ output : 'namespace-info.vala',
+ configuration : conf)
+
+subdir('po')
+subdir('gxml')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]