1# SPDX-License-Identifier: LGPL-2.1-or-later 2# Copyright (C) 2021 Iñigo Martinez <inigomartinez@gmail.com> 3 4src_inc = include_directories('.') 5 6libname= '@0@-@1@'.format(gnome_autoar_name, gnome_autoar_api_version) 7 8headers = files( 9 'autoar-compressor.h', 10 'autoar-extractor.h', 11 'autoar-format-filter.h', 12 'autoar-mime-types.h', 13 'autoar-misc.h', 14) 15 16install_headers( 17 headers + files('gnome-autoar.h'), 18 install_dir: gnome_autoar_includedir / libname / gnome_autoar_name, 19) 20 21sources = files( 22 'autoar-compressor.c', 23 'autoar-extractor.c', 24 'autoar-format-filter.c', 25 'autoar-mime-types.c', 26 'autoar-misc.c', 27) 28 29enum_types = 'autoar-enum-types' 30 31enum_sources = gnome.mkenums( 32 enum_types, 33 sources: headers, 34 h_template: '@0@.h.template'.format(enum_types), 35 c_template: '@0@.c.template'.format(enum_types), 36 install_header: true, 37 install_dir: gnome_autoar_includedir / libname / gnome_autoar_name, 38) 39 40deps = [ 41 gio_dep, 42 glib_dep, 43 libarchive_dep, 44] 45 46libgnome_autoar = shared_library( 47 libname, 48 version: gnome_autoar_libversion, 49 sources: sources + enum_sources + files('autoar-private.c'), 50 include_directories: top_inc, 51 dependencies: deps, 52 install: true, 53) 54 55libgnome_autoar_dep = declare_dependency( 56 sources: enum_sources[1], 57 include_directories: src_inc, 58 dependencies: deps, 59 link_with: libgnome_autoar, 60) 61 62pkg.generate( 63 libraries: libgnome_autoar, 64 name: gnome_autoar_name, 65 description: 'Archives integration support for GNOME', 66 filebase: libname, 67 subdirs: libname, 68 requires: deps, 69 variables: 'exec_prefix=${prefix}', 70) 71 72if enable_introspection 73 api_ns = 'GnomeAutoar' 74 75 incs = [ 76 'Gio-2.0', 77 'GLib-2.0', 78 'GObject-2.0', 79 ] 80 81 libgnome_autoar_gir = gnome.generate_gir( 82 libgnome_autoar, 83 sources: sources + headers, 84 includes: incs, 85 header: 'gnome-autoar/gnome-autoar.h', 86 namespace: api_ns, 87 nsversion: gnome_autoar_api_ns_version, 88 identifier_prefix: gnome_autoar_api_prefix, 89 export_packages: '@0@-@1@'.format(api_ns, gnome_autoar_api_ns_version), 90 install: true, 91 ) 92 93 if enable_vapi 94 libgnome_autoar_vapi = gnome.generate_vapi( 95 libname, 96 sources: libgnome_autoar_gir[0], 97 packages: 'gio-2.0', 98 install: true, 99 ) 100 endif 101endif 102 103if not enable_gtk 104 subdir_done() 105endif 106 107libname_gtk = '@0@-gtk-@1@'.format(gnome_autoar_name, gnome_autoar_api_version) 108 109headers = files( 110 'autoar-gtk-chooser.h', 111 'autoar-gtk.h', 112) 113 114install_headers( 115 headers, 116 install_dir: gnome_autoar_includedir / libname / gnome_autoar_name, 117) 118 119sources = files('autoar-gtk-chooser.c') 120 121deps = [gtk_dep] 122 123libgnome_autoar_gtk = shared_library( 124 libname_gtk, 125 version: gnome_autoar_libversion, 126 sources: sources, 127 include_directories: top_inc, 128 dependencies: deps + [libgnome_autoar_dep], 129 install: true, 130) 131 132libgnome_autoar_gtk_dep = declare_dependency( 133 include_directories: src_inc, 134 dependencies: deps + [libgnome_autoar_dep], 135 link_with: libgnome_autoar_gtk, 136) 137 138pkg.generate( 139 libraries: libgnome_autoar_gtk, 140 name: gnome_autoar_name, 141 description: 'GTK+ widgets for gnome-autoar library', 142 filebase: libname_gtk, 143 subdirs: libname, 144 requires: deps, 145 variables: 'exec_prefix=${prefix}', 146) 147 148if enable_introspection 149 api_ns = 'GnomeAutoarGtk' 150 151 incs = [ 152 libgnome_autoar_gir[0], 153 'Gtk-3.0', 154 ] 155 156 libgnome_autoar_gtk_gir = gnome.generate_gir( 157 libgnome_autoar_gtk, 158 sources: sources + headers, 159 includes: incs, 160 header: 'gnome-autoar/autoar-gtk.h', 161 namespace: api_ns, 162 nsversion: gnome_autoar_api_ns_version, 163 identifier_prefix: 'AutoarGtk', 164 export_packages: '@0@-@1@'.format(api_ns, gnome_autoar_api_ns_version), 165 install: true, 166 ) 167 168 if enable_vapi 169 packages = [ 170 libgnome_autoar_vapi, 171 'gtk+-3.0', 172 ] 173 174 gnome.generate_vapi( 175 libname_gtk, 176 sources: libgnome_autoar_gtk_gir[0], 177 packages: packages, 178 install: true, 179 ) 180 endif 181endif 182