On Thu, May 08, 2025 at 05:44:37PM +0100, Ramsay Jones wrote: > diff --git a/meson.build b/meson.build > index 48f31157a0..106cb17612 100644 > --- a/meson.build > +++ b/meson.build > @@ -757,8 +757,6 @@ endif > libgit_c_args = [ > '-DBINDIR="' + get_option('bindir') + '"', > '-DDEFAULT_GIT_TEMPLATE_DIR="' + get_option('datadir') / 'git-core/templates' + '"', > - '-DETC_GITATTRIBUTES="' + get_option('gitattributes') + '"', > - '-DETC_GITCONFIG="' + get_option('gitconfig') + '"', > '-DFALLBACK_RUNTIME_PREFIX="' + get_option('prefix') + '"', > '-DGIT_HOST_CPU="' + host_machine.cpu_family() + '"', > '-DGIT_HTML_PATH="' + get_option('datadir') / 'doc/git-doc"', > @@ -769,6 +767,18 @@ libgit_c_args = [ > '-DSHELL_PATH="' + fs.as_posix(target_shell.full_path()) + '"', > ] > > +system_attributes = get_option('gitattributes') > +if system_attributes != '' > + libgit_c_args += '-DETC_GITATTRIBUTES="' + system_attributes + '"' > +else > + libgit_c_args += '-DETC_GITATTRIBUTES="' + get_option('sysconfdir') + '/gitattributes"' > +endif > +system_config = get_option('gitconfig') > +if system_config != '' > + libgit_c_args += '-DETC_GITCONFIG="' + system_config + '"' > +else > + libgit_c_args += '-DETC_GITCONFIG="' + get_option('sysconfdir') + '/gitconfig"' Instead of `get_option('sysconfdir') + '/gitconfig'` you can say `get_option('sysconfdir') / 'gitconfig'`. It's a bit pointless in this case and not really needed, but '/' has some special magic for handling absolute and relative paths. > +endif > editor_opt = get_option('default_editor') > if editor_opt != '' and editor_opt != 'vi' > libgit_c_args += '-DDEFAULT_EDITOR="' + editor_opt + '"' Nit: let's maybe add an empty newline after each of these blocks to make it a bit easier to see where handling for each specific option stops. > diff --git a/meson_options.txt b/meson_options.txt > index 8547c0eb47..4d78d4c7ac 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -3,9 +3,9 @@ option('default_pager', type: 'string', value: 'less', > description: 'Fall-back pager.') > option('default_editor', type: 'string', value: 'vi', > description: 'Fall-back editor.') > -option('gitconfig', type: 'string', value: '/etc/gitconfig', > +option('gitconfig', type: 'string', > description: 'Path to the global git configuration file.') > -option('gitattributes', type: 'string', value: '/etc/gitattributes', > +option('gitattributes', type: 'string', > description: 'Path to the global git attributes file.') > option('pager_environment', type: 'string', value: 'LESS=FRX LV=-c', > description: 'Environment used when spawning the pager') Makes sense. Should we maybe document the default values here now that they aren't immediately obvious anymore? Patrick