build: add 'lispdir' option

Add lispdir option for installing mu4e in a custom directory, which what
some pre-meson users tended to do with --lispdir.

Passing '-Dlispdir=/tmp/foo/bar' causes the mu4e files to be installed
in /tmp/foo/bar/mu4e.

Should help for issue #2287.
This commit is contained in:
Dirk-Jan C. Binnema 2022-07-02 12:18:51 +03:00
parent a423a8bbcc
commit 8f1d83e4b2
3 changed files with 19 additions and 9 deletions

View File

@ -31,10 +31,18 @@ project('mu', ['c', 'cpp'],
# installation paths # installation paths
prefixdir = get_option('prefix') prefixdir = get_option('prefix')
bindir = join_paths(prefixdir, get_option('bindir')) bindir = prefixdir / get_option('bindir')
datadir = join_paths(prefixdir, get_option('datadir')) datadir = prefixdir / get_option('datadir')
mandir = join_paths(prefixdir, get_option('mandir')) mandir = prefixdir / get_option('mandir')
infodir = join_paths(prefixdir, get_option('infodir')) infodir = prefixdir / get_option('infodir')
# allow for configuring lispdir, as with autotools.
# default to <p
if get_option('lispdir') == ''
mu4e_lispdir= datadir / join_paths('emacs', 'site-lisp', 'mu4e')
else
mu4e_lispdir= get_option('lispdir') / 'mu4e'
endif
################################################################################ ################################################################################
# compilers / flags # compilers / flags

View File

@ -29,3 +29,7 @@ option('emacs',
type: 'string', type: 'string',
value: 'emacs', value: 'emacs',
description: 'name/path of the emacs executable') description: 'name/path of the emacs executable')
option('lispdir',
type: 'string',
description: 'path under which to install emacs-lisp files')

View File

@ -14,15 +14,13 @@
## along with this program; if not, write to the Free Software Foundation, ## along with this program; if not, write to the Free Software Foundation,
## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# where the lisp goes
lispdir = join_paths(datadir, 'emacs', 'site-lisp', 'mu4e')
# generate some build data for use in mu4e # generate some build data for use in mu4e
mu4e_meta = configure_file( mu4e_meta = configure_file(
input: 'mu4e-config.el.in', input: 'mu4e-config.el.in',
output: 'mu4e-config.el', output: 'mu4e-config.el',
install: true, install: true,
install_dir: lispdir, install_dir: mu4e_lispdir,
configuration: { configuration: {
'VERSION' : meson.project_version(), 'VERSION' : meson.project_version(),
# project_build_root() with meson >= 0.56 # project_build_root() with meson >= 0.56
@ -79,7 +77,7 @@ foreach src : mu4e_srcs
build_by_default: true, build_by_default: true,
input: src, input: src,
output: target_name, output: target_name,
install_dir: lispdir, install_dir: mu4e_lispdir,
install: true, install: true,
command: [emacs, command: [emacs,
'--no-init-file', '--no-init-file',
@ -92,7 +90,7 @@ foreach src : mu4e_srcs
endforeach endforeach
# also install the sources and the config # also install the sources and the config
install_data(mu4e_srcs, install_dir: lispdir) install_data(mu4e_srcs, install_dir: mu4e_lispdir)
# install mu4e-about.org # install mu4e-about.org
install_data('mu4e-about.org', install_dir : join_paths(datadir, 'doc', 'mu')) install_data('mu4e-about.org', install_dir : join_paths(datadir, 'doc', 'mu'))