1subdir('cmph') 2 3custom_c_args = [] 4 5if cc.get_id() != 'msvc' 6 custom_c_args = cc.get_supported_arguments([ 7 '-Wno-old-style-definition', 8 '-Wno-cast-align', 9 ]) 10endif 11 12girepo_gthash_lib = static_library('girepository-gthash', 13 sources: 'gthash.c', 14 include_directories : configinc, 15 c_args: gi_hidden_visibility_cflags + custom_c_args, 16 dependencies: [ 17 cmph_dep, 18 glib_dep, 19 gmodule_dep, 20 gobject_dep, 21 ], 22) 23 24girepo_gthash_dep = declare_dependency( 25 link_with: girepo_gthash_lib, 26 dependencies: [glib_dep, gmodule_dep, gobject_dep], 27 include_directories: include_directories('.'), 28) 29 30if cc.get_id() != 'msvc' 31 custom_c_args = cc.get_supported_arguments([ 32 '-Wno-unused-parameter', 33 '-Wno-duplicated-branches', 34 '-Wno-cast-align', 35 ]) 36endif 37 38girepo_internals_lib = static_library('girepository-internals', 39 sources: [ 40 'girmodule.c', 41 'girnode.c', 42 'giroffsets.c', 43 'girparser.c', 44 'girwriter.c', 45 ], 46 c_args: gi_hidden_visibility_cflags + custom_c_args, 47 include_directories : configinc, 48 dependencies: [girepo_gthash_dep, libffi_dep], 49) 50 51girepo_internals_dep = declare_dependency( 52 link_with: girepo_internals_lib, 53 dependencies: libffi_dep, 54 include_directories: include_directories('.'), 55) 56 57gi_version_h = configure_file( 58 configuration: config, 59 input: 'giversion.h.in', 60 output: 'giversion.h', 61) 62 63girepo_headers = [ 64 'giarginfo.h', 65 'gibaseinfo.h', 66 'gicallableinfo.h', 67 'giconstantinfo.h', 68 'gienuminfo.h', 69 'gifieldinfo.h', 70 'gifunctioninfo.h', 71 'giinterfaceinfo.h', 72 'giobjectinfo.h', 73 'gipropertyinfo.h', 74 'giregisteredtypeinfo.h', 75 'girepository.h', 76 'girffi.h', 77 'gisignalinfo.h', 78 'gistructinfo.h', 79 'gitypeinfo.h', 80 'gitypelib.h', 81 'gitypes.h', 82 'giunioninfo.h', 83 'giversionmacros.h', 84 'givfuncinfo.h', 85 gi_version_h, 86] 87 88girepo_sources = [ 89 'gdump.c', 90 'giarginfo.c', 91 'gibaseinfo.c', 92 'gicallableinfo.c', 93 'giconstantinfo.c', 94 'gienuminfo.c', 95 'gifieldinfo.c', 96 'gifunctioninfo.c', 97 'ginvoke.c', 98 'giinterfaceinfo.c', 99 'giobjectinfo.c', 100 'gipropertyinfo.c', 101 'giregisteredtypeinfo.c', 102 'girepository.c', 103 'girffi.c', 104 'gisignalinfo.c', 105 'gistructinfo.c', 106 'gitypeinfo.c', 107 'gitypelib.c', 108 'giunioninfo.c', 109 'giversion.c', 110 'givfuncinfo.c', 111] 112 113# Used in gir/meson.build 114girepo_gir_sources = files( 115 'giarginfo.c', 116 'gibaseinfo.c', 117 'gicallableinfo.c', 118 'giconstantinfo.c', 119 'gienuminfo.c', 120 'gifieldinfo.c', 121 'gifunctioninfo.c', 122 'giinterfaceinfo.c', 123 'giobjectinfo.c', 124 'gipropertyinfo.c', 125 'giregisteredtypeinfo.c', 126 'girepository.c', 127 'gisignalinfo.c', 128 'gistructinfo.c', 129 'gitypeinfo.c', 130 'giunioninfo.c', 131 'giversion.c', 132 'givfuncinfo.c', 133 'giarginfo.h', 134 'gibaseinfo.h', 135 'gicallableinfo.h', 136 'giconstantinfo.h', 137 'gienuminfo.h', 138 'gifieldinfo.h', 139 'gifunctioninfo.h', 140 'giinterfaceinfo.h', 141 'giobjectinfo.h', 142 'gipropertyinfo.h', 143 'giregisteredtypeinfo.h', 144 'girepository.h', 145 'gisignalinfo.h', 146 'gistructinfo.h', 147 'gitypeinfo.h', 148 'gitypelib.h', 149 'gitypes.h', 150 'giunioninfo.h', 151 'givfuncinfo.h', 152) + [gi_version_h] 153 154 155install_headers(girepo_headers, subdir: 'gobject-introspection-1.0') 156 157if cc.get_id() != 'msvc' 158 custom_c_args = cc.get_supported_arguments([ 159 '-Wno-unused-parameter', 160 '-Wno-duplicated-branches', 161 '-Wno-type-limits', 162 '-Wno-cast-align', 163 '-Wno-missing-field-initializers', 164 ]) 165endif 166 167lib_version = '1.0.0' 168lib_version_arr = lib_version.split('.') 169lib_version_major = lib_version_arr[0].to_int() 170lib_version_minor = lib_version_arr[1].to_int() 171lib_version_micro = lib_version_arr[2].to_int() 172 173osx_current = lib_version_major + 1 174lib_osx_version = [osx_current, '@0@.@1@'.format(osx_current, lib_version_minor)] 175 176girepo_lib = shared_library('girepository-1.0', 177 sources: girepo_sources, 178 include_directories : configinc, 179 c_args: gi_hidden_visibility_cflags + ['-DG_IREPOSITORY_COMPILATION'] + 180 custom_c_args, 181 dependencies: [glib_dep, gobject_dep, gmodule_dep, 182 gio_dep, girepo_internals_dep], 183 version: lib_version, 184 darwin_versions: lib_osx_version, 185 install: true, 186) 187 188girepo_dep = declare_dependency( 189 link_with: girepo_lib, 190 dependencies: [glib_dep, gobject_dep, gio_dep, gmodule_dep], 191 include_directories: include_directories('.'), 192) 193 194gthash_test = executable('gthash-test', 'gthash-test.c', 195 dependencies: girepo_gthash_dep, 196) 197 198test('gthash-test', gthash_test) 199 200if giounix_dep.found() or giowin_dep.found() 201 executable('gi-dump-types', 'gi-dump-types.c', 202 dependencies: [girepo_dep, giounix_dep, giowin_dep]) 203endif 204