From 5e608fc4c850d6210ca543d4ed7265c5eee68bc5 Mon Sep 17 00:00:00 2001 From: Akemi Date: Sun, 1 Jul 2018 21:09:45 +0200 Subject: build: utilize built-in gnu_dirs module for installation directories This started breaking with newer (2.0.x) waf versions, and it was noticed that a built-in waf module was providing very similar functionality. APPNAME definition was required to have `gnu_dirs`' PACKAGE variable to be defined in order to have f.ex. documentation installed to the correct directory. Currently unused options added by `gnu_dirs` were removed to clean up the output of the help command. Effective changes to behavior: - `gnu_dirs` will attempt to figure out if it needs to use lib64 instead of lib within your installation prefix. If you would like it to not do that, set `--libdir` during configuration. The way it tries to figure lib/lib64 out is if there's a `/usr/lib64` and no `/usr/lib32`. - `--incdir` is now `--includedir` as per standard `gnu_dirs` behavior. --- wscript | 33 ++++++++++++++++++++------------- wscript_build.py | 4 ++-- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/wscript b/wscript index c808f9b8ce..01d3c020e8 100644 --- a/wscript +++ b/wscript @@ -12,6 +12,8 @@ from waftools.checks.custom import * c_preproc.go_absolute=True # enable system folders c_preproc.standard_includes.append('/usr/local/include') +APPNAME = 'mpv' + """ Dependency identifiers (for win32 vs. Unix): wscript / C source meaning @@ -916,18 +918,8 @@ standalone_features = [ ] _INSTALL_DIRS_LIST = [ - ('bindir', '${PREFIX}/bin', 'binary files'), - ('libdir', '${PREFIX}/lib', 'library files'), - ('confdir', '${PREFIX}/etc/mpv', 'configuration files'), - - ('incdir', '${PREFIX}/include', 'include files'), - - ('datadir', '${PREFIX}/share', 'data files'), - ('mandir', '${DATADIR}/man', 'man pages '), - ('docdir', '${DATADIR}/doc/mpv', 'documentation files'), - ('htmldir', '${DOCDIR}', 'html documentation files'), + ('confdir', '${SYSCONFDIR}/mpv', 'configuration files'), ('zshdir', '${DATADIR}/zsh/site-functions', 'zsh completion functions'), - ('confloaddir', '${CONFDIR}', 'configuration files load directory'), ] @@ -935,16 +927,30 @@ def options(opt): opt.load('compiler_c') opt.load('waf_customizations') opt.load('features') + opt.load('gnu_dirs') - group = opt.get_option_group("build and install options") + #remove unused options from gnu_dirs + opt.parser.remove_option("--sbindir") + opt.parser.remove_option("--libexecdir") + opt.parser.remove_option("--sharedstatedir") + opt.parser.remove_option("--localstatedir") + opt.parser.remove_option("--oldincludedir") + opt.parser.remove_option("--infodir") + opt.parser.remove_option("--localedir") + opt.parser.remove_option("--dvidir") + opt.parser.remove_option("--pdfdir") + opt.parser.remove_option("--psdir") + + group = opt.get_option_group("Installation directories") for ident, default, desc in _INSTALL_DIRS_LIST: group.add_option('--{0}'.format(ident), type = 'string', dest = ident, default = default, help = 'directory for installing {0} [{1}]' \ - .format(desc, default)) + .format(desc, default.replace('${','').replace('}',''))) + group = opt.get_option_group("build and install options") group.add_option('--variant', default = '', help = 'variant name for saving configuration and build results') @@ -1005,6 +1011,7 @@ def configure(ctx): ctx.load('detections.compiler_swift') ctx.load('detections.compiler') ctx.load('detections.devices') + ctx.load('gnu_dirs') for ident, _, _ in _INSTALL_DIRS_LIST: varname = ident.upper() diff --git a/wscript_build.py b/wscript_build.py index 89eaa48137..8e948ba333 100644 --- a/wscript_build.py +++ b/wscript_build.py @@ -693,7 +693,7 @@ def build(ctx): features = 'subst', PREFIX = ctx.env.PREFIX, LIBDIR = ctx.env.LIBDIR, - INCDIR = ctx.env.INCDIR, + INCDIR = ctx.env.INCLUDEDIR, VERSION = libversion, PRIV_LIBS = get_deps(), ) @@ -701,7 +701,7 @@ def build(ctx): headers = ["client.h", "qthelper.hpp", "opengl_cb.h", "render.h", "render_gl.h", "stream_cb.h"] for f in headers: - ctx.install_as(ctx.env.INCDIR + '/mpv/' + f, 'libmpv/' + f) + ctx.install_as(ctx.env.INCLUDEDIR + '/mpv/' + f, 'libmpv/' + f) ctx.install_as(ctx.env.LIBDIR + '/pkgconfig/mpv.pc', 'libmpv/mpv.pc') -- cgit v1.2.3