Skip to content

Commit 9f939a5

Browse files
gtest: update to 1.17.0 (#7672)
* gtest: update to 1.17.0 * fixup * Use `set_languages("%s")` once * Update xmake.lua * Just test shared build for windows os --------- Co-authored-by: star9029 <hengxings783@gmail.com>
1 parent 53a6969 commit 9f939a5

File tree

1 file changed

+33
-11
lines changed

1 file changed

+33
-11
lines changed

packages/g/gtest/xmake.lua

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package("gtest")
55

66
add_urls("https://github.com/google/googletest/archive/refs/tags/$(version).zip", {alias = "archive"})
77
add_urls("https://github.com/google/googletest.git", {alias = "github"})
8+
89
add_versions("github:v1.8.1", "release-1.8.1")
910
add_versions("archive:v1.8.1", "927827c183d01734cc5cfef85e0ff3f5a92ffe6188e0d18e909c5efebf28a0c7")
1011
add_versions("github:v1.10.0", "release-1.10.0")
@@ -15,10 +16,12 @@ package("gtest")
1516
add_versions("archive:v1.12.0", "ce7366fe57eb49928311189cb0e40e0a8bf3d3682fca89af30d884c25e983786")
1617
add_versions("github:v1.12.1", "release-1.12.1")
1718
add_versions("archive:v1.12.1", "24564e3b712d3eb30ac9a85d92f7d720f60cc0173730ac166f27dda7fed76cb2")
19+
1820
add_versions("v1.13.0", "ffa17fbc5953900994e2deec164bb8949879ea09b411e07f215bfbb1f87f4632")
1921
add_versions("v1.14.0", "1f357c27ca988c3f7c6b4bf68a9395005ac6761f034046e9dde0896e3aba00e4")
2022
add_versions("v1.15.2", "f179ec217f9b3b3f3c6e8b02d3e7eda997b49e4ce26d6b235c9053bec9c0bf9f")
2123
add_versions("v1.16.0", "a9607c9215866bd425a725610c5e0f739eeb50887a57903df48891446ce6fb3c")
24+
add_versions("v1.17.0", "40d4ec942217dcc84a9ebe2a68584ada7d4a33a8ee958755763278ea1c5e18ff")
2225

2326
add_configs("main", {description = "Link to the gtest_main entry point.", default = false, type = "boolean"})
2427
add_configs("gmock", {description = "Link to the googlemock library.", default = true, type = "boolean"})
@@ -27,35 +30,54 @@ package("gtest")
2730
add_syslinks("pthread")
2831
end
2932

33+
on_load(function (package)
34+
if package:config("shared") and package:is_plat("windows") then
35+
package:add("defines", "GTEST_LINKED_AS_SHARED_LIBRARY=1")
36+
end
37+
end)
38+
3039
on_install(function (package)
31-
io.writefile("xmake.lua", [[
40+
local std = "cxx14"
41+
if package:version() and package:version():gt("1.16.0") then
42+
std = "cxx17"
43+
end
44+
io.writefile("xmake.lua", format([[
45+
set_languages("%s")
3246
target("gtest")
33-
set_kind("static")
34-
set_languages("cxx14")
47+
set_kind("$(kind)")
3548
add_files("googletest/src/gtest-all.cc")
3649
add_includedirs("googletest/include", "googletest")
3750
add_headerfiles("googletest/include/(**.h)")
51+
if is_kind("shared") and is_plat("windows") then
52+
add_defines("GTEST_CREATE_SHARED_LIBRARY=1")
53+
end
3854
3955
target("gtest_main")
40-
set_kind("static")
41-
set_languages("cxx14")
56+
set_kind("$(kind)")
4257
set_default(]] .. tostring(package:config("main")) .. [[)
4358
add_files("googletest/src/gtest_main.cc")
4459
add_includedirs("googletest/include", "googletest")
45-
add_headerfiles("googletest/include/(**.h)")
60+
add_deps("gtest")
4661
4762
target("gmock")
48-
set_kind("static")
49-
set_languages("cxx14")
63+
set_kind("$(kind)")
5064
set_default(]] .. tostring(package:config("gmock")) .. [[)
5165
add_files("googlemock/src/gmock-all.cc")
5266
add_includedirs("googlemock/include", "googlemock", "googletest/include", "googletest")
5367
add_headerfiles("googlemock/include/(**.h)")
54-
]])
68+
if is_kind("shared") and is_plat("windows") then
69+
add_defines("GTEST_CREATE_SHARED_LIBRARY=1")
70+
end
71+
add_deps("gtest")
72+
]], std))
5573
import("package.tools.xmake").install(package)
5674
end)
5775

5876
on_test(function (package)
77+
local std = "c++14"
78+
if package:version() and package:version():gt("1.16.0") then
79+
std = "c++17"
80+
end
5981
assert(package:check_cxxsnippets({test = [[
6082
int factorial(int number) { return number <= 1 ? number : factorial(number - 1) * number; }
6183
TEST(FactorialTest, Zero) {
@@ -65,7 +87,7 @@ package("gtest")
6587
EXPECT_EQ(6, factorial(3));
6688
EXPECT_EQ(3628800, factorial(10));
6789
}
68-
]]}, {configs = {languages = "c++14"}, includes = "gtest/gtest.h"}))
90+
]]}, {configs = {languages = std}, includes = "gtest/gtest.h"}))
6991

7092
if package:config("gmock") then
7193
assert(package:check_cxxsnippets({test = [[
@@ -97,6 +119,6 @@ package("gtest")
97119
98120
EXPECT_TRUE(b_obj.b_foo());
99121
}
100-
]]}, {configs = {languages = "c++14"}, includes = {"gtest/gtest.h", "gmock/gmock.h"}}))
122+
]]}, {configs = {languages = std}, includes = {"gtest/gtest.h", "gmock/gmock.h"}}))
101123
end
102124
end)

0 commit comments

Comments
 (0)