mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
meson: correct path to system config/attribute files
The path to the system-wide config and attributes files are not being
set correctly in the meson build. Unless explicitly overridden on the
command line during setup, the 'gitconfig' and 'gitattributes' options
are defaulting to absolute paths in the '/etc' system directory. This
is only appropriate if the <prefix> is set specifically to '/usr'.
The directory in which these files are placed is generally referred to
as the 'system configuration directory' or 'sysconfdir' for short. When
the prefix is '/usr' then the sysconfdir is usually set to '/etc', but
any other value for prefix results in the relative directory value 'etc'
instead. (eg if prefix is '/usr/local', then the 'etc' relative value
results in a system configuration directory of '/usr/local/etc'). When
setting the 'sysconfdir' builtin option value, the meson system uses
exactly this algorithm, so we can use get_option('sysconfdir') directly
when setting the (non-overridden) build variables.
In order to allow for overriding from the command line, remove the
default values specified for the 'gitconfig' and 'gitattributes' options
in the 'meson_options.txt' file. This allows the user to specify any
pathname for those options, while being able to test for the unset
(empty) value. An absolute pathname will be used unchanged and a relative
pathname will be appended to '<prefix>/'. These values are then used to
set the 'ETC_GITCONFIG' and 'ETC_GITATTRIBUTES' build variables which are,
in turn, passed to the compiler as '-D' arguments.
When the 'gitconfig' or 'gitattributes' options are not used, then use
the built-in 'sysconfdir' and set the ETC_GITCONFIG build variable to
the string "<sysconfdir>/gitconfig". Similarly, set ETC_ATTRIBUTES to
"<sysconfdir>/gitattributes".
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
bdb38432f3
commit
46a626c389
16
meson.build
16
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,20 @@ 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"'
|
||||
endif
|
||||
|
||||
editor_opt = get_option('default_editor')
|
||||
if editor_opt != '' and editor_opt != 'vi'
|
||||
libgit_c_args += '-DDEFAULT_EDITOR="' + editor_opt + '"'
|
||||
|
||||
@@ -3,10 +3,10 @@ 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',
|
||||
description: 'Path to the global git configuration file.')
|
||||
option('gitattributes', type: 'string', value: '/etc/gitattributes',
|
||||
description: 'Path to the global git attributes file.')
|
||||
option('gitconfig', type: 'string',
|
||||
description: 'Path to the global git configuration file. (default: etc/gitconfig)')
|
||||
option('gitattributes', type: 'string',
|
||||
description: 'Path to the global git attributes file. (default: etc/gitattributes)')
|
||||
option('pager_environment', type: 'string', value: 'LESS=FRX LV=-c',
|
||||
description: 'Environment used when spawning the pager')
|
||||
option('perl_cpan_fallback', type: 'boolean', value: true,
|
||||
|
||||
Reference in New Issue
Block a user