From 76900e4e3625896e3841fc50dcba87ccd0aa0aae Mon Sep 17 00:00:00 2001 From: David Rheinsberg Date: Tue, 3 May 2022 10:57:47 +0200 Subject: [PATCH] build: align with new c-util style Convert the repository to use the new meson-wrap based dependency management, new meson functionality, as well as the new CI shared workflows. Signed-off-by: David Rheinsberg --- .github/workflows/ci.yml | 18 +++++++----------- AUTHORS | 2 +- NEWS.md | 10 ++++++++++ README.md | 2 +- meson.build | 37 ++++++++++++++++++++++++++++++++++--- src/meson.build | 6 +++--- 6 files changed, 56 insertions(+), 19 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 76a4159..e07f311 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,23 +9,19 @@ on: jobs: ci: name: CI with Default Configuration - runs-on: ubuntu-latest - - steps: - - name: Fetch Sources - uses: actions/checkout@v2 - - name: Run through C-Util CI - uses: c-util/automation/src/ci-c-util@v1 - with: - m32: 1 - valgrind: 1 + uses: bus1/cabuild/.github/workflows/ci-c-util.yml@v1 + with: + cabuild_ref: "v1" + m32: true + matrixmode: true + valgrind: true ci-msvc: name: CI with MSVC runs-on: ${{ matrix.os }} strategy: matrix: - os: [windows-2016, windows-latest] + os: [windows-2019, windows-latest] steps: - name: Fetch Sources diff --git a/AUTHORS b/AUTHORS index 439473c..ddc4797 100644 --- a/AUTHORS +++ b/AUTHORS @@ -30,7 +30,7 @@ AUTHORS-LGPL: along with this program; If not, see . COPYRIGHT: (ordered alphabetically) - Copyright (C) 2015-2019 Red Hat, Inc. + Copyright (C) 2015-2022 Red Hat, Inc. AUTHORS: (ordered alphabetically) Danilo Horta diff --git a/NEWS.md b/NEWS.md index 0404389..945e7f5 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,15 @@ # c-list - Circular Intrusive Double Linked List Collection +## CHANGES WITH 4: + + * The minimum required meson version is now 0.60.0. + + * TBD + + Contributions from: David Rheinsberg + + - TBD, YYYY-MM-DD + ## CHANGES WITH 3: * API break: The c_list_loop_*() symbols were removed, since we saw diff --git a/README.md b/README.md index d141989..a2e4752 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ The requirements for this project are: At build-time, the following software is required: - * `meson >= 0.41` + * `meson >= 0.60` * `pkg-config >= 0.29` ### Build diff --git a/meson.build b/meson.build index 21bb784..1776b10 100644 --- a/meson.build +++ b/meson.build @@ -1,15 +1,46 @@ project( 'c-list', 'c', - version: '3', - license: 'Apache', default_options: [ 'c_std=c99', ], + license: 'Apache', + meson_version: '>=0.60.0', + version: '3.0.0', ) +major = meson.project_version().split('.')[0] project_description = 'Circular Intrusive Double Linked List Collection' -add_project_arguments('-D_GNU_SOURCE', language: 'c') mod_pkgconfig = import('pkgconfig') +# See c-stdaux for details on these. We do not have c-stdaux as dependency, so +# we keep a duplicated set here, reduced to the minimum. +cflags = meson.get_compiler('c').get_supported_arguments( + '-D_GNU_SOURCE', + + '-Wno-gnu-alignof-expression', + '-Wno-maybe-uninitialized', + '-Wno-unknown-warning-option', + '-Wno-unused-parameter', + + '-Wno-error=type-limits', + '-Wno-error=missing-field-initializers', + + '-Wdate-time', + '-Wdeclaration-after-statement', + '-Wlogical-op', + '-Wmissing-include-dirs', + '-Wmissing-noreturn', + '-Wnested-externs', + '-Wredundant-decls', + '-Wshadow', + '-Wstrict-aliasing=3', + '-Wsuggest-attribute=noreturn', + '-Wundef', + '-Wwrite-strings', +) +add_project_arguments(cflags, language: 'c') + subdir('src') + +meson.override_dependency('libclist-'+major, libclist_dep, static: true) diff --git a/src/meson.build b/src/meson.build index 0261ae0..ec7f29d 100644 --- a/src/meson.build +++ b/src/meson.build @@ -13,10 +13,10 @@ if not meson.is_subproject() install_headers('c-list.h') mod_pkgconfig.generate( - version: meson.project_version(), - name: 'libclist', - filebase: 'libclist', description: project_description, + filebase: 'libclist-'+major, + name: 'libclist', + version: meson.project_version(), ) endif