Merge branch 'ci-meson-0-48' into 'master'

Ci meson 0 48

See merge request GNOME/glib!347
This commit is contained in:
Philip Withnall 2018-09-28 13:47:40 +00:00
commit 0e117cffa5
9 changed files with 156 additions and 171 deletions

View File

@ -1,4 +1,4 @@
image: registry.gitlab.gnome.org/gnome/glib/master:v7 image: registry.gitlab.gnome.org/gnome/glib/master:v8
stages: stages:
- build - build
@ -12,6 +12,7 @@ cache:
variables: variables:
MESON_TEST_TIMEOUT_MULTIPLIER: 2 MESON_TEST_TIMEOUT_MULTIPLIER: 2
G_MESSAGES_DEBUG: all G_MESSAGES_DEBUG: all
MESON_COMMON_OPTIONS: "--buildtype debug --fatal-meson-warnings"
fedora-x86_64: fedora-x86_64:
stage: build stage: build
@ -20,7 +21,7 @@ fedora-x86_64:
variables: variables:
CFLAGS: "-coverage -ftest-coverage -fprofile-arcs" CFLAGS: "-coverage -ftest-coverage -fprofile-arcs"
script: script:
- meson --buildtype debug --werror -Dsystemtap=true -Ddtrace=true -Dfam=true _build . - meson ${MESON_COMMON_OPTIONS} --werror -Dsystemtap=true -Ddtrace=true -Dfam=true _build
- ninja -C _build - ninja -C _build
- mkdir -p _coverage - mkdir -p _coverage
- lcov --rc lcov_branch_coverage=1 --directory _build --capture --initial --output-file "_coverage/${CI_JOB_NAME}-baseline.lcov" - lcov --rc lcov_branch_coverage=1 --directory _build --capture --initial --output-file "_coverage/${CI_JOB_NAME}-baseline.lcov"
@ -76,21 +77,21 @@ cross-android_api21_arm64:
<<: *cross-template <<: *cross-template
script: script:
# FIXME: add --werror # FIXME: add --werror
- meson --cross-file=/opt/cross_file_android_arm64_21.txt -Diconv=gnu -Dinternal_pcre=true --buildtype debug _build - meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_android_arm64_21.txt -Diconv=gnu -Dinternal_pcre=true _build
- ninja -C _build - ninja -C _build
cross-android_api28_arm64: cross-android_api28_arm64:
<<: *cross-template <<: *cross-template
script: script:
# FIXME: add --werror # FIXME: add --werror
- meson --cross-file=/opt/cross_file_android_arm64_28.txt -Dinternal_pcre=true --buildtype debug _build - meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_android_arm64_28.txt -Dinternal_pcre=true _build
- ninja -C _build - ninja -C _build
cross-mingw64: cross-mingw64:
<<: *cross-template <<: *cross-template
script: script:
# FIXME: Add --werror # FIXME: Add --werror
- meson --cross-file=/opt/cross_file_mingw64.txt --buildtype debug _build - meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_mingw64.txt _build
- ninja -C _build - ninja -C _build
msys2-mingw32: msys2-mingw32:
@ -150,7 +151,7 @@ freebsd-11-x86_64:
# FreeBSD iconv doesn't handle transliteration, so we use GNU libiconv here. # FreeBSD iconv doesn't handle transliteration, so we use GNU libiconv here.
# FreeBSD supports xattr, but its API is different from Linux xattr. # FreeBSD supports xattr, but its API is different from Linux xattr.
# FIXME: extattr(2) support: https://gitlab.gnome.org/GNOME/glib/issues/1404 # FIXME: extattr(2) support: https://gitlab.gnome.org/GNOME/glib/issues/1404
- meson -Db_lundef=false -Diconv=gnu -Dxattr=false --buildtype debug _build - meson ${MESON_COMMON_OPTIONS} -Db_lundef=false -Diconv=gnu -Dxattr=false _build
- ninja -C _build - ninja -C _build
- meson test -C _build --timeout-multiplier "${MESON_TEST_TIMEOUT_MULTIPLIER}" - meson test -C _build --timeout-multiplier "${MESON_TEST_TIMEOUT_MULTIPLIER}"
# FIXME: Remove this when we have a stable FreeBSD runner # FIXME: Remove this when we have a stable FreeBSD runner
@ -191,7 +192,7 @@ dist-job:
only: only:
- tags - tags
script: script:
- meson --buildtype release -Dgtk_doc=true -Dman=true _build - meson --buildtype release --fatal-meson-warnings -Dgtk_doc=true -Dman=true _build
- cd _build - cd _build
- ninja dist - ninja dist
- ninja glib-doc gobject-doc gio-doc - ninja glib-doc gobject-doc gio-doc

