summaryrefslogtreecommitdiff
path: root/libpeas/meson.build
blob: 9707303bd36ed675ad86072cfa5ce87068afef24 (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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
libpeas_srcdir = include_directories('.')

version_data = configuration_data()
version_data.set('PEAS_MAJOR_VERSION', version_major)
version_data.set('PEAS_MINOR_VERSION', version_minor)
version_data.set('PEAS_MICRO_VERSION', version_micro)
version_data.set('PEAS_VERSION', meson.project_version())

peas_version_h = configure_file(
  input: 'peas-version.h.in',
  output: 'peas-version.h',
  configuration: version_data,
  install_dir: pkgincludedir,
)

libpeas_public_h = files(
  'peas-engine.h',
  'peas-extension-base.h',
  'peas-extension-set.h',
  'peas-object-module.h',
  'peas-plugin-info.h',
  'peas-version-macros.h',
  'libpeas.h',
)

libpeas_sources = files(
  'peas-debug.c',
  'peas-dirs.c',
  'peas-engine.c',
  'peas-extension-base.c',
  'peas-extension-set.c',
  'peas-i18n.c',
  'peas-object-module.c',
  'peas-plugin-info.c',
  'peas-plugin-loader.c',
  'peas-plugin-loader-c.c',
  'peas-utils.c',
)

if build_machine.system() == 'darwin'
  libpeas_sources += [
    'peas-utils-osx.m',
    'peas-utils-osx.h',
  ]
endif


libpeas_deps = [
  glib_dep,
  gobject_dep,
  gmodule_dep,
  gio_dep,
]

libpeas_c_args = [
  '-DG_LOG_DOMAIN="libpeas"',
  '-DDATADIR="@0@"'.format(datadir),
  '-DLIBDIR="@0@"'.format(libdir),
]

libpeas_link_args = [
]

if build_machine.system() == 'darwin'
  libpeas_link_args += [
    '-Wl,-framework', '-Wl,Foundation',
    '-Wl,-framework', '-Wl,AppKit',
  ]
endif

libpeas_marshal = gnome.genmarshal(
  'peas-marshal',
  sources: 'peas-marshal.list',
  prefix: 'peas_cclosure_marshal',
  install_header: false,
  valist_marshallers: true,
)

libpeas_marshals_h = libpeas_marshal.get(1)

install_headers(libpeas_public_h, install_dir: pkgincludedir)

libpeas_sha = library(
  package_string.strip('lib'),
  libpeas_sources + libpeas_marshal,
  version: lib_version,
  darwin_versions: lib_version_osx,
  include_directories: [rootdir, libpeas_srcdir],
  dependencies: libpeas_deps,
  c_args: libpeas_c_args + hidden_visibility_args,
  objc_args: libpeas_c_args,
  link_args: libpeas_link_args,
  install: true,
)

libpeas_dep_sources = [
  libpeas_marshals_h,
]

if generate_gir == true
  libpeas_gir_includes = [
    'GObject-2.0',
    'GModule-2.0',
    'Gio-2.0',
    'GIRepository-2.0'
  ]

  libpeas_gir = gnome.generate_gir(
    libpeas_sha,
    sources: libpeas_sources + libpeas_public_h,
    nsversion: api_version,
    namespace: 'Peas',
    symbol_prefix: 'peas',
    identifier_prefix: 'Peas',
    header: 'peas.h',
    export_packages: [package_string],
    includes: libpeas_gir_includes,
    link_with: libpeas_sha,
    install: true,
    install_dir_gir: girdir,
    install_dir_typelib: typelibdir,
    extra_args: [
      '--warn-all',
    ],
  )

  libpeas_dep_sources += [
    libpeas_gir,
  ]
endif

libpeas_dep = declare_dependency(
  link_with: libpeas_sha,
  include_directories: [rootdir, libpeas_srcdir],
  dependencies: libpeas_deps,
  sources: libpeas_dep_sources,
)

libpeas_pc_reqs = [
  'glib-2.0 @0@'.format(glib_req),
  'gobject-2.0 @0@'.format(glib_req),
  'gmodule-2.0 @0@'.format(glib_req),
  'gio-2.0 @0@'.format(glib_req),
]

libpeas_pc = pkg.generate(
  libpeas_sha,
  name: package_string,
  description: 'GObject plugins library',
  subdirs: package_string,
  install_dir: pkgconfigdir,
  requires: libpeas_pc_reqs,
)