diff options
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/coredata.py | 28 | ||||
-rw-r--r-- | mesonbuild/dependencies/misc.py | 2 | ||||
-rw-r--r-- | mesonbuild/mesonlib.py | 38 |
3 files changed, 45 insertions, 23 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py index 0fdac8b..44ea83f 100644 --- a/mesonbuild/coredata.py +++ b/mesonbuild/coredata.py @@ -19,7 +19,7 @@ import sys from pathlib import PurePath from collections import OrderedDict from .mesonlib import MesonException -from .mesonlib import default_libdir, default_libexecdir, default_prefix +from .mesonlib import default_directories import ast version = '0.45.0.dev1' @@ -392,19 +392,19 @@ builtin_options = { 'buildtype': [UserComboOption, 'Build type to use.', ['plain', 'debug', 'debugoptimized', 'release', 'minsize'], 'debug'], 'strip': [UserBooleanOption, 'Strip targets on install.', False], 'unity': [UserComboOption, 'Unity build.', ['on', 'off', 'subprojects'], 'off'], - 'prefix': [UserStringOption, 'Installation prefix.', default_prefix()], - 'libdir': [UserStringOption, 'Library directory.', default_libdir()], - 'libexecdir': [UserStringOption, 'Library executable directory.', default_libexecdir()], - 'bindir': [UserStringOption, 'Executable directory.', 'bin'], - 'sbindir': [UserStringOption, 'System executable directory.', 'sbin'], - 'includedir': [UserStringOption, 'Header file directory.', 'include'], - 'datadir': [UserStringOption, 'Data file directory.', 'share'], - 'mandir': [UserStringOption, 'Manual page directory.', 'share/man'], - 'infodir': [UserStringOption, 'Info page directory.', 'share/info'], - 'localedir': [UserStringOption, 'Locale data directory.', 'share/locale'], - 'sysconfdir': [UserStringOption, 'Sysconf data directory.', 'etc'], - 'localstatedir': [UserStringOption, 'Localstate data directory.', 'var'], - 'sharedstatedir': [UserStringOption, 'Architecture-independent data directory.', 'com'], + 'prefix': [UserStringOption, 'Installation prefix.', default_directories['prefix']], + 'libdir': [UserStringOption, 'Library directory.', default_directories['libdir']], + 'libexecdir': [UserStringOption, 'Library executable directory.', default_directories['libexecdir']], + 'bindir': [UserStringOption, 'Executable directory.', default_directories['bindir']], + 'sbindir': [UserStringOption, 'System executable directory.', default_directories['sbindir']], + 'includedir': [UserStringOption, 'Header file directory.', default_directories['includedir']], + 'datadir': [UserStringOption, 'Data file directory.', default_directories['datadir']], + 'mandir': [UserStringOption, 'Manual page directory.', default_directories['mandir']], + 'infodir': [UserStringOption, 'Info page directory.', default_directories['infodir']], + 'localedir': [UserStringOption, 'Locale data directory.', default_directories['localedir']], + 'sysconfdir': [UserStringOption, 'Sysconf data directory.', default_directories['sysconfdir']], + 'localstatedir': [UserStringOption, 'Localstate data directory.', default_directories['localstatedir']], + 'sharedstatedir': [UserStringOption, 'Architecture-independent data directory.', default_directories['sharedstatedir']], 'werror': [UserBooleanOption, 'Treat warnings as errors.', False], 'warning_level': [UserComboOption, 'Compiler warning level to use.', ['1', '2', '3'], '1'], 'layout': [UserComboOption, 'Build directory layout.', ['mirror', 'flat'], 'mirror'], diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py index 9614f1f..05adf52 100644 --- a/mesonbuild/dependencies/misc.py +++ b/mesonbuild/dependencies/misc.py @@ -390,7 +390,7 @@ class BoostDependency(ExternalDependency): if self.libdir: libdirs = [self.libdir] elif self.boost_root is None: - libdirs = mesonlib.get_library_dirs() + libdirs = mesonlib.default_directories['librarydirs'] else: libdirs = [os.path.join(self.boost_root, 'lib')] for libdir in libdirs: diff --git a/mesonbuild/mesonlib.py b/mesonbuild/mesonlib.py index 4871bf7..9d71c7e 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() |