Commit d02236c0 authored by Kjell Ahlstedt's avatar Kjell Ahlstedt
Browse files

meson.build: Avoid configuration warnings

parent 5a30e66c
Pipeline #399736 passed with stages
in 7 minutes and 25 seconds
image: debian:testing
# 2022-05-19: ubuntu:latest = 22.04, ubuntu:rolling = 22.04, ubuntu:devel = 22.10
# See https://hub.docker.com/_/ubuntu
image: ubuntu:rolling
stages:
- deps
......@@ -66,7 +68,7 @@ build_deps:
- cp -r installdir/usr /
# Build glibmm-2.68
- if test ! -d glibmm; then
- git clone --branch 2.70.0 --depth 1 https://gitlab.gnome.org/GNOME/glibmm.git glibmm
- git clone --branch 2.72.1 --depth 1 https://gitlab.gnome.org/GNOME/glibmm.git glibmm
- cd glibmm
- mkdir _build && cd _build
- meson --prefix=/usr --libdir=lib -Dbuild-examples=false -Dbuildtype=release
......@@ -108,7 +110,7 @@ release_gcc_build:
- cp -r installdir/usr /
- mkdir _build && cd _build
# -Ddebug=false + -Doptimization=3 correspond to -Dbuildtype=release
- meson --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal
- meson --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal -Dwarning_level=3 -Dwerror=true
- meson compile
# Must wrap the command in single quotes because of the colon.
# See https://gitlab.gnome.org/help/ci/yaml/script.md#use-special-characters-with-script
......@@ -129,7 +131,7 @@ release_clang_build:
- cp -r installdir/usr /
- mkdir _build && cd _build
# -Ddebug=false + -Doptimization=3 correspond to -Dbuildtype=release
- CC=clang CXX=clang++ meson --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal
- CC=clang CXX=clang++ meson --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 -Dwarnings=fatal -Dwarning_level=3 -Dwerror=true
- meson compile
# Don't test subprojects.
- 'meson test --suite pangomm:'
......
......@@ -4,7 +4,8 @@ project('pangomm', 'cpp',
version: '2.50.0',
license: 'LGPLv2.1+',
default_options: [
'cpp_std=c++17'
'cpp_std=c++17',
'warning_level=1',
],
meson_version: '>= 0.55.0', # required for meson.add_dist_script(python3, ...)
# and meson.add_install_script(python3, ...)
......@@ -73,10 +74,12 @@ maintainer_mode = maintainer_mode_opt == 'true' or \
if is_dist_check
message('Looks like a tarball is being tested. ' + \
'Option "dist-warnings" is used instead of "warnings".')
warning_level = get_option('dist-warnings')
cpp_warnings = get_option('dist-warnings')
else
warning_level = get_option('warnings')
cpp_warnings = get_option('warnings')
endif
warning_level = get_option('warning_level').to_int()
werror = get_option('werror')
build_deprecated_api = get_option('build-deprecated-api')
build_documentation_opt = get_option('build-documentation')
build_documentation = build_documentation_opt == 'true' or \
......@@ -202,24 +205,25 @@ if is_msvc
endif
# Set compiler warnings.
# Meson warns if any of the /W1, /W2, /W3, /W4, /Wall, -Wall, -Wextra, -Werror
# compiler options are added with add_project_arguments().
# Avoid such warnings, when possible.
# See _warn_about_builtin_args() in meson/mesonbuild/interpreter/interpreter.py.
warning_flags = []
if warning_level == 'min'
if is_msvc
warning_flags = ['/W3']
else
warning_flags = ['-Wall']
if cpp_warnings == 'min'
if warning_level == 0
warning_flags = is_msvc ? ['/W2'] : ['-Wall']
endif
elif warning_level == 'max' or warning_level == 'fatal'
if is_msvc
warning_flags = ['/W4']
else
warning_flags = '-pedantic -Wall -Wextra -Wformat-security -Wsuggest-override -Wshadow -Wno-long-long'.split()
elif cpp_warnings == 'max' or cpp_warnings == 'fatal'
if warning_level < 3
warning_flags = is_msvc ? ['/W4'] : ['-pedantic', '-Wall', '-Wextra']
endif
if warning_level == 'fatal'
if is_msvc
warning_flags += ['/WX']
else
warning_flags += ['-Werror']
if not is_msvc
warning_flags += '-Wformat-security -Wsuggest-override -Wshadow -Wno-long-long'.split()
endif
if cpp_warnings == 'fatal'
if not werror
warning_flags += is_msvc ? ['/WX'] : ['-Werror']
endif
deprecations = 'G PANGO GLIBMM SIGCXX'.split()
foreach d : deprecations
......@@ -301,7 +305,8 @@ summary = [
meson.project_name() + ' ' + meson.project_version(),
'',
' Maintainer mode: @0@@1@'.format(maintainer_mode_opt, real_maintainer_mode),
' Compiler warnings: @0@'.format(warning_level),
' Compiler warnings: @0@ (warning_level: @1@, werror: @2@)'. \
format(cpp_warnings, warning_level, werror),
' Build deprecated API: @0@'.format(build_deprecated_api),
'Build HTML documentation: @0@@1@'.format(build_documentation_opt, real_build_documentation),
'Directories:',
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment