finch/meson.build

Sun, 23 Oct 2022 22:21:46 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Sun, 23 Oct 2022 22:21:46 -0500
changeset 41827
c0c9eeca7d4b
parent 41752
3a7d151716fe
child 41867
5375c1d58c50
permissions
-rw-r--r--

Flatten Meson build files

We use a new enough version that we can take advantage of a few shortcuts so that entire files don't need to be wrapped in a huge if.

Also, passing the dependency object directly to summary prints `YES`+the version, instead of just `YES`. Unfortunately, there's a bug with using a disabler, so some of them can't do that ([yet](https://github.com/mesonbuild/meson/pull/10949)).

Testing Done:
Configured with defaults and configured with
```
$ meson setup \
-Davahi=disabled \
-Dconsoleui=false \
-Dgtkui=false \
-Dintrospection=false \
-Dkwallet=disabled \
-Dlibgadu=disabled \
-Dlibsecret=disabled \
-Dmeanwhile=disabled \
-Dsilc=disabled \
-Dx=false \
-Dzephyr=disabled \
-Dunity-integration=disabled \
-Dgplugin:lua=false \
-Dgplugin:python3=false \
-Dgplugin:vapi=false \
-Ddynamic-prpls=bonjour
```
to disable almost everything.

Reviewed at https://reviews.imfreedom.org/r/1953/

38984
70dbe96fd686 Move ncurses check into libgnt directory.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38783
diff changeset
1 enable_consoleui = false
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
2 if not get_option('consoleui')
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
3 subdir_done()
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
4 endif
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
5
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
6 libgnt_dep = dependency('gnt3',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
7 version : '>= 3.0.0',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
8 fallback : ['libgnt', 'libgnt_dep'])
39360
e7bed293aad5 Switch to external libgnt with fallback.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39207
diff changeset
9
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
10 #######################################################################
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
11 # Check for ncurses and other things used by it
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
12 # FIXME: This should be temporary until libgnt wraps the functionality.
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
13 #######################################################################
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
14 ncurses_available = true
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
15 ncurses_header = 'ncurses.h'
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
16 # Some distros put the headers in ncursesw/, some don't. These are ordered to
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
17 # pick the last available as most-specific version.
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
18 ncursesw_header_paths = ['', 'ncursesw/']
39362
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
19
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
20 ncurses = dependency('ncursesw', required : false)
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
21 if ncurses.found()
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
22 foreach location : ncursesw_header_paths
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
23 f = location / 'ncurses.h'
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
24 if compiler.has_header_symbol(f, 'get_wch',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
25 prefix : '#define _XOPEN_SOURCE_EXTENDED')
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
26 ncurses_header = f
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
27 endif
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
28 endforeach
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
29 else
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
30 ncurses_available = false
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
31 ncurses_inc = []
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
32 ncurses_libs = compiler.find_library('ncursesw', required : false)
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
33 if ncurses_libs.found()
39362
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
34 foreach location : ncursesw_header_paths
40536
c0ea70247280 Switch join_paths and + to /.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40509
diff changeset
35 f = location / 'ncurses.h'
39362
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
36 if compiler.has_header_symbol(f, 'get_wch',
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
37 prefix : '#define _XOPEN_SOURCE_EXTENDED')
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
38 ncurses_available = true
39362
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
39 ncurses_header = f
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
40 endif
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
41 endforeach
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
42
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
43 if ncurses_available
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
44 ncurses = declare_dependency(
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
45 include_directories : ncurses_inc,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
46 dependencies : ncurses_libs
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
47 )
39362
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
48 endif
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
49 endif
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
50 endif
39362
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
51
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
52 if not ncurses_available
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
53 # ncursesw was not found. Look for plain old ncurses
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
54 ncurses = dependency('ncurses', required : false)
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
55 if ncurses.found()
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
56 ncurses_available = true
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
57 else
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
58 ncurses_libs = compiler.find_library('ncurses', required : false)
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
59 ncurses_available = ncurses_libs.found()
39362
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
60 ncurses = declare_dependency(dependencies : ncurses_libs)
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
61 endif
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
62 endif
39362
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39360
diff changeset
63
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
64 if not ncurses_available and host_machine.system() == 'windows'
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
65 # Try pdcurses too.
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
66 ncurses_header = 'curses.h'
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
67 ncurses_libs = compiler.find_library('pdcurses', required : false)
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
68 ncurses_available = compiler.has_header(ncurses_header) and ncurses_libs.found()
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
69 ncurses = declare_dependency(dependencies : ncurses_libs)
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
70 endif
38984
70dbe96fd686 Move ncurses check into libgnt directory.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38783
diff changeset
71
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
72 if not ncurses_available
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
73 error('ncurses could not be found!')
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
74 endif
38984
70dbe96fd686 Move ncurses check into libgnt directory.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38783
diff changeset
75
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
76 ncurses_header = '-DNCURSES_HEADER="@0@"'.format(ncurses_header)
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
77 enable_consoleui = true
38984
70dbe96fd686 Move ncurses check into libgnt directory.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38783
diff changeset
78
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
79
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
80 libfinch_SOURCES = [
41510
630da93b9984 Implement notifications in Finch
Gary Kramlich <grim@reaperworld.com>
parents: 41142
diff changeset
81 'finchnotifications.c',
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
82 'gntaccount.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
83 'gntblist.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
84 'gntconn.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
85 'gntconv.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
86 'gntdebug.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
87 'gntidle.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
88 'gntmedia.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
89 'gntmenuutil.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
90 'gntnotify.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
91 'gntplugin.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
92 'gntprefs.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
93 'gntrequest.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
94 'gntroomlist.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
95 'gntstatus.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
96 'gntui.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
97 'gntxfer.c',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
98 package_revision,
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
99 'libfinch.c'
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
100 ]
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
101
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
102 libfinch_headers = [
41510
630da93b9984 Implement notifications in Finch
Gary Kramlich <grim@reaperworld.com>
parents: 41142
diff changeset
103 'finchnotifications.h',
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
104 'gntaccount.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
105 'gntblist.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
106 'gntconn.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
107 'gntconv.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
108 'gntdebug.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
109 'gntidle.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
110 'gntmedia.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
111 'gntmenuutil.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
112 'gntnotify.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
113 'gntplugin.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
114 'gntprefs.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
115 'gntrequest.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
116 'gntroomlist.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
117 'gntstatus.h',
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
118 'gntui.h',
40508
2ebcb8eb5c01 create a global header for finch
Gary Kramlich <grim@reaperworld.com>
parents: 40051
diff changeset
119 'gntxfer.h',
2ebcb8eb5c01 create a global header for finch
Gary Kramlich <grim@reaperworld.com>
parents: 40051
diff changeset
120 'libfinch.h'
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
121 ]
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
122
40721
909e3433f935 Register Finch enums in the GObject type system.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
123 libfinch_enum_headers = [
909e3433f935 Register Finch enums in the GObject type system.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
124 'gntconv.h',
909e3433f935 Register Finch enums in the GObject type system.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
125 ]
909e3433f935 Register Finch enums in the GObject type system.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
126
909e3433f935 Register Finch enums in the GObject type system.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
127 # the built lists are append to below
909e3433f935 Register Finch enums in the GObject type system.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
128 libfinch_built_sources = []
909e3433f935 Register Finch enums in the GObject type system.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
129 libfinch_built_headers = []
41057
0a4177bbb1c4 Fix up the dependencies for our gir files and ensure ours will work as a subproject
Gary Kramlich <grim@reaperworld.com>
parents: 41056
diff changeset
130 libfinch_generated_sources = []
40721
909e3433f935 Register Finch enums in the GObject type system.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
131
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
132 finch_SOURCES = [
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
133 'finch.c'
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
134 ]
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
135
38487
9e341a7537bd Use windows.compile_resources for Win32 resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38473
diff changeset
136 if IS_WIN32
39996
497dbea26009 Link Finch against winmm.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39798
diff changeset
137 winmm = compiler.find_library('winmm')
38487
9e341a7537bd Use windows.compile_resources for Win32 resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38473
diff changeset
138
38510
863a17674290 Fix creation of Windows resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38506
diff changeset
139 finch_winres = configure_file(
863a17674290 Fix creation of Windows resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38506
diff changeset
140 input : 'finch_winres.rc.in',
863a17674290 Fix creation of Windows resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38506
diff changeset
141 output : 'finch_winres.rc',
863a17674290 Fix creation of Windows resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38506
diff changeset
142 configuration : version_conf)
863a17674290 Fix creation of Windows resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38506
diff changeset
143 finch_SOURCES += windows.compile_resources(finch_winres)
863a17674290 Fix creation of Windows resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38506
diff changeset
144 libfinch_winres = configure_file(
863a17674290 Fix creation of Windows resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38506
diff changeset
145 input : 'libfinch_winres.rc.in',
863a17674290 Fix creation of Windows resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38506
diff changeset
146 output : 'libfinch_winres.rc',
863a17674290 Fix creation of Windows resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38506
diff changeset
147 configuration : version_conf)
863a17674290 Fix creation of Windows resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38506
diff changeset
148 libfinch_SOURCES += windows.compile_resources(libfinch_winres)
39996
497dbea26009 Link Finch against winmm.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39798
diff changeset
149 else
497dbea26009 Link Finch against winmm.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39798
diff changeset
150 winmm = []
38487
9e341a7537bd Use windows.compile_resources for Win32 resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38473
diff changeset
151 endif
9e341a7537bd Use windows.compile_resources for Win32 resource files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38473
diff changeset
152
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
153 libfinch_enums = gnome.mkenums_simple('finchenums',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
154 sources: libfinch_enum_headers)
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
155 libfinch_built_sources += libfinch_enums[0]
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
156 libfinch_built_headers += libfinch_enums[1]
40721
909e3433f935 Register Finch enums in the GObject type system.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
157
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
158 FINCH_H_INCLUDES = []
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
159 foreach header : libfinch_headers + ['finchenums.h']
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
160 FINCH_H_INCLUDES += '#include <finch/@0@>'.format(header)
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
161 endforeach
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
162 finch_h_conf = configuration_data()
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
163 finch_h_conf.set('FINCH_H_INCLUDES', '\n'.join(FINCH_H_INCLUDES))
40508
2ebcb8eb5c01 create a global header for finch
Gary Kramlich <grim@reaperworld.com>
parents: 40051
diff changeset
164
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
165 finch_h = configure_file(input : 'finch.h.in',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
166 output : 'finch.h',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
167 configuration : finch_h_conf,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
168 install : true,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
169 install_dir : get_option('includedir') / 'finch-3')
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
170 libfinch_built_headers += finch_h
40508
2ebcb8eb5c01 create a global header for finch
Gary Kramlich <grim@reaperworld.com>
parents: 40051
diff changeset
171
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
172 install_headers(libfinch_headers, subdir : 'finch-3')
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
173
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
174 libfinch_inc = include_directories('.')
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
175 libfinch = shared_library('finch3',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
176 libfinch_SOURCES + libfinch_built_headers + libfinch_built_sources,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
177 c_args : [
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
178 '-DSTANDALONE',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
179 '-DGNTSEAL_ENABLE',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
180 '-DFINCH_COMPILATION',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
181 ncurses_header,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
182 '-DG_LOG_USE_STRUCTURED',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
183 '-DG_LOG_DOMAIN="Finch"',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
184 ],
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
185 include_directories : [toplevel_inc],
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
186 version : PURPLE_LIB_VERSION,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
187 dependencies : [libpurple_dep, libgnt_dep, ncurses, glib, winmm],
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
188 install : true)
41057
0a4177bbb1c4 Fix up the dependencies for our gir files and ensure ours will work as a subproject
Gary Kramlich <grim@reaperworld.com>
parents: 41056
diff changeset
189
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
190 if enable_introspection
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
191 introspection_sources = libfinch_headers
41057
0a4177bbb1c4 Fix up the dependencies for our gir files and ensure ours will work as a subproject
Gary Kramlich <grim@reaperworld.com>
parents: 41056
diff changeset
192
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
193 libfinch_gir = gnome.generate_gir(libfinch,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
194 sources : introspection_sources,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
195 header : 'finch.h',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
196 includes : ['GLib-2.0', 'GModule-2.0', 'GObject-2.0', libpurple_gir[0], 'Gnt-3.0'],
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
197 namespace : 'Finch',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
198 symbol_prefix : 'finch',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
199 identifier_prefix : 'Finch',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
200 export_packages : 'finch-3',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
201 nsversion : '@0@.@1@'.format(purple_major_version,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
202 purple_minor_version),
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
203 dependencies: [libgnt_dep, gplugin_dep, libpurple_dep],
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
204 install : true,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
205 extra_args : ['-DFINCH_COMPILATION', '--quiet'])
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
206 libfinch_generated_sources += libfinch_gir
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
207 endif
41057
0a4177bbb1c4 Fix up the dependencies for our gir files and ensure ours will work as a subproject
Gary Kramlich <grim@reaperworld.com>
parents: 41056
diff changeset
208
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
209 libfinch_dep = declare_dependency(
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
210 include_directories : [toplevel_inc, libfinch_inc],
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
211 link_with : libfinch,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
212 sources: libfinch_built_headers + libfinch_generated_sources,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
213 dependencies : [libpurple_dep, libgnt_dep, glib])
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
214
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
215 finch = executable('finch3',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
216 finch_SOURCES,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
217 c_args : [
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
218 '-DSTANDALONE',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
219 '-DGNTSEAL_ENABLE',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
220 '-DG_LOG_USE_STRUCTURED',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
221 '-DG_LOG_DOMAIN="Finch"',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
222 ],
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
223 dependencies : [libpurple_dep, libgnt_dep, libfinch_dep],
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
224 install : true)
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
225
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
226 meson.override_dependency('finch-3', libfinch_dep)
41006
a3d6a07889e7 Override the dependencies if we have a new enough meson
Gary Kramlich <grim@reaperworld.com>
parents: 40999
diff changeset
227
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
228 pkgconfig.generate(
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
229 libfinch,
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
230 name : 'Finch',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
231 description : 'Finch is an instant messenger application that uses libpurple for protocol support and ncurses (libgnt) for the UI.',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
232 version : meson.project_version(),
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
233 filebase : 'finch-3',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
234 subdirs : 'finch-3',
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
235 # NOTE: Don't use gnt from pkgconfig, as it might be a subproject.
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
236 requires : ['gnt', libpurple],
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
237 variables : ['plugindir=${libdir}/finch-@0@'.format(purple_major_version)])
38462
995638b4ec74 Add finch to meson build.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
238
41827
c0c9eeca7d4b Flatten Meson build files
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41752
diff changeset
239 subdir('plugins')

mercurial