View File

@ -52,7 +52,7 @@ RUN rm -rf $ANDROID_NDK_PATH
COPY cross_file_mingw64.txt /opt COPY cross_file_mingw64.txt /opt
RUN pip3 install meson==0.47.0 RUN pip3 install meson==0.48.0
ARG HOST_USER_ID=5555 ARG HOST_USER_ID=5555
ENV HOST_USER_ID ${HOST_USER_ID} ENV HOST_USER_ID ${HOST_USER_ID}

View File

@ -2,7 +2,7 @@
set -e set -e
TAG="registry.gitlab.gnome.org/gnome/glib/master:v7" TAG="registry.gitlab.gnome.org/gnome/glib/master:v8"
docker build --build-arg HOST_USER_ID="$UID" --tag "${TAG}" \ docker build --build-arg HOST_USER_ID="$UID" --tag "${TAG}" \
--file "Dockerfile" . --file "Dockerfile" .

View File

@ -5,7 +5,7 @@ call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary
@echo on @echo on
:: FIXME: make warnings fatal :: FIXME: make warnings fatal
pip3 install --upgrade --user meson==0.47.0 || goto :error pip3 install --upgrade --user meson==0.48.0 || goto :error
meson _build || goto :error meson _build || goto :error
ninja -C _build || goto :error ninja -C _build || goto :error

View File

@ -33,7 +33,7 @@ mkdir -p _coverage
mkdir -p _ccache mkdir -p _ccache
export CCACHE_BASEDIR="$(pwd)" export CCACHE_BASEDIR="$(pwd)"
export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache" export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
pip3 install --upgrade --user meson==0.47.0 pip3 install --upgrade --user meson==0.48.0
export PATH="$HOME/.local/bin:$PATH" export PATH="$HOME/.local/bin:$PATH"
export CFLAGS="-coverage -ftest-coverage -fprofile-arcs" export CFLAGS="-coverage -ftest-coverage -fprofile-arcs"
DIR="$(pwd)" DIR="$(pwd)"

View File

