diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gtest')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gtest/default.nix | 46 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gtest/fix-cmake-config-includedir.patch | 34 |
2 files changed, 80 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gtest/default.nix b/nixpkgs/pkgs/development/libraries/gtest/default.nix new file mode 100644 index 000000000000..80013e3613d0 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gtest/default.nix @@ -0,0 +1,46 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, ninja +, static ? stdenv.hostPlatform.isStatic, +}: + +stdenv.mkDerivation rec { + pname = "gtest"; + version = "1.12.1"; + + outputs = [ "out" "dev" ]; + + src = fetchFromGitHub { + owner = "google"; + repo = "googletest"; + rev = "release-${version}"; + hash = "sha256-W+OxRTVtemt2esw4P7IyGWXOonUN5ZuscjvzqkYvZbM="; + }; + + patches = [ + ./fix-cmake-config-includedir.patch + ]; + + nativeBuildInputs = [ cmake ninja ]; + + cmakeFlags = [ + "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" + ] ++ lib.optionals ( + (stdenv.cc.isGNU && (lib.versionOlder stdenv.cc.version "11.0")) + || (stdenv.cc.isClang && (lib.versionOlder stdenv.cc.version "16.0")) + ) [ + # Enable C++17 support + # https://github.com/google/googletest/issues/3081 + "-DCMAKE_CXX_STANDARD=17" + ]; + + meta = with lib; { + description = "Google's framework for writing C++ tests"; + homepage = "https://github.com/google/googletest"; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = with maintainers; [ ivan-tkatchev ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gtest/fix-cmake-config-includedir.patch b/nixpkgs/pkgs/development/libraries/gtest/fix-cmake-config-includedir.patch new file mode 100644 index 000000000000..573884fdcbcd --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gtest/fix-cmake-config-includedir.patch @@ -0,0 +1,34 @@ +diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt +index 5c1f0daf..ed8aae58 100644 +--- a/googlemock/CMakeLists.txt ++++ b/googlemock/CMakeLists.txt +@@ -108,10 +108,10 @@ if (DEFINED CMAKE_VERSION AND NOT "${CMAKE_VERSION}" VERSION_LESS "2.8.11") + string(REPLACE ";" "$<SEMICOLON>" dirs "${gmock_build_include_dirs}") + target_include_directories(gmock SYSTEM INTERFACE + "$<BUILD_INTERFACE:${dirs}>" +- "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>") ++ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>") + target_include_directories(gmock_main SYSTEM INTERFACE + "$<BUILD_INTERFACE:${dirs}>" +- "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>") ++ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>") + endif() + + ######################################################################## +diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt +index aa00a5f3..50434fed 100644 +--- a/googletest/CMakeLists.txt ++++ b/googletest/CMakeLists.txt +@@ -134,10 +134,10 @@ if (DEFINED CMAKE_VERSION AND NOT "${CMAKE_VERSION}" VERSION_LESS "2.8.11") + string(REPLACE ";" "$<SEMICOLON>" dirs "${gtest_build_include_dirs}") + target_include_directories(gtest SYSTEM INTERFACE + "$<BUILD_INTERFACE:${dirs}>" +- "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>") ++ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>") + target_include_directories(gtest_main SYSTEM INTERFACE + "$<BUILD_INTERFACE:${dirs}>" +- "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>") ++ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>") + endif() + if(CMAKE_SYSTEM_NAME MATCHES "QNX") + target_link_libraries(gtest PUBLIC regex) |