Loading pkgs/development/libraries/libiio/default.nix +39 −26 Original line number Diff line number Diff line { stdenv, fetchFromGitHub , cmake, flex, bison , libxml2, python , libusb1, runtimeShell { stdenv , fetchFromGitHub , cmake , flex , bison , libxml2 , python , libusb1 , runtimeShell }: stdenv.mkDerivation rec { pname = "libiio"; version = "0.20"; version = "0.21"; outputs = [ "out" "lib" "dev" "python" ]; src = fetchFromGitHub { owner = "analogdevicesinc"; repo = "libiio"; rev = "refs/tags/v${version}"; sha256 = "1929gvizkqmm9cwh3vihxxszfxvgcp5saq9q6chdk3fpdhzajc00"; rev = "v${version}"; sha256 = "0psw67mzysdb8fkh8xpcwicm7z94k8plkcc8ymxyvl6inshq0mc7"; }; outputs = [ "out" "lib" "dev" "python" ]; nativeBuildInputs = [ cmake flex bison ]; buildInputs = [ python libxml2 libusb1 ]; nativeBuildInputs = [ cmake flex bison ]; buildInputs = [ libxml2 libusb1 ]; cmakeFlags = [ "-DUDEV_RULES_INSTALL_DIR=${placeholder "out"}/lib/udev/rules.d" "-DPYTHON_BINDINGS=on" ]; postPatch = '' # Hardcode path to the shared library into the bindings. sed "s#@libiio@#$lib/lib/libiio${stdenv.hostPlatform.extensions.sharedLibrary}#g" ${./hardcode-library-path.patch} | patch -p1 substituteInPlace libiio.rules.cmakein \ --replace /bin/sh ${runtimeShell} ''; # since we can't expand $out in cmakeFlags preConfigure = '' cmakeFlags="$cmakeFlags -DUDEV_RULES_INSTALL_DIR=$out/etc/udev/rules.d" ''; postInstall = '' mkdir -p $python/lib/${python.libPrefix}/site-packages/ touch $python/lib/${python.libPrefix}/site-packages/ cp ../bindings/python/iio.py $python/lib/${python.libPrefix}/site-packages/ substitute ../bindings/python/iio.py $python/lib/${python.libPrefix}/site-packages/iio.py \ --replace 'libiio.so.0' $lib/lib/libiio.so.0 # Move Python bindings into a separate output. moveToOutput ${python.sitePackages} "$python" ''; meta = with stdenv.lib; { description = "API for interfacing with the Linux Industrial I/O Subsystem"; homepage = "https://github.com/analogdevicesinc/libiio"; license = licenses.lgpl21; license = licenses.lgpl21Plus; platforms = platforms.linux; maintainers = with maintainers; [ thoughtpolice ]; }; Loading pkgs/development/libraries/libiio/hardcode-library-path.patch 0 → 100644 +38 −0 Original line number Diff line number Diff line diff --git a/bindings/python/iio.py b/bindings/python/iio.py index 5306daa..f8962ee 100644 --- a/bindings/python/iio.py +++ b/bindings/python/iio.py @@ -229,9 +229,9 @@ if "Windows" in _system(): _iiolib = "libiio.dll" else: # Non-windows, possibly Posix system - _iiolib = "iio" + _iiolib = "@libiio@" -_lib = _cdll(find_library(_iiolib), use_errno=True, use_last_error=True) +_lib = _cdll(_iiolib, use_errno=True, use_last_error=True) _get_backends_count = _lib.iio_get_backends_count _get_backends_count.restype = c_uint diff --git a/bindings/python/setup.py.cmakein b/bindings/python/setup.py.cmakein index cd14e2e..516c409 100644 --- a/bindings/python/setup.py.cmakein +++ b/bindings/python/setup.py.cmakein @@ -62,7 +62,7 @@ class InstallWrapper(install): _iiolib = "libiio.dll" else: # Non-windows, possibly Posix system - _iiolib = "iio" + _iiolib = "@libiio@" try: import os @@ -72,7 +72,7 @@ class InstallWrapper(install): fulllibpath = find_recursive(destdir, "libiio.so") _lib = _cdll(fulllibpath, use_errno=True, use_last_error=True) else: - _lib = _cdll(find_library(_iiolib), use_errno=True, use_last_error=True) + _lib = _cdll(_iiolib, use_errno=True, use_last_error=True) if not _lib._name: raise OSError except OSError: Loading
pkgs/development/libraries/libiio/default.nix +39 −26 Original line number Diff line number Diff line { stdenv, fetchFromGitHub , cmake, flex, bison , libxml2, python , libusb1, runtimeShell { stdenv , fetchFromGitHub , cmake , flex , bison , libxml2 , python , libusb1 , runtimeShell }: stdenv.mkDerivation rec { pname = "libiio"; version = "0.20"; version = "0.21"; outputs = [ "out" "lib" "dev" "python" ]; src = fetchFromGitHub { owner = "analogdevicesinc"; repo = "libiio"; rev = "refs/tags/v${version}"; sha256 = "1929gvizkqmm9cwh3vihxxszfxvgcp5saq9q6chdk3fpdhzajc00"; rev = "v${version}"; sha256 = "0psw67mzysdb8fkh8xpcwicm7z94k8plkcc8ymxyvl6inshq0mc7"; }; outputs = [ "out" "lib" "dev" "python" ]; nativeBuildInputs = [ cmake flex bison ]; buildInputs = [ python libxml2 libusb1 ]; nativeBuildInputs = [ cmake flex bison ]; buildInputs = [ libxml2 libusb1 ]; cmakeFlags = [ "-DUDEV_RULES_INSTALL_DIR=${placeholder "out"}/lib/udev/rules.d" "-DPYTHON_BINDINGS=on" ]; postPatch = '' # Hardcode path to the shared library into the bindings. sed "s#@libiio@#$lib/lib/libiio${stdenv.hostPlatform.extensions.sharedLibrary}#g" ${./hardcode-library-path.patch} | patch -p1 substituteInPlace libiio.rules.cmakein \ --replace /bin/sh ${runtimeShell} ''; # since we can't expand $out in cmakeFlags preConfigure = '' cmakeFlags="$cmakeFlags -DUDEV_RULES_INSTALL_DIR=$out/etc/udev/rules.d" ''; postInstall = '' mkdir -p $python/lib/${python.libPrefix}/site-packages/ touch $python/lib/${python.libPrefix}/site-packages/ cp ../bindings/python/iio.py $python/lib/${python.libPrefix}/site-packages/ substitute ../bindings/python/iio.py $python/lib/${python.libPrefix}/site-packages/iio.py \ --replace 'libiio.so.0' $lib/lib/libiio.so.0 # Move Python bindings into a separate output. moveToOutput ${python.sitePackages} "$python" ''; meta = with stdenv.lib; { description = "API for interfacing with the Linux Industrial I/O Subsystem"; homepage = "https://github.com/analogdevicesinc/libiio"; license = licenses.lgpl21; license = licenses.lgpl21Plus; platforms = platforms.linux; maintainers = with maintainers; [ thoughtpolice ]; }; Loading
pkgs/development/libraries/libiio/hardcode-library-path.patch 0 → 100644 +38 −0 Original line number Diff line number Diff line diff --git a/bindings/python/iio.py b/bindings/python/iio.py index 5306daa..f8962ee 100644 --- a/bindings/python/iio.py +++ b/bindings/python/iio.py @@ -229,9 +229,9 @@ if "Windows" in _system(): _iiolib = "libiio.dll" else: # Non-windows, possibly Posix system - _iiolib = "iio" + _iiolib = "@libiio@" -_lib = _cdll(find_library(_iiolib), use_errno=True, use_last_error=True) +_lib = _cdll(_iiolib, use_errno=True, use_last_error=True) _get_backends_count = _lib.iio_get_backends_count _get_backends_count.restype = c_uint diff --git a/bindings/python/setup.py.cmakein b/bindings/python/setup.py.cmakein index cd14e2e..516c409 100644 --- a/bindings/python/setup.py.cmakein +++ b/bindings/python/setup.py.cmakein @@ -62,7 +62,7 @@ class InstallWrapper(install): _iiolib = "libiio.dll" else: # Non-windows, possibly Posix system - _iiolib = "iio" + _iiolib = "@libiio@" try: import os @@ -72,7 +72,7 @@ class InstallWrapper(install): fulllibpath = find_recursive(destdir, "libiio.so") _lib = _cdll(fulllibpath, use_errno=True, use_last_error=True) else: - _lib = _cdll(find_library(_iiolib), use_errno=True, use_last_error=True) + _lib = _cdll(_iiolib, use_errno=True, use_last_error=True) if not _lib._name: raise OSError except OSError: