summaryrefslogtreecommitdiff
path: root/libgssdp/meson.build
blob: 879d6853179c42f6e5bcb2f0ad1f077ea11b831f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
enums = gnome.mkenums(
    'gssdp-enums',
    sources : [
        'gssdp-error.h',
        'gssdp-client.h'
    ],
    identifier_prefix : 'GSSDP',
    symbol_prefix : 'gssdp',
    c_template : 'gssdp-enums.c.template',
    h_template : 'gssdp-enums.h.template',
    install_header : true,
    install_dir : join_paths(get_option('includedir'), GSSDP_API_NAME, 'libgssdp')
)

headers = files(
    'gssdp-client.h',
    'gssdp-resource-browser.h',
    'gssdp-resource-group.h',
    'gssdp-error.h',
    'gssdp.h',
)

install_headers(headers, subdir : GSSDP_API_NAME / 'libgssdp')

sources = files(
    'gssdp-client.c',
    'gssdp-error.c',
    'gssdp-resource-browser.c',
    'gssdp-resource-group.c',
    'gssdp-socket-source.c',
    'gssdp-socket-functions.c',
)

if pktinfo_available
  sources += 'gssdp-pktinfo-message.c'
  sources += 'gssdp-pktinfo6-message.c'
endif

if host_machine.system() == 'windows'
  sources += 'gssdp-net-win32.c'
endif

if bionic_available
  sources += 'gssdp-net-bionic.c'
endif

if generic_unix
  sources += 'gssdp-net-posix.c'
endif

v = meson.project_version().split('.')
soversion = 0
library_minor = v[0].to_int() * 100 + v[1].to_int()
library_micro = v[2].to_int()

version = '@0@.@1@.@2@'.format(soversion, library_minor, library_micro)
version_arr = version.split('.')
major_version = version_arr[0].to_int()
minor_version = version_arr[1].to_int()
micro_version = version_arr[2].to_int()
current = major_version + minor_version + 1
interface_age = micro_version
darwin_versions = [current, '@0@.@1@'.format(current, interface_age)]

libgssdp = library(
    GSSDP_API_NAME,
    sources + enums,
    version : version,
    darwin_versions : darwin_versions,
    dependencies : dependencies + system_deps,
    include_directories : [include_directories('..'), config_h_inc],
    install : true)

gssdp = declare_dependency(link_with : libgssdp,
                           include_directories: include_directories('..'),
                           dependencies : dependencies
                       )

meson.override_dependency(GSSDP_API_NAME, gssdp)

pkg.generate(libgssdp,
             subdirs: GSSDP_API_NAME,
             version: meson.project_version(),
             name: GSSDP_API_NAME,
             requires: ['gio-2.0', 'glib-2.0', 'gobject-2.0'],
             filebase : GSSDP_API_NAME,
             description: 'GObject-based SSDP library',
             requires_private: ['gobject-2.0', 'gio-2.0'])

if get_option('introspection')
    gssdp_gir_dir = meson.current_build_dir()
    gir = gnome.generate_gir(libgssdp,
            sources : headers + sources + enums,
            namespace : 'GSSDP',
            nsversion : GSSDP_API_VERSION,
            header : 'libgssdp/gssdp.h',
            symbol_prefix : 'gssdp',
            identifier_prefix : 'GSSDP',
            export_packages : GSSDP_API_NAME,
            includes : ['GObject-2.0', 'Gio-2.0', 'Soup-2.4'],
            install: true)
endif