From f9a7cf528b2369337b1c3f47bd2ecd56d34aa3be Mon Sep 17 00:00:00 2001 From: Reno Dakota <170618376+paparodeo@users.noreply.github.com> Date: Sat, 27 Jul 2024 12:41:55 +0000 Subject: [PATCH] meson: add support for NIXPKGS_CMAKE_PREFIX_PATH nixpkgs cmake uses NIXPKGS_CMAKE_PREFIX_PATH rather than CMAKE_PREFIX_PATH env to specify module search paths. Add the env variable to meson to allow finding modules via cmake to work. --- .../me/meson/000-nixpkgs-cmake-prefix-path.patch | 12 ++++++++++++ pkgs/by-name/me/meson/package.nix | 3 +++ 2 files changed, 15 insertions(+) create mode 100644 pkgs/by-name/me/meson/000-nixpkgs-cmake-prefix-path.patch diff --git a/pkgs/by-name/me/meson/000-nixpkgs-cmake-prefix-path.patch b/pkgs/by-name/me/meson/000-nixpkgs-cmake-prefix-path.patch new file mode 100644 index 000000000000..c45106c4f9d1 --- /dev/null +++ b/pkgs/by-name/me/meson/000-nixpkgs-cmake-prefix-path.patch @@ -0,0 +1,12 @@ +diff --git a/mesonbuild/dependencies/data/CMakePathInfo.txt b/mesonbuild/dependencies/data/CMakePathInfo.txt +index 662ec58..4d5f4e4 100644 +--- a/mesonbuild/dependencies/data/CMakePathInfo.txt ++++ b/mesonbuild/dependencies/data/CMakePathInfo.txt +@@ -5,6 +5,7 @@ list(APPEND TMP_PATHS_LIST ${CMAKE_PREFIX_PATH}) + list(APPEND TMP_PATHS_LIST ${CMAKE_FRAMEWORK_PATH}) + list(APPEND TMP_PATHS_LIST ${CMAKE_APPBUNDLE_PATH}) + list(APPEND TMP_PATHS_LIST $ENV{CMAKE_PREFIX_PATH}) ++list(APPEND TMP_PATHS_LIST $ENV{NIXPKGS_CMAKE_PREFIX_PATH}) + list(APPEND TMP_PATHS_LIST $ENV{CMAKE_FRAMEWORK_PATH}) + list(APPEND TMP_PATHS_LIST $ENV{CMAKE_APPBUNDLE_PATH}) + list(APPEND TMP_PATHS_LIST ${CMAKE_SYSTEM_PREFIX_PATH}) diff --git a/pkgs/by-name/me/meson/package.nix b/pkgs/by-name/me/meson/package.nix index 6c1a9563bf43..820433b51978 100644 --- a/pkgs/by-name/me/meson/package.nix +++ b/pkgs/by-name/me/meson/package.nix @@ -31,6 +31,9 @@ python3.pkgs.buildPythonApplication rec { }; patches = [ + # Nixpkgs cmake uses NIXPKGS_CMAKE_PREFIX_PATH for the search path + ./000-nixpkgs-cmake-prefix-path.patch + # In typical distributions, RPATH is only needed for internal libraries so # meson removes everything else. With Nix, the locations of libraries # are not as predictable, therefore we need to keep them in the RPATH.