finch/meson.build

Fri, 19 Aug 2022 01:00:48 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Fri, 19 Aug 2022 01:00:48 -0500
branch
gtk4
changeset 41564
661f4b3b8298
parent 41510
630da93b9984
child 41752
3a7d151716fe
permissions
-rw-r--r--

Fix leaks from GtkFileChooser results

The return value of `gtk_file_chooser_get_file` and `g_file_get_path` are both transfer full, so they must be freed.

Testing Done:
Compiled only.

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

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

mercurial