summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorAlexander Kiselyov <aleksandr.kiselyov@gmail.com>2022-01-05 20:44:38 +0300
committerAlexander Kiselyov <aleksandr.kiselyov@gmail.com>2022-01-05 20:44:38 +0300
commit89f0ae0b70a0dbf21947db3606f7c0ba73030ad5 (patch)
treea1bcf662f6f4c13756f95abd67d53fc226fd15cf /pkgs
parentd4b954f87cb2daeae2e3198f26a16bb908a9bb6e (diff)
downloadnixpkgs-89f0ae0b70a0dbf21947db3606f7c0ba73030ad5.tar
nixpkgs-89f0ae0b70a0dbf21947db3606f7c0ba73030ad5.tar.gz
nixpkgs-89f0ae0b70a0dbf21947db3606f7c0ba73030ad5.tar.bz2
nixpkgs-89f0ae0b70a0dbf21947db3606f7c0ba73030ad5.tar.lz
nixpkgs-89f0ae0b70a0dbf21947db3606f7c0ba73030ad5.tar.xz
nixpkgs-89f0ae0b70a0dbf21947db3606f7c0ba73030ad5.tar.zst
nixpkgs-89f0ae0b70a0dbf21947db3606f7c0ba73030ad5.zip
cxxopts: unstable-2020-12-14 -> 3.0.0
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/libraries/cxxopts/default.nix22
-rw-r--r--pkgs/development/libraries/cxxopts/fix-install-path.patch18
2 files changed, 33 insertions, 7 deletions
diff --git a/pkgs/development/libraries/cxxopts/default.nix b/pkgs/development/libraries/cxxopts/default.nix
index 855a9eef8ea..9d3ea6f32de 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 00000000000..d91e3fb6dc1
--- /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")