Skip to content

Commit df09c32

Browse files
committed
[gegl] Add native msvc support
1 parent 9d23657 commit df09c32

9 files changed

Lines changed: 994 additions & 4 deletions

File tree

ports/gegl/gegl-msvc-upstream.patch

Lines changed: 591 additions & 0 deletions
Large diffs are not rendered by default.

ports/gegl/portfile.cmake

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ vcpkg_extract_source_archive(
1111
ARCHIVE "${ARCHIVE}"
1212
PATCHES
1313
disable_tests.patch
14+
gegl-msvc-upstream.patch
15+
use-plugins-dir.patch
1416
remove_execinfo_support.patch
1517
remove-consistency-check.patch
1618
)
@@ -69,6 +71,11 @@ vcpkg_copy_pdbs()
6971

7072
vcpkg_fixup_pkgconfig()
7173

74+
vcpkg_copy_tools(
75+
TOOL_NAMES gegl gegl-imgcmp
76+
AUTO_CLEAN
77+
)
78+
7279
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
7380

7481
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")

ports/gegl/use-plugins-dir.patch

Lines changed: 373 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,373 @@
1+
diff --git a/gegl/gegl-init.c b/gegl/gegl-init.c
2+
index 9f47f88697..4c2d531c67 100644
3+
--- a/gegl/gegl-init.c
4+
+++ b/gegl/gegl-init.c
5+
@@ -745,7 +745,7 @@ gegl_get_default_module_paths(void)
6+
}
7+
#elif defined(G_OS_WIN32)
8+
prefix = g_win32_get_package_installation_directory_of_module (hLibGeglModule);
9+
- module_path = g_build_filename (prefix, "lib", GEGL_LIBRARY, NULL);
10+
+ module_path = g_build_filename (prefix, "plugins", GEGL_LIBRARY, NULL);
11+
g_free(prefix);
12+
#else
13+
#if defined(ENABLE_RELOCATABLE)
14+
diff --git a/meson.build b/meson.build
15+
index ec2b4aab93..50099afc81 100644
16+
--- a/meson.build
17+
+++ b/meson.build
18+
@@ -401,6 +401,8 @@ if cc.get_id() == 'msvc'
19+
cflags_common += ['/D__restrict__=__restrict']
20+
endif
21+
22+
+gegl_plugins_dir = 'plugins' / api_name
23+
+
24+
if buildtype == 'debugoptimized' or buildtype == 'release'
25+
cflags_common += cc.get_supported_arguments(['-ftree-vectorize'])
26+
endif
27+
@@ -637,7 +642,7 @@ pkgconfig.generate(gegl_lib,
28+
name: 'GEGL',
29+
description: 'Generic Graphics Library',
30+
version: meson.project_version(),
31+
- variables: 'pluginsdir=' + '${prefix}' / get_option('libdir') / api_name,
32+
+ variables: 'pluginsdir=' + '${prefix}' / gegl_plugins_dir,
33+
# gegl_npd_lib API is actually used by software, such as GIMP. It must
34+
# not be removed, even though adding it like this is not so proper. If
35+
# one wants to clean up this dependency, a proper port must be done
36+
diff --git a/operations/common/meson.build b/operations/common/meson.build
37+
index 2924984409..82df99e642 100644
38+
--- a/operations/common/meson.build
39+
+++ b/operations/common/meson.build
40+
@@ -152,7 +152,7 @@ gegl_common = shared_library('gegl-common',
41+
],
42+
name_prefix: '',
43+
install: true,
44+
- install_dir: get_option('libdir') / api_name,
45+
+ install_dir: gegl_plugins_dir,
46+
)
47+
48+
gegl_operations += gegl_common
49+
@@ -167,7 +167,7 @@ if host_cpu_family == 'x86_64'
50+
c_args: [ '-DGEGL_OP_BUNDLE' ] + x86_64_v2_flags,
51+
name_prefix: '',
52+
install: true,
53+
- install_dir: get_option('libdir') / api_name,
54+
+ install_dir: gegl_plugins_dir,
55+
)
56+
gegl_operations += gegl_common_x86_64_v2
57+
58+
@@ -179,7 +179,7 @@ if host_cpu_family == 'x86_64'
59+
c_args: [ '-DGEGL_OP_BUNDLE' ] + x86_64_v3_flags,
60+
name_prefix: '',
61+
install: true,
62+
- install_dir: get_option('libdir') / api_name,
63+
+ install_dir: gegl_plugins_dir,
64+
)
65+
66+
gegl_operations += gegl_common_x86_64_v3
67+
@@ -193,7 +193,7 @@ elif host_cpu_family == 'arm'
68+
c_args: [ '-DGEGL_OP_BUNDLE' ] + arm_neon_flags,
69+
name_prefix: '',
70+
install: true,
71+
- install_dir: get_option('libdir') / api_name,
72+
+ install_dir: gegl_plugins_dir,
73+
)
74+
gegl_operations += gegl_common_arm_neon
75+
endif
76+
diff --git a/operations/common-cxx/meson.build b/operations/common-cxx/meson.build
77+
index 146967faee..0b7db2b7cb 100644
78+
--- a/operations/common-cxx/meson.build
79+
+++ b/operations/common-cxx/meson.build
80+
@@ -35,7 +35,7 @@ gegl_common_cxx = shared_library('gegl-common-cxx',
81+
cpp_args: [ '-DGEGL_OP_BUNDLE', ],
82+
name_prefix: '',
83+
install: true,
84+
- install_dir: get_option('libdir') / api_name,
85+
+ install_dir: gegl_plugins_dir,
86+
)
87+
88+
gegl_operations += gegl_common_cxx
89+
@@ -58,7 +58,7 @@ if host_cpu_family == 'x86_64'
90+
cpp_args: [ '-DGEGL_OP_BUNDLE' ] + x86_64_v2_flags,
91+
name_prefix: '',
92+
install: true,
93+
- install_dir: get_option('libdir') / api_name,
94+
+ install_dir: gegl_plugins_dir,
95+
)
96+
gegl_operations += gegl_common_cxx_x86_64_v2
97+
98+
@@ -78,7 +78,7 @@ if host_cpu_family == 'x86_64'
99+
cpp_args: [ '-DGEGL_OP_BUNDLE' ] + x86_64_v3_flags,
100+
name_prefix: '',
101+
install: true,
102+
- install_dir: get_option('libdir') / api_name,
103+
+ install_dir: gegl_plugins_dir,
104+
)
105+
gegl_operations += gegl_common_cxx_x86_64_v3
106+
107+
@@ -100,7 +100,7 @@ elif host_cpu_family == 'arm'
108+
cpp_args: [ '-DGEGL_OP_BUNDLE' ] + arm_neon_flags,
109+
name_prefix: '',
110+
install: true,
111+
- install_dir: get_option('libdir') / api_name,
112+
+ install_dir: gegl_plugins_dir,
113+
)
114+
gegl_operations += gegl_common_cxx_arm_neon
115+
116+
diff --git a/operations/common-gpl3+/meson.build b/operations/common-gpl3+/meson.build
117+
index 0513fb44de..18956e1616 100644
118+
--- a/operations/common-gpl3+/meson.build
119+
+++ b/operations/common-gpl3+/meson.build
120+
@@ -78,7 +78,7 @@ gegl_common_gpl3 = shared_library('gegl-common-gpl3',
121+
],
122+
name_prefix: '',
123+
install: true,
124+
- install_dir: get_option('libdir') / api_name,
125+
+ install_dir: gegl_plugins_dir,
126+
)
127+
128+
gegl_operations += gegl_common_gpl3
129+
@@ -101,7 +101,7 @@ if host_cpu_family == 'x86_64'
130+
c_args: [ '-DGEGL_OP_BUNDLE' ] + x86_64_v2_flags,
131+
name_prefix: '',
132+
install: true,
133+
- install_dir: get_option('libdir') / api_name,
134+
+ install_dir: gegl_plugins_dir,
135+
)
136+
gegl_operations += gegl_common_gpl3_x86_64_v2
137+
138+
@@ -121,7 +121,7 @@ if host_cpu_family == 'x86_64'
139+
c_args: [ '-DGEGL_OP_BUNDLE' ] + x86_64_v3_flags,
140+
name_prefix: '',
141+
install: true,
142+
- install_dir: get_option('libdir') / api_name,
143+
+ install_dir: gegl_plugins_dir,
144+
)
145+
gegl_operations += gegl_common_gpl3_x86_64_v3
146+
147+
@@ -143,7 +143,7 @@ elif host_cpu_family == 'arm'
148+
c_args: [ '-DGEGL_OP_BUNDLE' ] + arm_neon_flags,
149+
name_prefix: '',
150+
install: true,
151+
- install_dir: get_option('libdir') / api_name,
152+
+ install_dir: gegl_plugins_dir,
153+
)
154+
gegl_operations += gegl_common_gpl3_arm_neon
155+
156+
diff --git a/operations/core/meson.build b/operations/core/meson.build
157+
index ca9e72ccb1..0729f24b0b 100644
158+
--- a/operations/core/meson.build
159+
+++ b/operations/core/meson.build
160+
@@ -37,7 +37,7 @@ gegl_core = shared_library('gegl-core',
161+
],
162+
name_prefix: '',
163+
install: true,
164+
- install_dir: get_option('libdir') / api_name,
165+
+ install_dir: gegl_plugins_dir,
166+
)
167+
168+
gegl_operations += gegl_core
169+
diff --git a/operations/external/meson.build b/operations/external/meson.build
170+
index 5be962b7c9..7bcb31643c 100644
171+
--- a/operations/external/meson.build
172+
+++ b/operations/external/meson.build
173+
@@ -131,6 +131,6 @@ foreach operation : operations
174+
link_with: [ gegl_lib, ],
175+
name_prefix: '',
176+
install: true,
177+
- install_dir: get_option('libdir') / api_name,
178+
+ install_dir: gegl_plugins_dir,
179+
)
180+
endforeach
181+
diff --git a/operations/generated/meson.build b/operations/generated/meson.build
182+
index b2d0e82d26..66f73501db 100644
183+
--- a/operations/generated/meson.build
184+
+++ b/operations/generated/meson.build
185+
@@ -52,7 +52,7 @@ gegl_generated = shared_library('gegl-generated',
186+
],
187+
name_prefix: '',
188+
install: true,
189+
- install_dir: get_option('libdir') / api_name,
190+
+ install_dir: gegl_plugins_dir,
191+
)
192+
193+
gegl_operations += gegl_generated
194+
@@ -67,7 +67,7 @@ if host_cpu_family == 'x86_64'
195+
c_args: [ '-DGEGL_OP_BUNDLE' ] + x86_64_v2_flags,
196+
name_prefix: '',
197+
install: true,
198+
- install_dir: get_option('libdir') / api_name,
199+
+ install_dir: gegl_plugins_dir,
200+
)
201+
gegl_operations += gegl_generated_x86_64_v2
202+
203+
@@ -79,7 +79,7 @@ if host_cpu_family == 'x86_64'
204+
c_args: [ '-DGEGL_OP_BUNDLE' ] + x86_64_v3_flags,
205+
name_prefix: '',
206+
install: true,
207+
- install_dir: get_option('libdir') / api_name,
208+
+ install_dir: gegl_plugins_dir,
209+
)
210+
gegl_operations += gegl_generated_x86_64_v3
211+
212+
@@ -93,7 +93,7 @@ elif host_cpu_family == 'arm'
213+
c_args: [ '-DGEGL_OP_BUNDLE' ] + arm_neon_flags,
214+
name_prefix: '',
215+
install: true,
216+
- install_dir: get_option('libdir') / api_name,
217+
+ install_dir: gegl_plugins_dir,
218+
)
219+
gegl_operations += gegl_generated_arm_neon
220+
221+
diff --git a/operations/json/meson.build b/operations/json/meson.build
222+
index feab852ba4..ccccb956a5 100644
223+
--- a/operations/json/meson.build
224+
+++ b/operations/json/meson.build
225+
@@ -11,6 +11,6 @@ foreach _file : json_operations
226+
output: _file,
227+
copy: true,
228+
install: true,
229+
- install_dir: get_option('libdir') / api_name,
230+
+ install_dir: gegl_plugins_dir,
231+
)
232+
endforeach
233+
diff --git a/operations/seamless-clone/meson.build b/operations/seamless-clone/meson.build
234+
index 47562a2e28..708ad1e28a 100644
235+
--- a/operations/seamless-clone/meson.build
236+
+++ b/operations/seamless-clone/meson.build
237+
@@ -21,6 +21,6 @@ foreach lib : seamless_clone_libs
238+
],
239+
name_prefix: '',
240+
install: true,
241+
- install_dir: get_option('libdir') / api_name,
242+
+ install_dir: gegl_plugins_dir,
243+
)
244+
endforeach
245+
diff --git a/operations/transform/meson.build b/operations/transform/meson.build
246+
index 110b28962c..33e2c0a635 100644
247+
--- a/operations/transform/meson.build
248+
+++ b/operations/transform/meson.build
249+
@@ -29,7 +29,7 @@ gegl_transformops = shared_library('transformops',
250+
],
251+
name_prefix: '',
252+
install: true,
253+
- install_dir: get_option('libdir') / api_name,
254+
+ install_dir: gegl_plugins_dir,
255+
)
256+
257+
gegl_operations += gegl_transformops
258+
@@ -44,7 +44,7 @@ if host_cpu_family == 'x86_64'
259+
c_args: x86_64_v2_flags,
260+
name_prefix: '',
261+
install: true,
262+
- install_dir: get_option('libdir') / api_name,
263+
+ install_dir: gegl_plugins_dir,
264+
)
265+
gegl_operations += gegl_transformops_x86_64_v2
266+
267+
@@ -56,7 +56,7 @@ if host_cpu_family == 'x86_64'
268+
c_args: x86_64_v3_flags,
269+
name_prefix: '',
270+
install: true,
271+
- install_dir: get_option('libdir') / api_name,
272+
+ install_dir: gegl_plugins_dir,
273+
)
274+
gegl_operations += gegl_transformops_x86_64_v3
275+
276+
@@ -70,7 +70,7 @@ elif host_cpu_family == 'arm'
277+
c_args: arm_neon_flags,
278+
name_prefix: '',
279+
install: true,
280+
- install_dir: get_option('libdir') / api_name,
281+
+ install_dir: gegl_plugins_dir,
282+
)
283+
gegl_operations += gegl_transformops_arm_neon
284+
285+
diff --git a/operations/workshop/external/meson.build b/operations/workshop/external/meson.build
286+
index a1cf5450bb..f82d785df0 100644
287+
--- a/operations/workshop/external/meson.build
288+
+++ b/operations/workshop/external/meson.build
289+
@@ -14,7 +14,7 @@ gegl_operations += shared_library('voroni_diagram',
290+
],
291+
name_prefix: '',
292+
install: true,
293+
- install_dir: get_option('libdir') / api_name,
294+
+ install_dir: gegl_plugins_dir,
295+
)
296+
297+
298+
@@ -34,7 +34,7 @@ if lua.found()
299+
],
300+
name_prefix: '',
301+
install: true,
302+
- install_dir: get_option('libdir') / api_name,
303+
+ install_dir: gegl_plugins_dir,
304+
)
305+
endif
306+
307+
@@ -54,7 +54,7 @@ if lensfun.found()
308+
],
309+
name_prefix: '',
310+
install: true,
311+
- install_dir: get_option('libdir') / api_name,
312+
+ install_dir: gegl_plugins_dir,
313+
)
314+
endif
315+
316+
@@ -74,7 +74,7 @@ if cairo.found()
317+
],
318+
name_prefix: '',
319+
install: true,
320+
- install_dir: get_option('libdir') / api_name,
321+
+ install_dir: gegl_plugins_dir,
322+
)
323+
endif
324+
325+
@@ -94,7 +94,7 @@ if libv4l2.found()
326+
],
327+
name_prefix: '',
328+
install: true,
329+
- install_dir: get_option('libdir') / api_name,
330+
+ install_dir: gegl_plugins_dir,
331+
)
332+
endif
333+
334+
@@ -114,7 +114,7 @@ if maxflow.found()
335+
],
336+
name_prefix: '',
337+
install: true,
338+
- install_dir: get_option('libdir') / api_name,
339+
+ install_dir: gegl_plugins_dir,
340+
)
341+
endif
342+
343+
@@ -125,6 +125,6 @@ if build_ctx
344+
link_with:[gegl_lib],
345+
name_prefix:'',
346+
install:true,
347+
- install_dir: get_option('libdir') / api_name,
348+
+ install_dir: gegl_plugins_dir,
349+
)
350+
endif
351+
diff --git a/operations/workshop/generated/meson.build b/operations/workshop/generated/meson.build
352+
index 318931d464..ffb3e942a7 100644
353+
--- a/operations/workshop/generated/meson.build
354+
+++ b/operations/workshop/generated/meson.build
355+
@@ -22,6 +22,6 @@ foreach lib : libraries
356+
],
357+
name_prefix: '',
358+
install: true,
359+
- install_dir: get_option('libdir') / api_name,
360+
+ install_dir: gegl_plugins_dir,
361+
)
362+
endforeach
363+
diff --git a/operations/workshop/meson.build b/operations/workshop/meson.build
364+
index 6bb3046fe6..9c8594dc97 100644
365+
--- a/operations/workshop/meson.build
366+
+++ b/operations/workshop/meson.build
367+
@@ -46,5 +46,5 @@ gegl_workshop = shared_library('gegl-workshop',
368+
],
369+
name_prefix: '',
370+
install: true,
371+
- install_dir: get_option('libdir') / api_name,
372+
+ install_dir: gegl_plugins_dir,
373+
)

0 commit comments

Comments
 (0)