diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/c-ares')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/c-ares/default.nix | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/c-ares/default.nix b/nixpkgs/pkgs/development/libraries/c-ares/default.nix new file mode 100644 index 000000000000..20bcf80d9e59 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/c-ares/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchurl, writeTextDir }: + +# Note: this package is used for bootstrapping fetchurl, and thus +# cannot use fetchpatch! All mutable patches (generated by GitHub or +# cgit) that are needed here should be included directly in Nixpkgs as +# files. + +let self = +stdenv.mkDerivation rec { + pname = "c-ares"; + version = "1.17.1"; + + src = fetchurl { + url = "https://c-ares.haxx.se/download/${pname}-${version}.tar.gz"; + sha256 = "0h7wjfnk2092glqcp9mqaax7xx0s13m501z1gi0gsjl2vvvd0gfp"; + }; + + meta = with lib; { + description = "A C library for asynchronous DNS requests"; + homepage = "https://c-ares.haxx.se"; + license = licenses.mit; + platforms = platforms.all; + }; + + # Adapted from running a cmake build + passthru.cmake-config = writeTextDir "c-ares-config.cmake" + '' + set(c-ares_INCLUDE_DIR "${self}/include") + + set(c-ares_LIBRARY c-ares::cares) + + add_library(c-ares::cares SHARED IMPORTED) + + set_target_properties(c-ares::cares PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${self}/include" + ${lib.optionalString stdenv.isLinux ''INTERFACE_LINK_LIBRARIES "nsl;rt"''} + ) + set_property(TARGET c-ares::cares APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties(c-ares::cares PROPERTIES + IMPORTED_LOCATION_RELEASE "${self}/lib/libcares${stdenv.targetPlatform.extensions.sharedLibrary}" + IMPORTED_SONAME_RELEASE "libcares${stdenv.targetPlatform.extensions.sharedLibrary}" + ) + add_library(c-ares::cares_shared INTERFACE IMPORTED) + set_target_properties(c-ares::cares_shared PROPERTIES INTERFACE_LINK_LIBRARIES "c-ares::cares") + set(c-ares_SHARED_LIBRARY c-ares::cares_shared) + ''; + +}; in self |