1# Project name-language-version
2project('com.gitlab.bitseater.meteo', ['vala', 'c'], version: '0.9.9')
3
4# Main libraries
5gnome = import('gnome')
6i18n = import('i18n')
7
8# Add vapi files
9add_project_arguments(
10  [
11    '--vapidir',
12    join_paths(meson.current_source_dir(), 'vapi')
13  ],
14  language: 'vala'
15)
16
17# Add locale support
18conf = configuration_data()
19conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
20conf.set_quoted('PREFIX', get_option('prefix'))
21conf.set_quoted('VERSION', meson.project_version())
22conf.set_quoted('PACKAGE', meson.project_name())
23conf.set_quoted('LOCALE_DIR', join_paths(get_option('prefix'), get_option('localedir')))
24conf.set_quoted('DATADIR', join_paths(get_option('prefix'), get_option('datadir')))
25conf.set_quoted('PKG_DATADIR', join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()))
26
27configure_file(
28  output: 'config.h',
29  configuration: conf
30)
31config_h_dir = include_directories('src')
32
33# Dependencies
34gio_dep = dependency('gio-2.0')
35glib_dep = dependency('glib-2.0')
36gobj_dep = dependency('gobject-2.0')
37gtk_dep = dependency('gtk+-3.0')
38soup_dep = dependency('libsoup-2.4')
39json_dep = dependency('json-glib-1.0')
40webk_dep = dependency('webkit2gtk-4.0')
41ind_opt_dep = dependency('ayatana-appindicator3-0.1' , required : false)
42
43if ind_opt_dep.found()
44  ind_dep = dependency('ayatana-appindicator3-0.1')
45else
46  ind_dep = dependency('appindicator3-0.1')
47endif
48
49dependencies = [
50	gio_dep,
51	glib_dep,
52	gobj_dep,
53	gtk_dep,
54	soup_dep,
55	json_dep,
56	webk_dep,
57	ind_dep
58]
59
60# Arguments C - no gcc warnings
61c_args = [
62  '-include', 'config.h',
63  '-w', '-DGETTEXT_PACKAGE="' + meson.project_name() + '"'
64]
65
66cc = meson.get_compiler('c')
67
68## Compile GResources
69asresources = gnome.compile_resources(
70    'as_resources', 'data/' + meson.project_name() + '.gresource.xml',
71    source_dir: 'data',
72    c_name: 'as'
73)
74
75# Add subfolders
76subdir('data')
77subdir('po')
78
79# Define executable
80executable(
81    meson.project_name(),
82    'src/Constants.vala',
83    'src/MainWindow.vala',
84    'src/Meteo.vala',
85    'src/Utils/GeoLocate.vala',
86    'src/Utils/Iconame.vala',
87    'src/Utils/MapLayer.vala',
88    'src/Utils/OWM_Today.vala',
89    'src/Utils/Utils.vala',
90    'src/Widgets/About.vala',
91    'src/Widgets/City.vala',
92    'src/Widgets/Current.vala',
93    'src/Widgets/Forecast.vala',
94    'src/Widgets/Header.vala',
95    'src/Widgets/MapView.vala',
96    'src/Widgets/Preferences.vala',
97    'src/Widgets/Ticket.vala',
98    'src/Widgets/Today.vala',
99    asresources,
100    c_args: c_args,
101    dependencies: dependencies,
102    vala_args: [
103        meson.source_root() + '/vapi/config.vapi'
104    ],
105    link_args: ['-lm'],
106    install : true
107)
108
109# Add post install script
110meson.add_install_script('meson/post_install.py')
111