kodiPlugins: inline commons.nix
This commit is contained in:
parent
1d64f70bd7
commit
e883b86c0e
@ -1,83 +0,0 @@
|
|||||||
{ stdenv, fetchFromGitHub
|
|
||||||
, cmake, kodiPlain, libcec_platform, tinyxml }:
|
|
||||||
|
|
||||||
rec {
|
|
||||||
|
|
||||||
pluginDir = "/share/kodi/addons";
|
|
||||||
|
|
||||||
kodi-platform = stdenv.mkDerivation rec {
|
|
||||||
project = "kodi-platform";
|
|
||||||
version = "17.1";
|
|
||||||
name = "${project}-${version}";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "xbmc";
|
|
||||||
repo = project;
|
|
||||||
rev = "c8188d82678fec6b784597db69a68e74ff4986b5";
|
|
||||||
sha256 = "1r3gs3c6zczmm66qcxh9mr306clwb3p7ykzb70r3jv5jqggiz199";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ cmake kodiPlain libcec_platform tinyxml ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
mkKodiAPIPlugin = { plugin, namespace, version, src, meta, sourceDir ? null, ... }:
|
|
||||||
stdenv.lib.makeOverridable stdenv.mkDerivation rec {
|
|
||||||
|
|
||||||
inherit src meta sourceDir;
|
|
||||||
|
|
||||||
name = "kodi-plugin-${plugin}-${version}";
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
kodiPlugin = pluginDir;
|
|
||||||
namespace = namespace;
|
|
||||||
};
|
|
||||||
|
|
||||||
dontStrip = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
${if isNull sourceDir then "" else "cd $src/$sourceDir"}
|
|
||||||
d=$out${pluginDir}/${namespace}
|
|
||||||
mkdir -p $d
|
|
||||||
sauce="."
|
|
||||||
[ -d ${namespace} ] && sauce=${namespace}
|
|
||||||
cp -R "$sauce/"* $d
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
mkKodiPlugin = mkKodiAPIPlugin;
|
|
||||||
|
|
||||||
mkKodiABIPlugin = { plugin, namespace, version, src, meta
|
|
||||||
, extraBuildInputs ? [], sourceDir ? null, ... }:
|
|
||||||
stdenv.lib.makeOverridable stdenv.mkDerivation rec {
|
|
||||||
|
|
||||||
inherit src meta sourceDir;
|
|
||||||
|
|
||||||
name = "kodi-plugin-${plugin}-${version}";
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
kodiPlugin = pluginDir;
|
|
||||||
namespace = namespace;
|
|
||||||
};
|
|
||||||
|
|
||||||
dontStrip = true;
|
|
||||||
|
|
||||||
buildInputs = [ cmake kodiPlain kodi-platform libcec_platform ]
|
|
||||||
++ extraBuildInputs;
|
|
||||||
|
|
||||||
# disables check ensuring install prefix is that of kodi
|
|
||||||
cmakeFlags = [
|
|
||||||
"-DOVERRIDE_PATHS=1"
|
|
||||||
];
|
|
||||||
|
|
||||||
# kodi checks for plugin .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 ''
|
|
||||||
make install
|
|
||||||
ln -s $out/lib/addons/${n}/${n}.so.${version} $out/${pluginDir}/${n}/${n}.so.${version}
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,10 +1,84 @@
|
|||||||
{ stdenv, callPackage, fetchurl, fetchFromGitHub, unzip
|
{ stdenv, callPackage, fetchurl, fetchFromGitHub, unzip
|
||||||
|
, cmake, kodiPlain, libcec_platform, tinyxml
|
||||||
, steam, libusb, pcre-cpp, jsoncpp, libhdhomerun, zlib }:
|
, steam, libusb, pcre-cpp, jsoncpp, libhdhomerun, zlib }:
|
||||||
|
|
||||||
with (callPackage ./commons.nix {});
|
|
||||||
|
|
||||||
rec {
|
rec {
|
||||||
|
|
||||||
|
pluginDir = "/share/kodi/addons";
|
||||||
|
|
||||||
|
kodi-platform = stdenv.mkDerivation rec {
|
||||||
|
project = "kodi-platform";
|
||||||
|
version = "17.1";
|
||||||
|
name = "${project}-${version}";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "xbmc";
|
||||||
|
repo = project;
|
||||||
|
rev = "c8188d82678fec6b784597db69a68e74ff4986b5";
|
||||||
|
sha256 = "1r3gs3c6zczmm66qcxh9mr306clwb3p7ykzb70r3jv5jqggiz199";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ cmake kodiPlain libcec_platform tinyxml ];
|
||||||
|
};
|
||||||
|
|
||||||
|
mkKodiPlugin = { plugin, namespace, version, src, meta, sourceDir ? null, ... }:
|
||||||
|
stdenv.lib.makeOverridable stdenv.mkDerivation rec {
|
||||||
|
|
||||||
|
inherit src meta sourceDir;
|
||||||
|
|
||||||
|
name = "kodi-plugin-${plugin}-${version}";
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
kodiPlugin = pluginDir;
|
||||||
|
namespace = namespace;
|
||||||
|
};
|
||||||
|
|
||||||
|
dontStrip = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
${if isNull sourceDir then "" else "cd $src/$sourceDir"}
|
||||||
|
d=$out${pluginDir}/${namespace}
|
||||||
|
mkdir -p $d
|
||||||
|
sauce="."
|
||||||
|
[ -d ${namespace} ] && sauce=${namespace}
|
||||||
|
cp -R "$sauce/"* $d
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
mkKodiABIPlugin = { plugin, namespace, version, src, meta
|
||||||
|
, extraBuildInputs ? [], sourceDir ? null, ... }:
|
||||||
|
stdenv.lib.makeOverridable stdenv.mkDerivation rec {
|
||||||
|
|
||||||
|
inherit src meta sourceDir;
|
||||||
|
|
||||||
|
name = "kodi-plugin-${plugin}-${version}";
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
kodiPlugin = pluginDir;
|
||||||
|
namespace = namespace;
|
||||||
|
};
|
||||||
|
|
||||||
|
dontStrip = true;
|
||||||
|
|
||||||
|
buildInputs = [ cmake kodiPlain kodi-platform libcec_platform ]
|
||||||
|
++ extraBuildInputs;
|
||||||
|
|
||||||
|
# disables check ensuring install prefix is that of kodi
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DOVERRIDE_PATHS=1"
|
||||||
|
];
|
||||||
|
|
||||||
|
# kodi checks for plugin .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 ''
|
||||||
|
make install
|
||||||
|
ln -s $out/lib/addons/${n}/${n}.so.${version} $out${pluginDir}/${n}/${n}.so.${version}
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
advanced-launcher = mkKodiPlugin rec {
|
advanced-launcher = mkKodiPlugin rec {
|
||||||
|
|
||||||
plugin = "advanced-launcher";
|
plugin = "advanced-launcher";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user