indilib: add third-party driver support

This commit is contained in:
Hunter Jones 2021-02-27 13:24:15 -06:00
parent d2b35b0fc6
commit ba8e2b7a25
6 changed files with 92 additions and 16 deletions

View File

@ -1,4 +1,5 @@
{ lib, stdenv { stdenv
, lib
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
, cfitsio , cfitsio
@ -23,10 +24,6 @@ stdenv.mkDerivation rec {
sha256 = "sha256-WTRfV6f764tDGKnQVd1jeYN/qXa/VRTFK0mMalc+9aU="; sha256 = "sha256-WTRfV6f764tDGKnQVd1jeYN/qXa/VRTFK0mMalc+9aU=";
}; };
patches = [
./udev-dir.patch
];
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
]; ];
@ -43,6 +40,11 @@ stdenv.mkDerivation rec {
fftw fftw
]; ];
cmakeFlags = [
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d"
];
meta = with lib; { meta = with lib; {
homepage = "https://www.indilib.org/"; homepage = "https://www.indilib.org/";
description = "Implementation of the INDI protocol for POSIX operating systems"; description = "Implementation of the INDI protocol for POSIX operating systems";

View File

@ -0,0 +1,63 @@
{ stdenv
, lib
, fetchFromGitHub
, cmake
, cfitsio
, libusb1
, zlib
, boost
, libnova
, curl
, libjpeg
, gsl
, fftw
, indilib
, libgphoto2
, libraw
, libftdi1
, libdc1394
, gpsd
, ffmpeg
}:
stdenv.mkDerivation rec {
pname = "indi-3rdparty";
version = "1.8.8";
src = fetchFromGitHub {
owner = "indilib";
repo = pname;
rev = "v${version}";
sha256 = "18ii9qsghrvj8y4y6c7bx6kjradybnmyq8i5phj7pv4r8w91rq7g";
};
cmakeFlags = [
"-DINDI_DATA_DIR=\${CMAKE_INSTALL_PREFIX}/share/indi"
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d"
"-DRULES_INSTALL_DIR=lib/udev/rules.d"
"-DWITH_SX=off"
"-DWITH_SBIG=off"
"-DWITH_APOGEE=off"
"-DWITH_FISHCAMP=off"
"-DWITH_DSI=off"
"-DWITH_QHY=off"
"-DWITH_ARMADILLO=off"
"-DWITH_PENTAX=off"
];
nativeBuildInputs = [ cmake ];
buildInputs = [
indilib libnova curl cfitsio libusb1 zlib boost gsl gpsd
libjpeg libgphoto2 libraw libftdi1 libdc1394 ffmpeg fftw
];
meta = with lib; {
homepage = "https://www.indilib.org/";
description = "Third party drivers for the INDI astronomical software suite";
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ hjones2199 ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -0,0 +1,11 @@
{ callPackage, indilib, indi-3rdparty }:
let
indi-with-drivers = ./indi-with-drivers.nix;
in
callPackage indi-with-drivers {
pkgName = "indi-full";
extraDrivers = [
indi-3rdparty
];
}

View File

@ -0,0 +1,9 @@
{ buildEnv, indilib ? indilib, extraDrivers ? null , pkgName ? "indi-with-drivers" }:
buildEnv {
name = pkgName;
paths = [
indilib
]
++ extraDrivers;
}

View File

@ -1,11 +0,0 @@
--- indi-1.8.6/CMakeLists.txt 2020-08-21 05:56:59.000000000 -0500
+++ CMakeLists.txt 2020-11-01 12:50:57.621293870 -0600
@@ -77,7 +77,7 @@
## the following are directories where stuff will be installed to
set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/")
set(PKGCONFIG_INSTALL_PREFIX "${CMAKE_INSTALL_LIBDIR}/pkgconfig/")
-set(UDEVRULES_INSTALL_DIR "/lib/udev/rules.d" CACHE STRING "Base directory for udev rules")
+set(UDEVRULES_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/udev/rules.d" CACHE STRING "Base directory for udev rules")
set(PKG_CONFIG_LIBDIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})

View File

@ -14495,6 +14495,8 @@ in
indicator-application-gtk3 = callPackage ../development/libraries/indicator-application/gtk3.nix { }; indicator-application-gtk3 = callPackage ../development/libraries/indicator-application/gtk3.nix { };
indilib = callPackage ../development/libraries/indilib { }; indilib = callPackage ../development/libraries/indilib { };
indi-3rdparty = callPackage ../development/libraries/indilib/indi-3rdparty.nix { };
indi-full = callPackage ../development/libraries/indilib/indi-full.nix { };
inih = callPackage ../development/libraries/inih { }; inih = callPackage ../development/libraries/inih { };