@ -19,9 +19,7 @@ giotypefuncs_inc = custom_target(
command: [gengiotypefuncs_prog, '@OUTPUT@', '@INPUT@']) command: [gengiotypefuncs_prog, '@OUTPUT@', '@INPUT@'])
# Test programs buildable on all platforms # Test programs buildable on all platforms
# FIXME: We are using list of dictionnaries until we can depend on Meson 0.48.0 gio_tests = {
# that supports '+=' operator on dictionnaries.
gio_tests = [{
'appmonitor' : {}, 'appmonitor' : {},
'async-close-output-stream' : {}, 'async-close-output-stream' : {},
'async-splice-output-stream' : {}, 'async-splice-output-stream' : {},
@ -73,15 +71,13 @@ gio_tests = [{
'tls-certificate' : {'extra_sources' : ['gtesttlsbackend.c']}, 'tls-certificate' : {'extra_sources' : ['gtesttlsbackend.c']},
'tls-interaction' : {'extra_sources' : ['gtesttlsbackend.c']}, 'tls-interaction' : {'extra_sources' : ['gtesttlsbackend.c']},
'tls-database' : {'extra_sources' : ['gtesttlsbackend.c']}, 'tls-database' : {'extra_sources' : ['gtesttlsbackend.c']},
}] }
# FIXME: We are using list of dictionnaries until we can depend on Meson 0.48.0 test_extra_programs = {
# that supports '+=' operator on dictionnaries.
test_extra_programs = [{
'gdbus-connection-flush-helper' : {}, 'gdbus-connection-flush-helper' : {},
'gdbus-testserver' : {}, 'gdbus-testserver' : {},
'gsubprocess-testprog' : {}, 'gsubprocess-testprog' : {},
}] }
test_env = environment() test_env = environment()
test_env.set('G_TEST_SRCDIR', meson.current_source_dir()) test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
@ -114,17 +110,17 @@ endif
if dbus1_dep.found() if dbus1_dep.found()
glib_conf.set('HAVE_DBUS1', 1) glib_conf.set('HAVE_DBUS1', 1)
gio_tests += [{ gio_tests += {
'gdbus-serialization' : { 'gdbus-serialization' : {
'extra_sources' : ['gdbus-tests.c'], 'extra_sources' : ['gdbus-tests.c'],
'dependencies' : [dbus1_dep], 'dependencies' : [dbus1_dep],
} }
}] }
endif endif
# Test programs buildable on UNIX only # Test programs buildable on UNIX only
if host_machine.system() != 'windows' if host_machine.system() != 'windows'
gio_tests += [{ gio_tests += {
'file' : {}, 'file' : {},
'gdbus-peer' : {'dependencies' : [libgdbus_example_objectmanager_dep]}, 'gdbus-peer' : {'dependencies' : [libgdbus_example_objectmanager_dep]},
'gdbus-peer-object-manager' : {}, 'gdbus-peer-object-manager' : {},
@ -137,12 +133,12 @@ if host_machine.system() != 'windows'
'g-file-info-filesystem-readonly' : {}, 'g-file-info-filesystem-readonly' : {},
'gschema-compile' : {'install' : false}, 'gschema-compile' : {'install' : false},
'trash' : {}, 'trash' : {},
}] }
# Uninstalled because of the check-for-executable logic in DesktopAppInfo # Uninstalled because of the check-for-executable logic in DesktopAppInfo
# unable to find the installed executable # unable to find the installed executable
if not glib_have_cocoa if not glib_have_cocoa
gio_tests += [{ gio_tests += {
'appinfo' : { 'appinfo' : {
'install' : false, 'install' : false,
'is_parallel' : false, 'is_parallel' : false,
@ -151,22 +147,22 @@ if host_machine.system() != 'windows'
'install' : false, 'install' : false,
'is_parallel' : false, 'is_parallel' : false,
}, },
}] }
endif endif
test_extra_programs += [{ test_extra_programs += {
'basic-application' : {}, 'basic-application' : {},
'dbus-launch' : {}, 'dbus-launch' : {},
'appinfo-test' : {}, 'appinfo-test' : {},
}] }
if not glib_have_cocoa if not glib_have_cocoa
test_extra_programs += [{ test_extra_programs += {
'apps' : {}, 'apps' : {},
}] }
gio_tests += [{ gio_tests += {
'mimeapps' : {}, 'mimeapps' : {},
}] }
endif endif
# Test programs that need to bring up a session bus (requires dbus-daemon) # Test programs that need to bring up a session bus (requires dbus-daemon)
@ -197,7 +193,7 @@ if host_machine.system() != 'windows'
extra_sources = ['gdbus-sessionbus.c', 'gdbus-tests.c'] extra_sources = ['gdbus-sessionbus.c', 'gdbus-tests.c']
gio_tests += [{ gio_tests += {
'actions' : { 'actions' : {
'extra_sources' : extra_sources, 'extra_sources' : extra_sources,
'suite' : ['slow'], 'suite' : ['slow'],
@ -244,14 +240,14 @@ if host_machine.system() != 'windows'
}, },
'gapplication' : {'extra_sources' : extra_sources}, 'gapplication' : {'extra_sources' : extra_sources},
'gdbus-unix-addresses' : {}, 'gdbus-unix-addresses' : {},
}] }
if not glib_have_cocoa if not glib_have_cocoa
gio_tests += [{ gio_tests += {
'dbus-appinfo' : { 'dbus-appinfo' : {
'extra_sources' : extra_sources, 'extra_sources' : extra_sources,
}, },
}] }
endif endif
endif # have_dbus_daemon endif # have_dbus_daemon
@ -262,44 +258,44 @@ if host_machine.system() != 'windows'
install_dir : installed_tests_execdir, install_dir : installed_tests_execdir,
install : installed_tests_enabled) install : installed_tests_enabled)
gio_tests += [{ gio_tests += {
'gdbus-connection-flush' : { 'gdbus-connection-flush' : {
'extra_sources' : ['test-io-stream.c', 'test-pipe-unix.c'], 'extra_sources' : ['test-io-stream.c', 'test-pipe-unix.c'],
}, },
'gdbus-non-socket' : { 'gdbus-non-socket' : {
'extra_sources' : ['gdbus-tests.c', 'test-io-stream.c', 'test-pipe-unix.c'], 'extra_sources' : ['gdbus-tests.c', 'test-io-stream.c', 'test-pipe-unix.c'],
}, },
}] }
# Generate test.mo from de.po using msgfmt # Generate test.mo from de.po using msgfmt
msgfmt = find_program('msgfmt', required : false) msgfmt = find_program('msgfmt', required : false)
if msgfmt.found() if msgfmt.found()
subdir('de/LC_MESSAGES') subdir('de/LC_MESSAGES')
gio_tests += [{ gio_tests += {
'gsettings' : { 'gsettings' : {
'extra_sources' : [test_mo], 'extra_sources' : [test_mo],
'c_args' : ['-DSRCDIR="@0@"'.format(meson.current_source_dir()), 'c_args' : ['-DSRCDIR="@0@"'.format(meson.current_source_dir()),
'-DTEST_LOCALE_PATH="@0@"'.format(test_mo_dir)], '-DTEST_LOCALE_PATH="@0@"'.format(test_mo_dir)],
'install' : false, 'install' : false,
}, },
}] }
endif endif
endif # unix endif # unix
# Test programs buildable on Windows only # Test programs buildable on Windows only
if host_machine.system() == 'windows' if host_machine.system() == 'windows'
gio_tests += [{'win32-streams' : {}}] gio_tests += {'win32-streams' : {}}
endif endif
if cc.get_id() != 'msvc' if cc.get_id() != 'msvc'
gio_tests += [{ gio_tests += {
'autoptr-gio' : { 'autoptr-gio' : {
'source' : 'autoptr.c', 'source' : 'autoptr.c',
}, },
}] }
endif endif
test_extra_programs += [{ test_extra_programs += {
'gio-du' : {'install' : false}, 'gio-du' : {'install' : false},
'echo-server' : {'install' : false}, 'echo-server' : {'install' : false},
'filter-cat' : {'install' : false}, 'filter-cat' : {'install' : false},
@ -331,10 +327,10 @@ test_extra_programs += [{
'extra_sources' : ['gtlsconsoleinteraction.c'], 'extra_sources' : ['gtlsconsoleinteraction.c'],
'install' : false, 'install' : false,
}, },
}] }
if cc.get_id() != 'msvc' if cc.get_id() != 'msvc'
test_extra_programs += [{ test_extra_programs += {
# These three are manual-run tests because they need a session bus but don't bring one up themselves # These three are manual-run tests because they need a session bus but don't bring one up themselves
# FIXME: these build but don't seem to work! # FIXME: these build but don't seem to work!
'gdbus-example-objectmanager-client' : { 'gdbus-example-objectmanager-client' : {
@ -349,15 +345,15 @@ if cc.get_id() != 'msvc'
'dependencies' : [libgdbus_example_objectmanager_dep], 'dependencies' : [libgdbus_example_objectmanager_dep],
'install' : false, 'install' : false,
}, },
}] }
endif endif
if host_machine.system() != 'windows' if host_machine.system() != 'windows'
test_extra_programs += [{ test_extra_programs += {
'gdbus-example-unix-fd-client' : { 'gdbus-example-unix-fd-client' : {
'install' : false, 'install' : false,
}, },
}] }
endif endif
if installed_tests_enabled if installed_tests_enabled
@ -447,16 +443,15 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
copy : true, copy : true,
install : false) install : false)
gio_tests += [{ gio_tests += {
'resources' : { 'resources' : {
'extra_sources' : [test_gresource, test_resources_c, test_resources2_c, 'extra_sources' : [test_gresource, test_resources_c, test_resources2_c,
test_resources2_h], test_resources2_h],
}, },
}] }
endif endif
foreach test_dict : gio_tests foreach test_name, extra_args : gio_tests
foreach test_name, extra_args : test_dict
source = extra_args.get('source', test_name + '.c') source = extra_args.get('source', test_name + '.c')
extra_sources = extra_args.get('extra_sources', []) extra_sources = extra_args.get('extra_sources', [])
install = installed_tests_enabled and extra_args.get('install', true) install = installed_tests_enabled and extra_args.get('install', true)
@ -489,11 +484,9 @@ foreach test_dict : gio_tests
args : ['--tap'], args : ['--tap'],
is_parallel : extra_args.get('is_parallel', true), is_parallel : extra_args.get('is_parallel', true),
) )
endforeach
endforeach endforeach
foreach program_dict : test_extra_programs foreach program_name, extra_args : test_extra_programs
foreach program_name, extra_args : program_dict
source = extra_args.get('source', program_name + '.c') source = extra_args.get('source', program_name + '.c')
extra_sources = extra_args.get('extra_sources', []) extra_sources = extra_args.get('extra_sources', [])
install = installed_tests_enabled and extra_args.get('install', true) install = installed_tests_enabled and extra_args.get('install', true)
@ -503,7 +496,6 @@ foreach program_dict : test_extra_programs
install_dir : installed_tests_execdir, install_dir : installed_tests_execdir,
install : install, install : install,
) )
endforeach
endforeach endforeach
# FIXME: subdir('services') # FIXME: subdir('services')

