mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-02 08:28:01 +02:00
Merge branch 'more-meson' into 'master'
Add more of the auto-foo build to meson See merge request cairo/cairo!183
This commit is contained in:
commit
43a48fb6a5
6 changed files with 186 additions and 6 deletions
|
|
@ -900,6 +900,7 @@ subdir('util')
|
|||
|
||||
if not get_option('tests').disabled() and feature_conf.get('CAIRO_HAS_PNG_FUNCTIONS', 0) == 1
|
||||
subdir('test')
|
||||
subdir('perf')
|
||||
endif
|
||||
|
||||
configure_file(output: 'config.h', configuration: conf)
|
||||
|
|
|
|||
93
perf/meson.build
Normal file
93
perf/meson.build
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
incmicro = include_directories('.')
|
||||
|
||||
subdir('micro')
|
||||
|
||||
gtk2_dep = dependency('gtk+-2.0', required: false)
|
||||
|
||||
libcairoperf = static_library('cairoperf',
|
||||
[
|
||||
'cairo-perf.c',
|
||||
'cairo-perf-report.c',
|
||||
'cairo-stats.c',
|
||||
'../src/cairo-time.c',
|
||||
'cairo-perf.h',
|
||||
'cairo-stats.h',
|
||||
],
|
||||
include_directories: [incbase, incsrc, incboilerplate, inccairomissing],
|
||||
link_with: [libcairomissing, libcairoboilerplate],
|
||||
dependencies: [pixman_dep],
|
||||
)
|
||||
|
||||
|
||||
analyse_trace = executable('cairo-analyse-trace',
|
||||
[
|
||||
'cairo-analyse-trace.c',
|
||||
'../src/cairo-error.c',
|
||||
],
|
||||
include_directories: [incbase, incsrc, incboilerplate, inccairoscript, inccairomissing],
|
||||
link_with: [libcairo, libcairoboilerplate, libcairoscript, libcairomissing],
|
||||
dependencies: [pixman_dep, fontconfig_dep],
|
||||
)
|
||||
|
||||
perf_trace = executable('cairo-perf-trace',
|
||||
[
|
||||
'cairo-perf-trace.c',
|
||||
'../src/cairo-error.c',
|
||||
'../src/cairo-hash.c',
|
||||
],
|
||||
include_directories: [incbase, incsrc, incboilerplate, inccairoscript, inccairomissing],
|
||||
link_with: [libcairoperf, libcairoscript],
|
||||
dependencies: [pixman_dep, fontconfig_dep],
|
||||
)
|
||||
|
||||
micro = executable('cairo-perf-micro',
|
||||
[ 'cairo-perf-micro.c', ],
|
||||
include_directories: [incbase, incsrc, incboilerplate, inccairomissing],
|
||||
link_with: [libcairoperf, libcairoperfmicro],
|
||||
dependencies: [fontconfig_dep],
|
||||
)
|
||||
|
||||
diff_files = executable('cairo-perf-diff-files',
|
||||
[
|
||||
'cairo-perf-diff-files.c',
|
||||
],
|
||||
include_directories: [incbase, incsrc, incboilerplate],
|
||||
link_with: [libcairoperf],
|
||||
)
|
||||
|
||||
print = executable('cairo-perf-print',
|
||||
[
|
||||
'cairo-perf-print.c',
|
||||
],
|
||||
include_directories: [incbase, incsrc, incboilerplate],
|
||||
link_with: [libcairoperf],
|
||||
)
|
||||
|
||||
chart = executable('cairo-perf-chart',
|
||||
[
|
||||
'cairo-perf-chart.c',
|
||||
],
|
||||
include_directories: [incbase, incsrc, incboilerplate],
|
||||
link_with: [libcairoperf],
|
||||
)
|
||||
|
||||
compare_backends = executable('cairo-perf-compare-backends',
|
||||
[
|
||||
'cairo-perf-compare-backends.c',
|
||||
],
|
||||
include_directories: [incbase, incsrc, incboilerplate],
|
||||
link_with: [libcairoperf],
|
||||
)
|
||||
|
||||
if gtk2_dep.found()
|
||||
graph_files = executable('cairo-perf-graph',
|
||||
[
|
||||
'cairo-perf-graph-files.c',
|
||||
'cairo-perf-graph-widget.c',
|
||||
'cairo-perf-graph.h',
|
||||
],
|
||||
include_directories: [incbase, incsrc, incboilerplate],
|
||||
link_with: [libcairo, libcairoboilerplate, libcairoperf],
|
||||
dependencies: [gtk2_dep],
|
||||
)
|
||||
endif
|
||||
57
perf/micro/meson.build
Normal file
57
perf/micro/meson.build
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
perf_micro_sources = [
|
||||
'cairo-perf-cover.c',
|
||||
'box-outline.c',
|
||||
'composite-checker.c',
|
||||
'disjoint.c',
|
||||
'fill.c',
|
||||
'hatching.c',
|
||||
'hash-table.c',
|
||||
'line.c',
|
||||
'a1-line.c',
|
||||
'long-lines.c',
|
||||
'mosaic.c',
|
||||
'paint.c',
|
||||
'paint-with-alpha.c',
|
||||
'mask.c',
|
||||
'pattern_create_radial.c',
|
||||
'rectangles.c',
|
||||
'rounded-rectangles.c',
|
||||
'stroke.c',
|
||||
'subimage_copy.c',
|
||||
'tessellate.c',
|
||||
'text.c',
|
||||
'tiger.c',
|
||||
'glyphs.c',
|
||||
'twin.c',
|
||||
'unaligned-clip.c',
|
||||
'wave.c',
|
||||
'world-map.c',
|
||||
'zrusin.c',
|
||||
'long-dashed-lines.c',
|
||||
'dragon.c',
|
||||
'pythagoras-tree.c',
|
||||
'intersections.c',
|
||||
'many-strokes.c',
|
||||
'wide-strokes.c',
|
||||
'many-fills.c',
|
||||
'wide-fills.c',
|
||||
'many-curves.c',
|
||||
'curve.c',
|
||||
'a1-curve.c',
|
||||
'spiral.c',
|
||||
'pixel.c',
|
||||
'sierpinski.c',
|
||||
'fill-clip.c',
|
||||
]
|
||||
|
||||
perf_micro_headers = [
|
||||
'mosaic.h',
|
||||
'world-map.h',
|
||||
'zrusin-another.h',
|
||||
]
|
||||
|
||||
libcairoperfmicro = static_library('cairo-perf-micro',
|
||||
perf_micro_sources + perf_micro_headers,
|
||||
include_directories: [incbase, incsrc, incboilerplate, incmicro],
|
||||
dependencies: [pixman_dep],
|
||||
)
|
||||
|
|
@ -11,7 +11,7 @@ echo Checking public headers for missing cairo_public decorators
|
|||
cd "$srcdir"
|
||||
FILES=$all_cairo_headers
|
||||
if test "x$FILES" = x; then
|
||||
FILES=`find . -name 'cairo*.h' ! -name '*-private.h' ! -name 'cairoint.h'`
|
||||
FILES=`find . -name 'cairo*.h' ! -name '*-private.h' ! -name 'cairoint.h' ! -name '*-inline.h' ! -name cairo-drm-intel-brw-eu.h`
|
||||
fi
|
||||
|
||||
grep -B 1 '^cairo_.*[ ]\+(' /dev/null $FILES |
|
||||
|
|
|
|||
|
|
@ -14,13 +14,15 @@ test -z "$srcdir" && srcdir=.
|
|||
test -z "$MAKE" && MAKE=make
|
||||
stat=0
|
||||
|
||||
$MAKE check-has-hidden-symbols.i > /dev/null || exit 1
|
||||
if tail -1 check-has-hidden-symbols.i | grep CAIRO_HAS_HIDDEN_SYMBOLS >/dev/null; then
|
||||
echo "Compiler doesn't support symbol visibility; skipping test"
|
||||
exit 0
|
||||
if [ "x$CAIRO_HAS_HIDDEN_SYMBOLS" = x ]; then
|
||||
$MAKE check-has-hidden-symbols.i > /dev/null || exit 1
|
||||
if tail -1 check-has-hidden-symbols.i | grep CAIRO_HAS_HIDDEN_SYMBOLS >/dev/null; then
|
||||
echo "Compiler doesn't support symbol visibility; skipping test"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
for so in .libs/lib*.so; do
|
||||
for so in .libs/lib*.so "$@"; do
|
||||
echo Checking "$so" for local PLT entries
|
||||
readelf -W -r "$so" | grep 'JU\?MP_SLO' | grep 'cairo' >&2 && stat=1
|
||||
done
|
||||
|
|
|
|||
|
|
@ -320,3 +320,30 @@ pkgmod.generate(libcairo,
|
|||
meson.override_dependency('cairo', libcairo_dep)
|
||||
|
||||
install_headers(cairo_headers, subdir: 'cairo')
|
||||
|
||||
shell = find_program('sh', required: false)
|
||||
if shell.found()
|
||||
test_scripts = [
|
||||
# This script calls back into make to generate cairo.def
|
||||
# TODO: Make this work, somehow
|
||||
#'check-def.sh',
|
||||
'check-doc-syntax.sh',
|
||||
'check-headers.sh',
|
||||
'check-preprocessor-syntax.sh',
|
||||
]
|
||||
|
||||
foreach test_script: test_scripts
|
||||
test(test_script, shell,
|
||||
args: [test_script],
|
||||
workdir: meson.current_source_dir())
|
||||
endforeach
|
||||
|
||||
env = environment()
|
||||
env.set('CAIRO_HAS_HIDDEN_SYMBOLS', '1')
|
||||
|
||||
test('check-plt.sh', shell,
|
||||
args: ['check-plt.sh', libcairo ],
|
||||
env: env,
|
||||
workdir: meson.current_source_dir())
|
||||
|
||||
endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue