40 lines
1.3 KiB
Nix
40 lines
1.3 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))
|