summaryrefslogtreecommitdiff
path: root/meson.build
blob: b04a9f3ffa2a6df51af800f3b256c41ebd36c6a3 (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
project('appstream-glib', 'c',
        version : '0.6.5',
        license : 'LGPL-2.1+',
        default_options : ['b_asneeded=True', 'b_lundef=True'],
        meson_version : '>=0.34.0')

as_version = meson.project_version()
varr = as_version.split('.')
as_major_version = varr[0]
as_minor_version = varr[1]
as_micro_version = varr[2]

conf = configuration_data()
conf.set('AS_MAJOR_VERSION_CONF', as_major_version)
conf.set('AS_MINOR_VERSION_CONF', as_minor_version)
conf.set('AS_MICRO_VERSION_CONF', as_micro_version)
conf.set('PACKAGE_VERSION', '"@0@"'.format(as_version))

# this refers to the plugin API version
# this is not in any way related to a package or soname version
as_plugin_version = '2'

# libtool versioning - this applies to libpackagekit
#
# See http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 for details
#
# - If interfaces have been changed or added, but binary compatibility
#   has been preserved, change:
#      CURRENT += 1
#      REVISION = 0
#      AGE += 1
# - If binary compatibility has been broken (eg removed or changed
#   interfaces), change:
#      CURRENT += 1
#      REVISION = 0
#      AGE = 0
# - If the interface is the same as the previous version, but bugs are
#   fixed, change:
#      REVISION += 1
lt_current = '8'
lt_revision = '10'
lt_age = '0'
lt_version = '@0@.@1@.@2@'.format(lt_current, lt_age, lt_revision)

glib_ver = '>= 2.45.8'
uuid = dependency('uuid')
glib = dependency('glib-2.0', version : glib_ver)
gmodule = dependency('gmodule-2.0', version : glib_ver)
giounix = dependency('gio-unix-2.0', version : glib_ver)
libarchive = dependency('libarchive')
soup = dependency('libsoup-2.4', version : '>= 2.51.92')
gdk = dependency('gdk-3.0')
gdkpixbuf = dependency('gdk-pixbuf-2.0', version : '>= 2.31.5')
libgcab = dependency('libgcab-1.0', required : false)

# builder (default enabled)
if get_option('enable-builder')
  gtk = dependency('gtk+-3.0')
  gmodule = dependency('gmodule-2.0')
  gcab = find_program('gcab')
  if get_option('enable-rpm')
    rpm = dependency('rpm')
    conf.set('HAVE_RPM', 1)
  endif
  if get_option('enable-alpm')
    alpm = dependency('libalpm')
    conf.set('HAVE_ALPM', 1)
  endif
  if get_option('enable-fonts')
    conf.set('HAVE_FONTS', 1)
    freetype = dependency('freetype2', version : '>= 9.10.0')
    fontconfig = dependency('fontconfig')
  endif
endif
if get_option('enable-dep11')
  yaml = dependency('yaml-0.1')
  conf.set('AS_BUILD_DEP11', 1)
endif

# use gperf for faster string -> enum matching
gperf = find_program('gperf', required : false)
if gperf.found()
  conf.set('HAVE_GPERF', 1)
endif

gnome = import('gnome')

conf.set_quoted('GETTEXT_PACKAGE', meson.project_version())
conf.set_quoted('LOCALEDIR', get_option('localedir'))
configure_file(
  output : 'config.h',
  configuration : conf
)
top_build_incdir = include_directories(meson.current_build_dir())

add_global_arguments('-DAS_COMPILATION', language : 'c')

subdir('libappstream-glib')
subdir('data')

if get_option('enable-builder')
  # depends on data
  subdir('libappstream-builder')
endif

# depends on libappstream-builder
subdir('client')

archiver = find_program('git', required : false)
if archiver.found()
  run_target('dist', 'git', 'archive', '--prefix=appstream-glib/',
             'HEAD',
             '--output', 'appstream-glib-' + as_version + '.tar.gz')

#-version=`./meson.py -v`
#-git archive --prefix meson-${version}/ HEAD | gzip > meson_${version}.tar.gz

else
  message('git-archive-all not found, you will not be able to run `ninja dist`')
  message('Install git-archive-all with pip:')
  message('   $ pip install git-archive-all')
endif