aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meson.build1
-rw-r--r--package.nix16
-rw-r--r--src/lix-doc/meson.build14
3 files changed, 17 insertions, 14 deletions
diff --git a/meson.build b/meson.build
index 596373c8c..ea713acf0 100644
--- a/meson.build
+++ b/meson.build
@@ -563,6 +563,7 @@ endif
# that bridge when we get there...
#
# [1]: https://github.com/mesonbuild/meson/commit/9b8378985dbdc0112d11893dd42b33b7bc8d1e62
+# FIXME: remove (along with its generated wrap files) when we get rid of meson 1.4
run_command(
python,
meson.project_source_root() / 'meson/cargo-lock-to-wraps.py',
diff --git a/package.nix b/package.nix
index f37e177dd..8bba81e38 100644
--- a/package.nix
+++ b/package.nix
@@ -288,6 +288,11 @@ stdenv.mkDerivation (finalAttrs: {
env = {
BOOST_INCLUDEDIR = "${lib.getDev boost}/include";
BOOST_LIBRARYDIR = "${lib.getLib boost}/lib";
+
+ # Meson allows referencing a /usr/share/cargo/registry shaped thing for subproject sources.
+ # Turns out the Nix-generated Cargo dependencies are named the same as they
+ # would be in a Cargo registry cache.
+ MESON_PACKAGE_CACHE_DIR = finalAttrs.cargoDeps;
};
cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
@@ -313,17 +318,6 @@ stdenv.mkDerivation (finalAttrs: {
install_name_tool -change ${boost}/lib/libboost_system.dylib $out/lib/libboost_system.dylib $out/lib/libboost_thread.dylib
''
+ ''
- # Copy the Cargo dependencies to where Meson expects them to be, so we
- # can seamlessly use Meson's subproject wraps, but just do the download
- # ahead of time. Luckily for us, importCargoLock-downloaded crates use
- # the exact naming scheme Meson expects!
- # The directory from importCargoLock does contain a lockfile, which we
- # don't need, but all the crate directories start with a word character,
- # then have a hyphen, and then a sequence of digits or periods for the
- # version.
- find "$cargoDeps" -type l -regex '.*/\w.+-[0-9.]+$' -exec \
- ln -sv "{}" "$PWD/subprojects/" ";"
-
# Fix up /usr/bin/env shebangs relied on by the build
patchShebangs --build tests/ doc/manual/
'';
diff --git a/src/lix-doc/meson.build b/src/lix-doc/meson.build
index 2fa7381a1..9838984a5 100644
--- a/src/lix-doc/meson.build
+++ b/src/lix-doc/meson.build
@@ -1,9 +1,17 @@
# The external crate rowan has an ambiguous pointer comparison warning, which
# we don't want to fail our whole build if werror is on.
-subproject('rowan-rs', default_options : ['werror=false'])
+# FIXME: remove hack once we get rid of meson 1.4
+rnix_name = 'rnix-0.11-rs'
+rowan_name = 'rowan-0.15-rs'
+if meson.version().version_compare('< 1.5')
+ rnix_name = 'rnix-rs'
+ rowan_name = 'rowan-rs'
+endif
-rnix = dependency('rnix-rs')
-rowan = dependency('rowan-rs')
+subproject(rowan_name, default_options : ['werror=false'])
+
+rnix = dependency(rnix_name)
+rowan = dependency(rowan_name)
lix_doc = static_library(
'lix_doc',