View File

@ -1,6 +1,6 @@
project('glib', 'c', 'cpp', project('glib', 'c', 'cpp',
version : '2.59.0', version : '2.59.0',
meson_version : '>= 0.47.0', meson_version : '>= 0.48.0',
default_options : [ default_options : [
'buildtype=debugoptimized', 'buildtype=debugoptimized',
'warning_level=1', 'warning_level=1',

View File

@ -26,9 +26,7 @@ testmarshal_c = custom_target('testmarshal_c',
], ],
) )
# FIXME: We are using list of dictionnaries until we can depend on Meson 0.48.0 gobject_tests = {
# that supports '+=' operator on dictionnaries.
gobject_tests = [{
'gvalue-test' : {'tap' : true}, 'gvalue-test' : {'tap' : true},
'paramspec-test' : {'tap' : true}, 'paramspec-test' : {'tap' : true},
'deftype' : {}, 'deftype' : {},
@ -46,19 +44,18 @@ gobject_tests = [{
'accumulator' : { 'accumulator' : {
'extra_sources' : [testmarshal_c, testmarshal_h], 'extra_sources' : [testmarshal_c, testmarshal_h],
}, },
}] }
if host_system != 'windows' if host_system != 'windows'
gobject_tests += [{ gobject_tests += {
'timeloop-closure' : {}, 'timeloop-closure' : {},
}] }
endif endif
common_c_args = test_cargs + ['-DGLIB_DISABLE_DEPRECATION_WARNINGS'] common_c_args = test_cargs + ['-DGLIB_DISABLE_DEPRECATION_WARNINGS']
common_deps = [libm, thread_dep, libglib_dep, libgobject_dep] common_deps = [libm, thread_dep, libglib_dep, libgobject_dep]
foreach test_dict : gobject_tests foreach test_name, extra_args : gobject_tests
foreach test_name, extra_args : test_dict
source = extra_args.get('source', test_name + '.c') source = extra_args.get('source', test_name + '.c')
extra_sources = extra_args.get('extra_sources', []) extra_sources = extra_args.get('extra_sources', [])
install = installed_tests_enabled and extra_args.get('install', true) install = installed_tests_enabled and extra_args.get('install', true)
@ -90,7 +87,6 @@ foreach test_dict : gobject_tests
# FIXME? TESTS_ENVIRONMENT = LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset # FIXME? TESTS_ENVIRONMENT = LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset
test(test_name, exe, env : test_env, timeout : timeout, suite : suite, test(test_name, exe, env : test_env, timeout : timeout, suite : suite,
args : test_command_args) args : test_command_args)
endforeach
endforeach endforeach
# Don't install these ones, and keep them out of 'make check' because they take too long... # Don't install these ones, and keep them out of 'make check' because they take too long...

View File

@ -15,9 +15,7 @@ test_cargs = ['-DG_LOG_DOMAIN="GLib"']
subdir('gobject') subdir('gobject')
subdir('refcount') subdir('refcount')
# FIXME: We are using list of dictionnaries until we can depend on Meson 0.48.0 tests = {
# that supports '+=' operator on dictionnaries.
tests = [{
'testglib' : {'tap' : true}, 'testglib' : {'tap' : true},
'testgdate' : {}, 'testgdate' : {},
'datetime' : {}, 'datetime' : {},
@ -54,7 +52,7 @@ tests = [{
'include_directories' : gmoduleinc, 'include_directories' : gmoduleinc,
'dependencies' : [libgio_dep], 'dependencies' : [libgio_dep],
}, },
}] }
test_extra_programs = { test_extra_programs = {
'slice-test' : { 'slice-test' : {
@ -68,11 +66,11 @@ test_extra_programs = {
} }
if host_machine.system() != 'windows' if host_machine.system() != 'windows'
tests += [{ tests += {
'timeloop' : {}, 'timeloop' : {},
'spawn-test' : {}, 'spawn-test' : {},
'iochannel-test' : {}, 'iochannel-test' : {},
}] }
endif endif
if installed_tests_enabled if installed_tests_enabled
@ -96,8 +94,7 @@ endforeach
common_c_args = test_cargs + ['-DGLIB_DISABLE_DEPRECATION_WARNINGS'] common_c_args = test_cargs + ['-DGLIB_DISABLE_DEPRECATION_WARNINGS']
common_deps = [libm, thread_dep, libglib_dep] common_deps = [libm, thread_dep, libglib_dep]
foreach test_dict : tests foreach test_name, extra_args : tests
foreach test_name, extra_args : test_dict
source = extra_args.get('source', test_name + '.c') source = extra_args.get('source', test_name + '.c')
extra_sources = extra_args.get('extra_sources', []) extra_sources = extra_args.get('extra_sources', [])
install = installed_tests_enabled and extra_args.get('install', true) install = installed_tests_enabled and extra_args.get('install', true)
@ -131,7 +128,6 @@ foreach test_dict : tests
# FIXME? TESTS_ENVIRONMENT = LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset # FIXME? TESTS_ENVIRONMENT = LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset
test(test_name, exe, env : test_env, timeout : timeout, suite : suite, test(test_name, exe, env : test_env, timeout : timeout, suite : suite,
args : test_command_args) args : test_command_args)
endforeach
endforeach endforeach
foreach program_name, extra_args : test_extra_programs foreach program_name, extra_args : test_extra_programs