diff --git a/pkgs/development/libraries/liquid-dsp/default.nix b/pkgs/development/libraries/liquid-dsp/default.nix index 583d44001d91..d3319c2af117 100644 --- a/pkgs/development/libraries/liquid-dsp/default.nix +++ b/pkgs/development/libraries/liquid-dsp/default.nix @@ -1,44 +1,43 @@ { lib, stdenv, + cmake, fetchFromGitHub, autoreconfHook, - cctools, autoSignDarwinBinariesHook, fixDarwinDylibNames, }: stdenv.mkDerivation rec { pname = "liquid-dsp"; - version = "1.6.0"; + version = "1.8.0"; src = fetchFromGitHub { owner = "jgaeddert"; repo = "liquid-dsp"; rev = "v${version}"; - sha256 = "sha256-3UKAwhYaYZ42+d+wiW/AB6x5TSOel8d++d3HeZqAg/8="; + sha256 = "sha256-IvWtoXuuIvpJfY4cyRUsPHgax2/aytYShSdxEStiPYI="; }; - configureFlags = - lib.optionals stdenv.hostPlatform.isDarwin [ - "LIBTOOL=${cctools}/bin/libtool" - ] - ++ [ - # Prevent native cpu arch from leaking into binaries. This might lead to - # poor performance, but having portable and working executables is more - # important. - (lib.enableFeature true "simdoverride") - ]; + cmakeFlags = [ + # Prevent native cpu arch from leaking into binaries. + (lib.cmakeBool "ENABLE_SIMD" false) + (lib.cmakeBool "FIND_SIMD" false) + ]; nativeBuildInputs = [ - autoreconfHook + cmake ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - cctools autoSignDarwinBinariesHook fixDarwinDylibNames ]; + patches = [ + ./fix-cmake-pc-paths.patch + ./include-stdarg.patch + ]; + meta = { homepage = "https://liquidsdr.org/"; description = "Digital signal processing library for software-defined radios"; diff --git a/pkgs/development/libraries/liquid-dsp/fix-cmake-pc-paths.patch b/pkgs/development/libraries/liquid-dsp/fix-cmake-pc-paths.patch new file mode 100644 index 000000000000..ed4d01061dc3 --- /dev/null +++ b/pkgs/development/libraries/liquid-dsp/fix-cmake-pc-paths.patch @@ -0,0 +1,29 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 07c123889..a6640515c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -564,6 +564,9 @@ if (fftw3f_FOUND) + string(APPEND LIQUID_PC_LIBS_PRIVATE " -lfftw3f") + endif() + ++cmake_path(APPEND libdir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_LIBDIR}") ++cmake_path(APPEND includedir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}") ++ + configure_file( + cmake/liquid-dsp.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/liquid-dsp.pc +diff --git a/cmake/liquid-dsp.pc.in b/cmake/liquid-dsp.pc.in +index 93597a7e4..06de85dee 100644 +--- a/cmake/liquid-dsp.pc.in ++++ b/cmake/liquid-dsp.pc.in +@@ -2,8 +2,8 @@ + + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix} +-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ +-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ ++libdir=@libdir_for_pc_file@ ++includedir=@includedir_for_pc_file@ + + Name: liquid-dsp + Description: Software-defined radio digital signal processing library diff --git a/pkgs/development/libraries/liquid-dsp/include-stdarg.patch b/pkgs/development/libraries/liquid-dsp/include-stdarg.patch new file mode 100644 index 000000000000..3eb68b99e636 --- /dev/null +++ b/pkgs/development/libraries/liquid-dsp/include-stdarg.patch @@ -0,0 +1,12 @@ +diff --git a/include/liquid.h b/include/liquid.h +index 290778b50..52d898d07 100644 +--- a/include/liquid.h ++++ b/include/liquid.h +@@ -34,6 +34,7 @@ extern "C" { + #include + #include + #include ++#include + + // compile-time short file path: use __FILE_NAME__ if available (Clang 9+, GCC 12+) + #ifdef __FILE_NAME__