diff options
author | Patrick Griffis <tingping@tingping.se> | 2018-01-15 05:37:05 -0500 |
---|---|---|
committer | Patrick Griffis <tingping@tingping.se> | 2018-01-16 04:46:34 -0500 |
commit | ed839982cb6b15d8dcdbdc394dbce03f8612c26c (patch) | |
tree | c642297dc1dd0c8c243fb1d4c2a101a636a76e6e /mesonbuild/mesonlib.py | |
parent | 6c2d40ac2818a800f0c875ed1664e80a6d4c2aec (diff) | |
download | meson-wip/default-directories.tar.gz |
Expose a way for distributors to override default directorieswip/default-directories
This allows placing a `distro_directories.py` file in the meson
module which exports a `default_directories` dict to override
all of the defaults similar to config.site in autoconf.
Fixes #2557
Diffstat (limited to 'mesonbuild/mesonlib.py')
-rw-r--r-- | mesonbuild/mesonlib.py | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/mesonbuild/mesonlib.py b/mesonbuild/mesonlib.py index 4871bf7bc..9d71c7e6c 100644 --- a/mesonbuild/mesonlib.py +++ b/mesonbuild/mesonlib.py @@ -449,7 +449,8 @@ def version_compare_many(vstr1, conditions): found.append(req) return not_found == [], not_found, found -def default_libdir(): + +def _default_libdir(): if is_debianlike(): try: pc = subprocess.Popen(['dpkg-architecture', '-qDEB_HOST_MULTIARCH'], @@ -465,14 +466,8 @@ def default_libdir(): return 'lib64' return 'lib' -def default_libexecdir(): - # There is no way to auto-detect this, so it must be set at build time - return 'libexec' - -def default_prefix(): - return 'c:/' if is_windows() else '/usr/local' -def get_library_dirs(): +def _default_library_dirs(): if is_windows(): return ['C:/mingw/lib'] # Fixme if is_osx(): @@ -500,6 +495,33 @@ def get_library_dirs(): return unixdirs +# These are mostly documented in builtin_options in coredata.py +default_directories = { + 'prefix': 'c:/' if is_windows() else '/usr/local', + 'bindir': 'bin', + 'sbindir': 'sbin', + 'libdir': _default_libdir(), + 'libexecdir': 'libexec', + 'datadir': 'share', + 'includedir': 'include', + 'mandir': 'share/man', + 'infodir': 'share/info', + 'localedir': 'share/locale', + 'sysconfdir': 'etc', + 'localstatedir': 'var', + 'sharedstatedir': 'com', + 'librarydirs': _default_library_dirs(), +} + + +try: + # Allow distros to insert a file that sets its own directories + from .distro_directories import default_directories as overrides + default_directories.update(overrides) +except ImportError: + pass + + def do_replacement(regex, line, confdata): missing_variables = set() |