From 89f0ae0b70a0dbf21947db3606f7c0ba73030ad5 Mon Sep 17 00:00:00 2001 From: Alexander Kiselyov Date: Wed, 5 Jan 2022 20:44:38 +0300 Subject: [PATCH] cxxopts: unstable-2020-12-14 -> 3.0.0 --- .../development/libraries/cxxopts/default.nix | 22 +++++++++++++------ .../libraries/cxxopts/fix-install-path.patch | 18 +++++++++++++++ 2 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 pkgs/development/libraries/cxxopts/fix-install-path.patch diff --git a/pkgs/development/libraries/cxxopts/default.nix b/pkgs/development/libraries/cxxopts/default.nix index 855a9eef8ea0..9d3ea6f32de3 100644 --- a/pkgs/development/libraries/cxxopts/default.nix +++ b/pkgs/development/libraries/cxxopts/default.nix @@ -1,21 +1,29 @@ -{ cmake, fetchFromGitHub, icu, lib, pkg-config, stdenv, enableUnicodeHelp ? true }: +{ lib +, stdenv +, fetchFromGitHub +, cmake +, icu +, pkg-config +, enableUnicodeHelp ? true +}: stdenv.mkDerivation rec { name = "cxxopts"; - version = "unstable-2020-12-14"; + version = "3.0.0"; src = fetchFromGitHub { owner = "jarro2783"; repo = name; - rev = "2d8e17c4f88efce80e274cb03eeb902e055a91d3"; - sha256 = "0pwrac81zfqjs17g3hx8r3ds2xf04npb6mz111qjy4bx17314ib7"; + rev = "v${version}"; + sha256 = "08x7j168l1xwj0r3rv89cgghmfhsx98lpq35r3vkh504m1pd55a6"; }; + # CMake does not set CMAKE_LIBRARY_ARCHITECTURE variable in Nix, which breaks architecture-independent library path generation + patches = [ ./fix-install-path.patch ]; + buildInputs = lib.optional enableUnicodeHelp [ icu.dev ]; cmakeFlags = [ "-DCXXOPTS_BUILD_EXAMPLES=OFF" ] - ++ lib.optional enableUnicodeHelp "-DCXXOPTS_USE_UNICODE_HELP=TRUE" - # Due to -Wsuggest-override, remove when cxxopts is updated - ++ lib.optional stdenv.isDarwin "-DCXXOPTS_ENABLE_WARNINGS=OFF"; + ++ lib.optional enableUnicodeHelp "-DCXXOPTS_USE_UNICODE_HELP=TRUE"; nativeBuildInputs = [ cmake ] ++ lib.optional enableUnicodeHelp [ pkg-config ]; doCheck = true; diff --git a/pkgs/development/libraries/cxxopts/fix-install-path.patch b/pkgs/development/libraries/cxxopts/fix-install-path.patch new file mode 100644 index 000000000000..d91e3fb6dc18 --- /dev/null +++ b/pkgs/development/libraries/cxxopts/fix-install-path.patch @@ -0,0 +1,18 @@ +diff --git a/cmake/cxxopts.cmake b/cmake/cxxopts.cmake +index 46e87ba..0ead543 100644 +--- a/cmake/cxxopts.cmake ++++ b/cmake/cxxopts.cmake +@@ -87,7 +87,12 @@ endfunction() + + # Helper function to ecapsulate install logic + function(cxxopts_install_logic) +- string(REPLACE "/${CMAKE_LIBRARY_ARCHITECTURE}" "" CMAKE_INSTALL_LIBDIR_ARCHIND "${CMAKE_INSTALL_LIBDIR}") ++ if(CMAKE_LIBRARY_ARCHITECTURE) ++ string(REPLACE "/${CMAKE_LIBRARY_ARCHITECTURE}" "" CMAKE_INSTALL_LIBDIR_ARCHIND "${CMAKE_INSTALL_LIBDIR}") ++ else() ++ # On some systems (e.g. NixOS), `CMAKE_LIBRARY_ARCHITECTURE` can be empty ++ set(CMAKE_INSTALL_LIBDIR_ARCHIND "${CMAKE_INSTALL_LIBDIR}") ++ endif() + set(CXXOPTS_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR_ARCHIND}/cmake/cxxopts" CACHE STRING "Installation directory for cmake files, relative to ${CMAKE_INSTALL_PREFIX}.") + set(version_config "${PROJECT_BINARY_DIR}/cxxopts-config-version.cmake") + set(project_config "${PROJECT_BINARY_DIR}/cxxopts-config.cmake")