Skip to content

Commit

Permalink
[cairo] Fix static cairo builds (#18103)
Browse files Browse the repository at this point in the history
* fix static cairo builds

* remove outdated patch

* version stuff

* try getting cairo back into static CI builds
  • Loading branch information
Neumann-A committed Jul 15, 2021
1 parent ab8067a commit 226990b
Show file tree
Hide file tree
Showing 7 changed files with 104 additions and 15 deletions.
92 changes: 92 additions & 0 deletions ports/cairo/cairo_static_fix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
diff --git a/util/cairo-fdr/meson.build b/util/cairo-fdr/meson.build
index 3cb66c678..b12b90036 100644
--- a/util/cairo-fdr/meson.build
+++ b/util/cairo-fdr/meson.build
@@ -4,7 +4,7 @@ cairo_fdr_sources = [

libcairofdr = library('cairo-fdr', cairo_fdr_sources,
include_directories: [incbase, incsrc],
- c_args: ['-DHAVE_CONFIG_H'],
+ c_args: ['-DHAVE_CONFIG_H'] + static_definition,
dependencies: deps,
install: true,
install_dir: join_paths(get_option('prefix'), get_option('libdir'), 'cairo'),
diff --git a/util/cairo-script/meson.build b/util/cairo-script/meson.build
index a782ec63f..7e21f6c04 100644
--- a/util/cairo-script/meson.build
+++ b/util/cairo-script/meson.build
@@ -26,7 +26,7 @@ csi_trace_sources = [

libcairoscript = library('cairo-script-interpreter',
cairoscript_interpreter_sources,
- c_args: ['-DHAVE_CONFIG_H'],
+ c_args: ['-DHAVE_CONFIG_H'] + static_definition,
include_directories: [incbase, incsrc],
dependencies: deps,
link_with: [libcairo],
@@ -41,14 +41,14 @@ libcairoscript_dep = declare_dependency(link_with: libcairoscript,
include_directories: [incbase, inccairoscript])

csi_replay_exe = executable('csi-replay', csi_replay_sources,
- c_args: ['-DHAVE_CONFIG_H'],
+ c_args: ['-DHAVE_CONFIG_H'] + static_definition,
include_directories: [incbase, incsrc],
link_with: [libcairo, libcairoscript],
dependencies: deps,
)

csi_exec_exe = executable('csi-exec', csi_exec_sources,
- c_args: ['-DHAVE_CONFIG_H'],
+ c_args: ['-DHAVE_CONFIG_H'] + static_definition,
include_directories: [incbase, incsrc],
link_with: [libcairo, libcairoscript],
dependencies: deps,
@@ -56,7 +56,7 @@ csi_exec_exe = executable('csi-exec', csi_exec_sources,

if feature_conf.get('CAIRO_HAS_SCRIPT_SURFACE', 0) == 1 and conf.get('HAVE_LIBGEN_H', 0) == 1
csi_trace_exe = executable('csi-trace', csi_trace_sources,
- c_args: ['-DHAVE_CONFIG_H'],
+ c_args: ['-DHAVE_CONFIG_H'] + static_definition,
include_directories: [incbase, incsrc],
link_with: [libcairo, libcairoscript],
dependencies: deps,
diff --git a/util/cairo-trace/meson.build b/util/cairo-trace/meson.build
index e836f98cf..76ee372a2 100644
--- a/util/cairo-trace/meson.build
+++ b/util/cairo-trace/meson.build
@@ -12,7 +12,7 @@ libcairotrace = library('cairo-trace', cairo_trace_sources,
include_directories: [incbase, incsrc],
dependencies: deps,
link_args: extra_link_args,
- c_args: ['-DSHARED_LIB_EXT="@0@"'.format(shared_lib_ext), '-DHAVE_CONFIG_H'] + pthread_c_args,
+ c_args: ['-DSHARED_LIB_EXT="@0@"'.format(shared_lib_ext), '-DHAVE_CONFIG_H'] + pthread_c_args + static_definition,
install: true,
install_dir: join_paths(get_option('prefix'), get_option('libdir'), 'cairo'),
)
diff --git a/util/meson.build b/util/meson.build
index 016955cea..a90363115 100644
--- a/util/meson.build
+++ b/util/meson.build
@@ -2,6 +2,14 @@ subdir('cairo-missing')

cairo_utils = []

+static_definition=[]
+if host_machine.system() == 'windows'
+ lib_default = get_option('default_library')
+ if lib_default == 'static'
+ static_definition=['-DCAIRO_WIN32_STATIC_BUILD']
+ endif
+endif
+
if feature_conf.get('CAIRO_HAS_GOBJECT_FUNCTIONS', 0) == 1
subdir('cairo-gobject')
endif
@@ -55,6 +63,7 @@ foreach util : cairo_utils
include_directories: [incbase, incsrc, inccairoscript],
dependencies: deps + util_deps,
link_with: [libcairo, libcairoscript],
+ c_args: static_definition
)
endforeach

1 change: 1 addition & 0 deletions ports/cairo/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ vcpkg_from_gitlab(
SHA512 2c516ad3ffe56cf646b2435d6ef3cf25e8c05aeb13d95dd18a7d0510d134d9990cba1b376063352ff99483cfc4e5d2af849afd2f9538f9136f22d44d34be362c
HEAD_REF master
PATCHES 0001-meson-fix-macOS-build-and-add-macOS-ci.patch
cairo_static_fix.patch
)

if("fontconfig" IN_LIST FEATURES)
Expand Down
2 changes: 1 addition & 1 deletion ports/cairo/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "cairo",
"version": "1.17.4",
"port-version": 1,
"port-version": 2,
"description": "Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.",
"homepage": "https://cairographics.org",
"dependencies": [
Expand Down
13 changes: 0 additions & 13 deletions ports/cairo/win_dll_def.patch

This file was deleted.

4 changes: 4 additions & 0 deletions scripts/ci.baseline.txt
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,8 @@ graphqlparser:arm-uwp=fail
graphqlparser:x64-uwp=fail
gsl:arm-uwp=fail
gsl:x64-uwp=fail
gtk:x64-windows-static=fail
gtk:x64-windows-static-md=fail
gts:x64-osx=fail
guetzli:x64-osx=fail
h3:arm64-windows=fail
Expand Down Expand Up @@ -1194,6 +1196,8 @@ orocos-kdl:arm-uwp=fail
orocos-kdl:x64-uwp=fail
paho-mqtt:arm-uwp=fail
paho-mqtt:x64-uwp=fail
pango:x64-windows-static=fail
pango:x64-windows-static-md=fail
pangomm:arm64-windows=fail
pdal:x64-linux=fail
pdal:x64-osx=fail
Expand Down
2 changes: 1 addition & 1 deletion versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -1110,7 +1110,7 @@
},
"cairo": {
"baseline": "1.17.4",
"port-version": 1
"port-version": 2
},
"cairomm": {
"baseline": "1.16.0",
Expand Down
5 changes: 5 additions & 0 deletions versions/c-/cairo.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "96aa6adbfefae2d4f2e3d79e012876b1d4a40b93",
"version": "1.17.4",
"port-version": 2
},
{
"git-tree": "a2fa5a9972a7b796f56fdda01f644b5c40d93580",
"version": "1.17.4",
Expand Down

0 comments on commit 226990b

Please sign in to comment.