depot/third_party/nixpkgs/pkgs/applications/video/kodi/build-kodi-binary-addon.nix

64 lines
1.5 KiB
Nix

{
stdenv,
toKodiAddon,
addonDir,
cmake,
kodi,
kodi-platform,
libcec_platform,
}:
{
name ? "${attrs.pname}-${attrs.version}",
namespace,
version,
extraNativeBuildInputs ? [ ],
extraBuildInputs ? [ ],
extraRuntimeDependencies ? [ ],
extraCMakeFlags ? [ ],
extraInstallPhase ? "",
...
}@attrs:
toKodiAddon (
stdenv.mkDerivation (
{
name = "kodi-" + name;
dontStrip = true;
nativeBuildInputs = [ cmake ] ++ extraNativeBuildInputs;
buildInputs = [
kodi
kodi-platform
libcec_platform
] ++ extraBuildInputs;
inherit extraRuntimeDependencies;
# disables check ensuring install prefix is that of kodi
cmakeFlags = [
"-DOVERRIDE_PATHS=1"
] ++ extraCMakeFlags;
# kodi checks for addon .so libs existance in the addon folder (share/...)
# and the non-wrapped kodi lib/... folder before even trying to dlopen
# them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
installPhase =
let
n = namespace;
in
''
runHook preInstall
make install
[[ -f $out/lib/addons/${n}/${n}.so ]] && ln -s $out/lib/addons/${n}/${n}.so $out${addonDir}/${n}/${n}.so || true
[[ -f $out/lib/addons/${n}/${n}.so.${version} ]] && ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version} || true
${extraInstallPhase}
runHook postInstall
'';
}
// attrs
)
)