1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-24 22:11:15 +02:00

flake: Add meson formatter

This adds a meson.format file that mostly mirrors the projects
meson style and a pre-commit hook to enforce this style.
Some low-diff files are formatted.
This commit is contained in:
Sergei Zimmerman 2025-06-11 22:08:03 +00:00
parent 371fcf91c3
commit 93a42a5971
No known key found for this signature in database
GPG key ID: A9B0B557CA632325
18 changed files with 152 additions and 52 deletions

View file

@ -37,6 +37,118 @@
fi fi
''}"; ''}";
}; };
meson-format = {
enable = true;
files = "(meson.build|meson.options)$";
entry = "${pkgs.writeScript "format-meson" ''
#!${pkgs.runtimeShell}
for file in "$@"; do
${lib.getExe pkgs.meson} format -ic ${../meson.format} "$file"
done
''}";
excludes = [
# We haven't applied formatting to these files yet
''^doc/manual/meson.build$''
''^doc/manual/source/command-ref/meson.build$''
''^doc/manual/source/development/meson.build$''
''^doc/manual/source/language/meson.build$''
''^doc/manual/source/meson.build$''
''^doc/manual/source/release-notes/meson.build$''
''^doc/manual/source/store/meson.build$''
''^misc/bash/meson.build$''
''^misc/fish/meson.build$''
''^misc/launchd/meson.build$''
''^misc/meson.build$''
''^misc/systemd/meson.build$''
''^misc/zsh/meson.build$''
''^nix-meson-build-support/$''
''^nix-meson-build-support/big-objs/meson.build$''
''^nix-meson-build-support/common/meson.build$''
''^nix-meson-build-support/deps-lists/meson.build$''
''^nix-meson-build-support/export/meson.build$''
''^nix-meson-build-support/export-all-symbols/meson.build$''
''^nix-meson-build-support/generate-header/meson.build$''
''^nix-meson-build-support/libatomic/meson.build$''
''^nix-meson-build-support/subprojects/meson.build$''
''^scripts/meson.build$''
''^src/external-api-docs/meson.build$''
''^src/internal-api-docs/meson.build$''
''^src/libcmd/include/nix/cmd/meson.build$''
''^src/libcmd/meson.build$''
''^src/libcmd/nix-meson-build-support$''
''^src/libexpr/include/nix/expr/meson.build$''
''^src/libexpr/meson.build$''
''^src/libexpr/nix-meson-build-support$''
''^src/libexpr-c/meson.build$''
''^src/libexpr-c/nix-meson-build-support$''
''^src/libexpr-test-support/meson.build$''
''^src/libexpr-test-support/nix-meson-build-support$''
''^src/libexpr-tests/meson.build$''
''^src/libexpr-tests/nix-meson-build-support$''
''^src/libfetchers/include/nix/fetchers/meson.build$''
''^src/libfetchers/meson.build$''
''^src/libfetchers/nix-meson-build-support$''
''^src/libfetchers-c/meson.build$''
''^src/libfetchers-c/nix-meson-build-support$''
''^src/libfetchers-tests/meson.build$''
''^src/libfetchers-tests/nix-meson-build-support$''
''^src/libflake/include/nix/flake/meson.build$''
''^src/libflake/meson.build$''
''^src/libflake/nix-meson-build-support$''
''^src/libflake-c/meson.build$''
''^src/libflake-c/nix-meson-build-support$''
''^src/libflake-tests/meson.build$''
''^src/libflake-tests/nix-meson-build-support$''
''^src/libmain/include/nix/main/meson.build$''
''^src/libmain/meson.build$''
''^src/libmain/nix-meson-build-support$''
''^src/libmain-c/meson.build$''
''^src/libmain-c/nix-meson-build-support$''
''^src/libstore/include/nix/store/meson.build$''
''^src/libstore/meson.build$''
''^src/libstore/nix-meson-build-support$''
''^src/libstore/unix/include/nix/store/meson.build$''
''^src/libstore/unix/meson.build$''
''^src/libstore/windows/meson.build$''
''^src/libstore-c/meson.build$''
''^src/libstore-c/nix-meson-build-support$''
''^src/libstore-test-support/include/nix/store/tests/meson.build$''
''^src/libstore-test-support/meson.build$''
''^src/libstore-test-support/nix-meson-build-support$''
''^src/libstore-tests/meson.build$''
''^src/libstore-tests/nix-meson-build-support$''
''^src/libutil/meson.build$''
''^src/libutil/nix-meson-build-support$''
''^src/libutil/unix/include/nix/util/meson.build$''
''^src/libutil/unix/meson.build$''
''^src/libutil/windows/meson.build$''
''^src/libutil-c/meson.build$''
''^src/libutil-c/nix-meson-build-support$''
''^src/libutil-test-support/include/nix/util/tests/meson.build$''
''^src/libutil-test-support/meson.build$''
''^src/libutil-test-support/nix-meson-build-support$''
''^src/libutil-tests/meson.build$''
''^src/libutil-tests/nix-meson-build-support$''
''^src/nix/meson.build$''
''^src/nix/nix-meson-build-support$''
''^src/perl/lib/Nix/meson.build$''
''^src/perl/meson.build$''
''^tests/functional/ca/meson.build$''
''^tests/functional/common/meson.build$''
''^tests/functional/dyn-drv/meson.build$''
''^tests/functional/flakes/meson.build$''
''^tests/functional/git-hashing/meson.build$''
''^tests/functional/local-overlay-store/meson.build$''
''^tests/functional/meson.build$''
''^src/libcmd/meson.options$''
''^src/libexpr/meson.options$''
''^src/libstore/meson.options$''
''^src/libutil/meson.options$''
''^src/libutil-c/meson.options$''
''^src/nix/meson.options$''
''^src/perl/meson.options$''
];
};
nixfmt-rfc-style = { nixfmt-rfc-style = {
enable = true; enable = true;
excludes = [ excludes = [

View file

@ -1,13 +1,13 @@
# This is just a stub project to include all the others as subprojects # This is just a stub project to include all the others as subprojects
# for development shell purposes # for development shell purposes
project('nix-dev-shell', 'cpp', project(
'nix-dev-shell',
'cpp',
version : files('.version'), version : files('.version'),
subproject_dir : 'src', subproject_dir : 'src',
default_options : [ default_options : [ 'localstatedir=/nix/var' ],
'localstatedir=/nix/var', meson_version : '>= 1.1',
],
meson_version : '>= 1.1'
) )
# Internal Libraries # Internal Libraries

7
meson.format Normal file
View file

@ -0,0 +1,7 @@
indent_by = ' '
space_array = true
kwargs_force_multiline = false
wide_colon = true
group_arg_value = true
indent_before_comments = ' '
use_editor_config = true

View file

@ -1,13 +1,22 @@
# vim: filetype=meson # vim: filetype=meson
option('doc-gen', type : 'boolean', value : false, option(
'doc-gen',
type : 'boolean',
value : false,
description : 'Generate documentation', description : 'Generate documentation',
) )
option('unit-tests', type : 'boolean', value : true, option(
'unit-tests',
type : 'boolean',
value : true,
description : 'Build unit tests', description : 'Build unit tests',
) )
option('bindings', type : 'boolean', value : true, option(
'bindings',
type : 'boolean',
value : true,
description : 'Build language bindings (e.g. Perl)', description : 'Build language bindings (e.g. Perl)',
) )

View file

@ -2,5 +2,5 @@ if host_machine.system() == 'windows'
# https://learn.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=msvc-170 # https://learn.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=msvc-170
# #define _WIN32_WINNT_WIN8 0x0602 # #define _WIN32_WINNT_WIN8 0x0602
# We currently don't use any API which requires higher than this. # We currently don't use any API which requires higher than this.
add_project_arguments([ '-D_WIN32_WINNT=0x0602' ], language: 'cpp') add_project_arguments([ '-D_WIN32_WINNT=0x0602' ], language : 'cpp')
endif endif

View file

@ -1,9 +1,5 @@
# Public headers directory # Public headers directory
include_dirs = [include_directories('../../..')] include_dirs = [ include_directories('../../..') ]
headers = files( headers = files('libexpr.hh', 'nix_api_expr.hh', 'value/context.hh')
'libexpr.hh',
'nix_api_expr.hh',
'value/context.hh',
)

View file

@ -1,6 +1,6 @@
generated_headers += gen_header.process( generated_headers += gen_header.process(
'derivation.nix', 'derivation.nix',
preserve_path_from: meson.project_source_root(), preserve_path_from : meson.project_source_root(),
) )
sources += files( sources += files(

View file

@ -1,5 +1,3 @@
include_dirs += include_directories('../..') include_dirs += include_directories('../..')
headers += files( headers += files('personality.hh')
'personality.hh',
)

View file

@ -1,5 +1,3 @@
sources += files( sources += files('personality.cc')
'personality.cc',
)
subdir('include/nix/store') subdir('include/nix/store')

View file

@ -2,6 +2,4 @@
include_dirs += include_directories('../..') include_dirs += include_directories('../..')
headers += files( headers += files('freebsd-jail.hh')
'freebsd-jail.hh',
)

View file

@ -1,5 +1,3 @@
sources += files( sources += files('freebsd-jail.cc')
'freebsd-jail.cc',
)
subdir('include/nix/util') subdir('include/nix/util')

View file

@ -1,6 +1,6 @@
# Public headers directory # Public headers directory
include_dirs = [include_directories('../..')] include_dirs = [ include_directories('../..') ]
headers = files( headers = files(
'abstract-setting-to-json.hh', 'abstract-setting-to-json.hh',
@ -63,8 +63,8 @@ headers = files(
'source-path.hh', 'source-path.hh',
'split.hh', 'split.hh',
'std-hash.hh', 'std-hash.hh',
'strings.hh',
'strings-inline.hh', 'strings-inline.hh',
'strings.hh',
'suggestions.hh', 'suggestions.hh',
'sync.hh', 'sync.hh',
'tarfile.hh', 'tarfile.hh',

View file

@ -2,7 +2,4 @@
include_dirs += include_directories('../..') include_dirs += include_directories('../..')
headers += files( headers += files('cgroup.hh', 'linux-namespaces.hh')
'cgroup.hh',
'linux-namespaces.hh',
)

View file

@ -1,6 +1,3 @@
sources += files( sources += files('cgroup.cc', 'linux-namespaces.cc')
'cgroup.cc',
'linux-namespaces.cc',
)
subdir('include/nix/util') subdir('include/nix/util')

View file

@ -2,8 +2,4 @@
include_dirs += include_directories('../..') include_dirs += include_directories('../..')
headers += files( headers += files('signals-impl.hh', 'windows-async-pipe.hh', 'windows-error.hh')
'signals-impl.hh',
'windows-async-pipe.hh',
'windows-error.hh',
)

View file

@ -5,9 +5,7 @@
# src # src
#--------------------------------------------------- #---------------------------------------------------
nix_perl_tests = files( nix_perl_tests = files('init.t')
'init.t',
)
foreach f : nix_perl_tests foreach f : nix_perl_tests

View file

@ -1,8 +1,6 @@
libplugintest = shared_module( libplugintest = shared_module(
'plugintest', 'plugintest',
'plugintest.cc', 'plugintest.cc',
dependencies : [ dependencies : [ dependency('nix-expr') ],
dependency('nix-expr'),
],
build_by_default : false, build_by_default : false,
) )

View file

@ -1,8 +1,6 @@
libstoreconsumer_tester = executable( libstoreconsumer_tester = executable(
'test-libstoreconsumer', 'test-libstoreconsumer',
'main.cc', 'main.cc',
dependencies : [ dependencies : [ dependency('nix-store') ],
dependency('nix-store'),
],
build_by_default : false, build_by_default : false,
) )