1 From c8b862b491cfbbb4f79b24d7cd90e4fb1f37cb9f Mon Sep 17 00:00:00 2001
2 From: Diego Escalante Urrelo <diegoe@gnome.org>
3 Date: Fri, 25 Oct 2019 04:49:15 -0500
4 Subject: [PATCH] WIP: build: Fix link_whole usage for meson 0.52.0
6 Meson 0.52.0 changed how link_whole behaves and in doing so broke our
7 usage of link_whole internally.
9 A quick glance over mesonbuild/backend/ninjabackend.py seems to confirm
10 Christian's suspicion that link_with is what we want for internal use,
11 and link_whole for the final binary.
13 You can see some more references to this and similar issues in the
14 following jhbuild commit:
15 https://gitlab.gnome.org/GNOME/jhbuild/commit/dbe679045ff5982577f22e7af8dc8fdfbd1c6311
17 Fixes: https://gitlab.gnome.org/GNOME/gnome-builder/issues/1057
19 src/libide/code/meson.build | 2 +-
20 src/libide/core/meson.build | 2 +-
21 src/libide/debugger/meson.build | 2 +-
22 src/libide/editor/meson.build | 2 +-
23 src/libide/foundry/meson.build | 2 +-
24 src/libide/greeter/meson.build | 2 +-
25 src/libide/gui/meson.build | 2 +-
26 src/libide/io/meson.build | 2 +-
27 src/libide/lsp/meson.build | 2 +-
28 src/libide/plugins/meson.build | 2 +-
29 src/libide/projects/meson.build | 2 +-
30 src/libide/search/meson.build | 2 +-
31 src/libide/sourceview/meson.build | 2 +-
32 src/libide/terminal/meson.build | 2 +-
33 src/libide/themes/meson.build | 2 +-
34 src/libide/threading/meson.build | 2 +-
35 src/libide/tree/meson.build | 2 +-
36 src/libide/vcs/meson.build | 2 +-
37 src/libide/webkit/meson.build | 2 +-
38 src/meson.build | 26 +++++++++++++++++++++++++-
39 20 files changed, 44 insertions(+), 20 deletions(-)
41 diff --git a/src/libide/code/meson.build b/src/libide/code/meson.build
42 index ddacdc162..1a4fc5d26 100644
43 --- a/src/libide/code/meson.build
44 +++ b/src/libide/code/meson.build
45 @@ -175,7 +175,7 @@ libide_code = static_library('ide-code-' + libide_api_version,
46 libide_code_dep = declare_dependency(
47 sources: libide_code_private_headers + libide_code_generated_headers,
48 dependencies: libide_code_deps,
49 - link_whole: libide_code,
50 + link_with: libide_code,
51 include_directories: include_directories('.'),
54 diff --git a/src/libide/core/meson.build b/src/libide/core/meson.build
55 index 1fa82fad9..bb75cbf26 100644
56 --- a/src/libide/core/meson.build
57 +++ b/src/libide/core/meson.build
58 @@ -117,7 +117,7 @@ libide_core = static_library('ide-core-' + libide_api_version, libide_core_sourc
59 libide_core_dep = declare_dependency(
60 sources: libide_core_private_headers + libide_core_generated_headers,
61 dependencies: libide_core_deps,
62 - link_whole: libide_core,
63 + link_with: libide_core,
64 include_directories: include_directories('.'),
67 diff --git a/src/libide/debugger/meson.build b/src/libide/debugger/meson.build
68 index dffca20ca..b5e72d5c0 100644
69 --- a/src/libide/debugger/meson.build
70 +++ b/src/libide/debugger/meson.build
71 @@ -84,7 +84,7 @@ libide_debugger = static_library('ide-debugger-' + libide_api_version,
72 libide_debugger_dep = declare_dependency(
73 sources: libide_debugger_private_headers + libide_debugger_generated_headers,
74 dependencies: libide_debugger_deps,
75 - link_whole: libide_debugger,
76 + link_with: libide_debugger,
77 include_directories: include_directories('.'),
80 diff --git a/src/libide/editor/meson.build b/src/libide/editor/meson.build
81 index 2838425b7..808ed784f 100644
82 --- a/src/libide/editor/meson.build
83 +++ b/src/libide/editor/meson.build
84 @@ -107,7 +107,7 @@ libide_editor = static_library('ide-editor-' + libide_api_version, libide_editor
86 libide_editor_dep = declare_dependency(
87 dependencies: libide_editor_deps,
88 - link_whole: libide_editor,
89 + link_with: libide_editor,
90 include_directories: include_directories('.'),
91 sources: libide_editor_generated_headers,
93 diff --git a/src/libide/foundry/meson.build b/src/libide/foundry/meson.build
94 index 226397c15..d4878aa11 100644
95 --- a/src/libide/foundry/meson.build
96 +++ b/src/libide/foundry/meson.build
97 @@ -178,7 +178,7 @@ libide_foundry = static_library('ide-foundry-' + libide_api_version,
99 libide_foundry_dep = declare_dependency(
100 dependencies: libide_foundry_deps,
101 - link_whole: libide_foundry,
102 + link_with: libide_foundry,
103 include_directories: include_directories('.'),
104 sources: libide_foundry_generated_headers,
106 diff --git a/src/libide/greeter/meson.build b/src/libide/greeter/meson.build
107 index 3968ca41e..121d498d0 100644
108 --- a/src/libide/greeter/meson.build
109 +++ b/src/libide/greeter/meson.build
110 @@ -83,7 +83,7 @@ libide_greeter = static_library('ide-greeter-' + libide_api_version,
111 libide_greeter_dep = declare_dependency(
112 sources: libide_greeter_private_headers + libide_greeter_generated_headers,
113 dependencies: libide_greeter_deps,
114 - link_whole: libide_greeter,
115 + link_with: libide_greeter,
116 include_directories: include_directories('.'),
119 diff --git a/src/libide/gui/meson.build b/src/libide/gui/meson.build
120 index 9f469d2fa..94311282f 100644
121 --- a/src/libide/gui/meson.build
122 +++ b/src/libide/gui/meson.build
123 @@ -204,7 +204,7 @@ libide_gui = static_library('ide-gui-' + libide_api_version, libide_gui_sources,
124 libide_gui_dep = declare_dependency(
125 sources: libide_gui_private_headers + libide_gui_generated_headers,
126 dependencies: libide_gui_deps,
127 - link_whole: libide_gui,
128 + link_with: libide_gui,
129 include_directories: include_directories('.'),
132 diff --git a/src/libide/io/meson.build b/src/libide/io/meson.build
133 index b5b6f4c68..f48b3bd8d 100644
134 --- a/src/libide/io/meson.build
135 +++ b/src/libide/io/meson.build
136 @@ -63,7 +63,7 @@ libide_io = static_library('ide-io-' + libide_api_version, libide_io_sources,
138 libide_io_dep = declare_dependency(
139 dependencies: [ libgio_dep, libide_core_dep, libide_threading_dep ],
140 - link_whole: libide_io,
141 + link_with: libide_io,
142 include_directories: include_directories('.'),
145 diff --git a/src/libide/lsp/meson.build b/src/libide/lsp/meson.build
146 index 23aba74fa..c8140ca03 100644
147 --- a/src/libide/lsp/meson.build
148 +++ b/src/libide/lsp/meson.build
149 @@ -84,7 +84,7 @@ libide_lsp = static_library('ide-lsp-' + libide_api_version, libide_lsp_sources,
150 libide_lsp_dep = declare_dependency(
151 sources: libide_lsp_private_headers,
152 dependencies: libide_lsp_deps,
153 - link_whole: libide_lsp,
154 + link_with: libide_lsp,
155 include_directories: include_directories('.'),
158 diff --git a/src/libide/plugins/meson.build b/src/libide/plugins/meson.build
159 index a33c528c9..fff599db3 100644
160 --- a/src/libide/plugins/meson.build
161 +++ b/src/libide/plugins/meson.build
162 @@ -51,7 +51,7 @@ libide_plugins = static_library('ide-plugins-' + libide_api_version,
163 libide_plugins_dep = declare_dependency(
164 sources: libide_plugins_private_headers,
165 dependencies: libide_plugins_deps,
166 - link_whole: libide_plugins,
167 + link_with: libide_plugins,
168 include_directories: include_directories('.'),
171 diff --git a/src/libide/projects/meson.build b/src/libide/projects/meson.build
172 index 463ff06bc..3cc9725c6 100644
173 --- a/src/libide/projects/meson.build
174 +++ b/src/libide/projects/meson.build
175 @@ -79,7 +79,7 @@ libide_projects = static_library('ide-projects-' + libide_api_version, libide_pr
176 libide_projects_dep = declare_dependency(
177 sources: libide_projects_private_headers,
178 dependencies: libide_projects_deps,
179 - link_whole: libide_projects,
180 + link_with: libide_projects,
181 include_directories: include_directories('.'),
184 diff --git a/src/libide/search/meson.build b/src/libide/search/meson.build
185 index e5b3b43ab..cf73aa91d 100644
186 --- a/src/libide/search/meson.build
187 +++ b/src/libide/search/meson.build
188 @@ -51,7 +51,7 @@ libide_search = static_library('ide-search-' + libide_api_version, libide_search
190 libide_search_dep = declare_dependency(
191 dependencies: libide_search_deps,
192 - link_whole: libide_search,
193 + link_with: libide_search,
194 include_directories: include_directories('.'),
197 diff --git a/src/libide/sourceview/meson.build b/src/libide/sourceview/meson.build
198 index c4ba12d1f..99641298b 100644
199 --- a/src/libide/sourceview/meson.build
200 +++ b/src/libide/sourceview/meson.build
201 @@ -158,7 +158,7 @@ libide_sourceview = static_library('ide-sourceview-' + libide_api_version,
202 libide_sourceview_dep = declare_dependency(
203 sources: libide_sourceview_private_headers + libide_sourceview_generated_headers,
204 dependencies: libide_sourceview_deps,
205 - link_whole: libide_sourceview,
206 + link_with: libide_sourceview,
207 include_directories: include_directories('.'),
210 diff --git a/src/libide/terminal/meson.build b/src/libide/terminal/meson.build
211 index 1d7c9f727..6affcae14 100644
212 --- a/src/libide/terminal/meson.build
213 +++ b/src/libide/terminal/meson.build
214 @@ -93,7 +93,7 @@ libide_terminal = static_library('ide-terminal-' + libide_api_version,
215 libide_terminal_dep = declare_dependency(
216 sources: libide_terminal_generated_headers,
217 dependencies: libide_terminal_deps,
218 - link_whole: libide_terminal,
219 + link_with: libide_terminal,
220 include_directories: include_directories('.'),
223 diff --git a/src/libide/themes/meson.build b/src/libide/themes/meson.build
224 index 9d6c8e247..d883a4b86 100644
225 --- a/src/libide/themes/meson.build
226 +++ b/src/libide/themes/meson.build
227 @@ -46,7 +46,7 @@ libide_themes = static_library('ide-themes-' + libide_api_version,
228 libide_themes_dep = declare_dependency(
229 sources: libide_themes_resources[1],
230 dependencies: libide_themes_deps,
231 - link_whole: libide_themes,
232 + link_with: libide_themes,
233 include_directories: include_directories('.'),
236 diff --git a/src/libide/threading/meson.build b/src/libide/threading/meson.build
237 index d38ddfb64..d628be2ff 100644
238 --- a/src/libide/threading/meson.build
239 +++ b/src/libide/threading/meson.build
240 @@ -66,7 +66,7 @@ libide_threading = static_library('ide-threading-' + libide_api_version, libide_
241 libide_threading_dep = declare_dependency(
242 sources: libide_threading_private_headers,
243 dependencies: libide_threading_deps,
244 - link_whole: libide_threading,
245 + link_with: libide_threading,
246 include_directories: include_directories('.'),
249 diff --git a/src/libide/tree/meson.build b/src/libide/tree/meson.build
250 index 7b9922828..5a591106c 100644
251 --- a/src/libide/tree/meson.build
252 +++ b/src/libide/tree/meson.build
253 @@ -61,7 +61,7 @@ libide_tree = static_library('ide-tree-' + libide_api_version, libide_tree_sourc
254 libide_tree_dep = declare_dependency(
255 sources: libide_tree_private_headers,
256 dependencies: libide_tree_deps,
257 - link_whole: libide_tree,
258 + link_with: libide_tree,
259 include_directories: include_directories('.'),
262 diff --git a/src/libide/vcs/meson.build b/src/libide/vcs/meson.build
263 index 6b0e157c4..c762afb64 100644
264 --- a/src/libide/vcs/meson.build
265 +++ b/src/libide/vcs/meson.build
266 @@ -84,7 +84,7 @@ libide_vcs = static_library('ide-vcs-' + libide_api_version,
268 libide_vcs_dep = declare_dependency(
269 dependencies: libide_vcs_deps,
270 - link_whole: libide_vcs,
271 + link_with: libide_vcs,
272 include_directories: include_directories('.'),
273 sources: libide_vcs_generated_headers,
275 diff --git a/src/libide/webkit/meson.build b/src/libide/webkit/meson.build
276 index e1767ae46..fce477b36 100644
277 --- a/src/libide/webkit/meson.build
278 +++ b/src/libide/webkit/meson.build
279 @@ -39,7 +39,7 @@ libide_webkit = static_library('ide-webkit-' + libide_api_version, libide_webkit
281 libide_webkit_dep = declare_dependency(
282 dependencies: libide_webkit_deps,
283 - link_whole: libide_webkit,
284 + link_with: libide_webkit,
285 include_directories: include_directories('.'),
286 sources: libide_webkit_generated_headers,
288 diff --git a/src/meson.build b/src/meson.build
289 index 3eb9ba535..113a142ad 100644
290 --- a/src/meson.build
291 +++ b/src/meson.build
292 @@ -48,6 +48,30 @@ gnome_builder_deps = [
296 +gnome_builder_static = [
320 if libsysprof_capture.found()
321 gnome_builder_deps += libsysprof_capture
323 @@ -77,7 +101,7 @@ gnome_builder = executable('gnome-builder', 'main.c', 'bug-buddy.c',
324 c_args: libide_args + exe_c_args + release_args,
325 link_args: exe_link_args,
327 - link_whole: plugins,
328 + link_whole: gnome_builder_static,
329 install_rpath: pkglibdir_abs,
330 dependencies: gnome_builder_deps,