1 class Googletest < Formula
2 desc "Google Testing and Mocking Framework"
3 homepage "https://github.com/google/googletest"
4 url "https://github.com/google/googletest/archive/refs/tags/v1.16.0.tar.gz"
5 sha256 "78c676fc63881529bf97bf9d45948d905a66833fbfa5318ea2cd7478cb98f399"
7 head "https://github.com/google/googletest.git", branch: "main"
10 sha256 cellar: :any_skip_relocation, arm64_sequoia: "190d3bd68d4bf26da5f36dc32e88011643e84aef8196edebbbcbf757d08d2c2a"
11 sha256 cellar: :any_skip_relocation, arm64_sonoma: "6a6de6e806ca44915576aafb65d50d1b58ab4f337560a02c8780a3b9fe8c1010"
12 sha256 cellar: :any_skip_relocation, arm64_ventura: "7ef1cc29975aac943340518a6057af030da284f73cc6122fa6bc1127bfc8d5e0"
13 sha256 cellar: :any_skip_relocation, sonoma: "71bf77319c7b3c51b22f28cb3a91f833ea89dec750fbb76a45827d6f834ac56e"
14 sha256 cellar: :any_skip_relocation, ventura: "146609ea00020a57519b405cfa3e0247aad824fd83779190af4bd6d1f9fd7067"
15 sha256 cellar: :any_skip_relocation, x86_64_linux: "4b1e5b95cd807d28a81a8380cc1c05823e211daa8a0bada47215d3275f2b0385"
18 depends_on "cmake" => :build
21 system "cmake", "-S", ".", "-B", "build",
22 "-DCMAKE_CXX_STANDARD=17", *std_cmake_args
23 system "cmake", "--build", "build"
24 system "cmake", "--install", "build"
26 # for use case like `#include "googletest/googletest/src/gtest-all.cc"`
27 (include/"googlemock/googlemock/src").install Dir["googlemock/src/*"]
28 (include/"googletest/googletest/src").install Dir["googletest/src/*"]
32 (testpath/"test.cpp").write <<~CPP
34 #include <string_view>
36 #include <gtest/gtest.h>
37 #include <gtest/gtest-death-test.h>
38 #include "gmock/gmock.h"
44 TEST(Simple, Cpp17StringView)
46 const char* c = "test";
48 std::string_view sv{s};
49 std::vector<std::string_view> vsv{sv};
51 EXPECT_EQ(sv, s.c_str());
52 EXPECT_EQ(sv, "test");
53 EXPECT_THAT(vsv, testing::ElementsAre("test"));
56 system ENV.cxx, "test.cpp", "-std=c++17", "-L#{lib}", "-lgtest", "-lgtest_main", "-pthread", "-o", "test"