{ 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 existence 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 ) )