dom_sources = [ 'lsm.c', 'lsmdebug.c', 'lsmstr.c', 'lsmutils.c', 'lsmmisc.c', 'lsmtraits.c', 'lsmproperties.c', 'lsmattributes.c', 'lsmcairo.c', 'lsmitex.c', 'lsmdomentities.c', 'lsmdomnode.c', 'lsmdomnodelist.c', 'lsmdomnamednodemap.c', 'lsmdomdocument.c', 'lsmdomdocumentfragment.c', 'lsmdomelement.c', 'lsmdomcharacterdata.c', 'lsmdomtext.c', 'lsmdomview.c', 'lsmdomparser.c', 'lsmdomimplementation.c' ] mathml_sources = [ 'lsmmathmlenums.c', 'lsmmathmltraits.c', 'lsmmathmlattributes.c', 'lsmmathmloperatordictionary.c', 'lsmmathmldocument.c', 'lsmmathmlelement.c', 'lsmmathmlsemanticselement.c', 'lsmmathmlphantomelement.c', 'lsmmathmlmathelement.c', 'lsmmathmltableelement.c', 'lsmmathmltablerowelement.c', 'lsmmathmltablecellelement.c', 'lsmmathmlspaceelement.c', 'lsmmathmlradicalelement.c', 'lsmmathmlscriptelement.c', 'lsmmathmlfractionelement.c', 'lsmmathmlunderoverelement.c', 'lsmmathmlpresentationtoken.c', 'lsmmathmloperatorelement.c', 'lsmmathmlstringelement.c', 'lsmmathmlpresentationcontainer.c', 'lsmmathmlstyleelement.c', 'lsmmathmlrowelement.c', 'lsmmathmlencloseelement.c', 'lsmmathmlfencedelement.c', 'lsmmathmlpaddedelement.c', 'lsmmathmlerrorelement.c', 'lsmmathmlactionelement.c', 'lsmmathmlstyle.c', 'lsmmathmlview.c', 'lsmmathmlglyphtableams.c', 'lsmmathmlalignmarkelement.c', 'lsmmathmlaligngroupelement.c', 'lsmmathmlitexelement.c', 'lsmmathmlutils.c', 'lsmmathmllayoututils.c' ] svg_sources = [ 'lsmsvgenums.c', 'lsmsvgtraits.c', 'lsmsvgstyle.c', 'lsmsvgcolors.c', 'lsmsvglength.c', 'lsmsvgview.c', 'lsmsvgmatrix.c', 'lsmsvgdocument.c', 'lsmsvgelement.c', 'lsmsvgtransformable.c', 'lsmsvgclippathelement.c', 'lsmsvgsvgelement.c', 'lsmsvguseelement.c', 'lsmsvgimageelement.c', 'lsmsvgsymbolelement.c', 'lsmsvgmarkerelement.c', 'lsmsvgaelement.c', 'lsmsvggelement.c', 'lsmsvgdefselement.c', 'lsmsvgrectelement.c', 'lsmsvgcircleelement.c', 'lsmsvgellipseelement.c', 'lsmsvglineelement.c', 'lsmsvgpolylineelement.c', 'lsmsvgpolygonelement.c', 'lsmsvgpathelement.c', 'lsmsvgtextelement.c', 'lsmsvgtspanelement.c', 'lsmsvggradientelement.c', 'lsmsvglineargradientelement.c', 'lsmsvgradialgradientelement.c', 'lsmsvgstopelement.c', 'lsmsvgswitchelement.c', 'lsmsvgpatternelement.c', 'lsmsvgmaskelement.c', 'lsmsvgfilterelement.c', 'lsmsvgfilterprimitive.c', 'lsmsvgfilterblend.c', 'lsmsvgfiltercolormatrix.c', 'lsmsvgfiltercomposite.c', 'lsmsvgfilterconvolvematrix.c', 'lsmsvgfilterdisplacementmap.c', 'lsmsvgfilterflood.c', 'lsmsvgfiltergaussianblur.c', 'lsmsvgfilterimage.c', 'lsmsvgfilteroffset.c', 'lsmsvgfiltermerge.c', 'lsmsvgfiltermergenode.c', 'lsmsvgfiltermorphology.c', 'lsmsvgfilterspecularlighting.c', 'lsmsvgfiltertile.c', 'lsmsvgfilterturbulence.c', 'lsmsvgfiltersurface.c' ] dom_headers = [ 'lsm.h', 'lsmtypes.h', 'lsmcairo.h', 'lsmstr.h', 'lsmutils.h', 'lsmmisc.h', 'lsmdebug.h', 'lsmtraits.h', 'lsmproperties.h', 'lsmattributes.h', 'lsmitex.h', 'lsmdomentities.h', 'lsmdom.h', 'lsmdomtypes.h', 'lsmdomnode.h', 'lsmdomnodelist.h', 'lsmdomnamednodemap.h', 'lsmdomdocument.h', 'lsmdomdocumentfragment.h', 'lsmdomelement.h', 'lsmdomcharacterdata.h', 'lsmdomtext.h', 'lsmdomview.h', 'lsmdomparser.h', 'lsmdomimplementation.h' ] mathml_headers = [ 'lsmmathml.h', 'lsmmathmltypes.h', 'lsmmathmlenums.h', 'lsmmathmltraits.h', 'lsmmathmlattributes.h', 'lsmmathmloperatordictionary.h', 'lsmmathmldocument.h', 'lsmmathmlelement.h', 'lsmmathmlsemanticselement.h', 'lsmmathmlphantomelement.h', 'lsmmathmlmathelement.h', 'lsmmathmltableelement.h', 'lsmmathmltablerowelement.h', 'lsmmathmltablecellelement.h', 'lsmmathmlspaceelement.h', 'lsmmathmlradicalelement.h', 'lsmmathmlscriptelement.h', 'lsmmathmlfractionelement.h', 'lsmmathmlunderoverelement.h', 'lsmmathmlpresentationtoken.h', 'lsmmathmloperatorelement.h', 'lsmmathmlstringelement.h', 'lsmmathmlpresentationcontainer.h', 'lsmmathmlstyleelement.h', 'lsmmathmlrowelement.h', 'lsmmathmlencloseelement.h', 'lsmmathmlfencedelement.h', 'lsmmathmlpaddedelement.h', 'lsmmathmlerrorelement.h', 'lsmmathmlactionelement.h', 'lsmmathmlstyle.h', 'lsmmathmlview.h', 'lsmmathmlglyphtableams.h', 'lsmmathmlalignmarkelement.h', 'lsmmathmlaligngroupelement.h', 'lsmmathmlitexelement.h', 'lsmmathmlutils.h', 'lsmmathmllayoututils.h' ] svg_headers = [ 'lsmsvg.h', 'lsmsvgtypes.h', 'lsmsvgenums.h', 'lsmsvgtraits.h', 'lsmsvgattributes.h', 'lsmsvgstyle.h', 'lsmsvgcolors.h', 'lsmsvglength.h', 'lsmsvgview.h', 'lsmsvgmatrix.h', 'lsmsvgdocument.h', 'lsmsvgelement.h', 'lsmsvgtransformable.h', 'lsmsvgclippathelement.h', 'lsmsvgsvgelement.h', 'lsmsvgaelement.h', 'lsmsvggelement.h', 'lsmsvgdefselement.h', 'lsmsvguseelement.h', 'lsmsvgimageelement.h', 'lsmsvgsymbolelement.h', 'lsmsvgmarkerelement.h', 'lsmsvgrectelement.h', 'lsmsvgcircleelement.h', 'lsmsvgellipseelement.h', 'lsmsvglineelement.h', 'lsmsvgpathelement.h', 'lsmsvgpolylineelement.h', 'lsmsvgpolygonelement.h', 'lsmsvgtextelement.h', 'lsmsvgtspanelement.h', 'lsmsvggradientelement.h', 'lsmsvglineargradientelement.h', 'lsmsvgradialgradientelement.h', 'lsmsvgstopelement.h', 'lsmsvgswitchelement.h', 'lsmsvgpatternelement.h', 'lsmsvgmaskelement.h', 'lsmsvgfilterelement.h', 'lsmsvgfilterprimitive.h', 'lsmsvgfilterblend.h', 'lsmsvgfiltercolormatrix.h', 'lsmsvgfiltercomposite.h', 'lsmsvgfilterdisplacementmap.h', 'lsmsvgfilterconvolvematrix.h', 'lsmsvgfilterflood.h', 'lsmsvgfiltergaussianblur.h', 'lsmsvgfilterimage.h', 'lsmsvgfilteroffset.h', 'lsmsvgfiltermerge.h', 'lsmsvgfiltermergenode.h', 'lsmsvgfiltermorphology.h', 'lsmsvgfilterspecularlighting.h', 'lsmsvgfiltertile.h', 'lsmsvgfilterturbulence.h', 'lsmsvgfiltersurface.h' ] dom_enums = gnome.mkenums_simple ('lsmdomenumtypes', sources: dom_headers) mathml_enums = gnome.mkenums_simple ('lsmmathmlenumtypes', sources: mathml_headers) svg_enums = gnome.mkenums_simple ('lsmsvgenumtypes', sources: svg_headers) library_sources = dom_sources + mathml_sources + svg_sources library_headers = dom_headers + mathml_headers + svg_headers library_enums = dom_enums + mathml_enums + svg_enums library_include_dir = join_paths (get_option ('includedir'), 'lasem-@0@'.format (lasem_api_version)) library_inc = include_directories (['.']) install_headers (library_headers, install_dir: library_include_dir) library_c_args = [ '-DG_LOG_DOMAIN="Lasem"' ] lasem_library = library ('lasem-@0@'.format (lasem_api_version), itex2mml_files, library_sources, library_headers, library_enums, include_directories: [library_inc, itex2mml_inc], version: lasem_version, soversion: '0', dependencies: lasem_dependencies, c_args: library_c_args, install: true) lasem_library_dependencies = declare_dependency (dependencies: lasem_dependencies, link_with: lasem_library) pkg.generate (libraries: [lasem_library, libm], filebase: 'lasem-@0@'.format (lasem_api_version), version: lasem_version, subdirs: 'lasem-@0@'.format (lasem_api_version), name: 'Lasem', description: 'Mathml and SVG rendering library', requires: [glib_dep, gobject_dep, gio_dep, cairo_dep, gdk_dep]) render_c_args = [ '-DPACKAGE_LOCALE_DIR="@0@"'.format (join_paths (get_option ('prefix'), 'locale')), ] lasem_render = executable ('lasem-render-@0@'.format (lasem_api_version), 'lasemrender.c', link_with: lasem_library, dependencies: lasem_dependencies, c_args: render_c_args, install: true) introspection_option = get_option('introspection') introspection_enabled = false if introspection_option.auto() or introspection_option.enabled() gir_scanner = find_program('g-ir-scanner', required: introspection_option) gi_dep = dependency('gobject-introspection-1.0', required: introspection_option) if gir_scanner.found() and gi_dep.found() lasem_gir = gnome.generate_gir ( lasem_library, sources : [dom_sources, dom_headers, dom_enums], nsversion : lasem_api_version, namespace : 'Lasem', symbol_prefix : 'lsm_', identifier_prefix : 'Lsm', export_packages : 'lasem', includes : ['GObject-2.0', 'Gio-2.0', 'cairo-1.0', 'GdkPixbuf-2.0'], install : true ) introspection_enabled = true endif endif