如何 link Google 使用 premake5 进行测试

How to link Google Test with premake5

我想 link Google 测试 (https://github.com/google/googletest) 我的项目。我在以下目录中添加了 gtest 作为子模块:
%{wks.location}/sengine/vendor/gtest
我在 gtest 目录中有以下 premake5 脚本:

project "gtest"
kind "StaticLib"
language "C++"

targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")

files
{
    "googletest/include/gtest/**.h",
    "googletest/src/gtest-all.cc",
}

filter "system:windows"
    systemversion "latest"
    cppdialect "C++17"
    staticruntime "On"

filter "configurations:Debug"
    runtime "Debug"
    symbols "on"

filter "configurations:Release"
    runtime "Release"
    optimize "on"

这样的错误揭晓:

D:\dev\sengine\sengine\vendor\gtest\googletest\src\gtest-all.cc(38,10): fatal error C1083: Cannot open include file: 'gtest/gtest.h': No such file or directory

我真的不知道应该如何更改我的脚本,这样我就可以像这样包含 gtest.h:

#include <gtest/gtest.h>

googletest 期望目录 googletest/include dir 是根包含目录。您可以推断出这一点,因为使用了 <>(与 "" 相比,用于项目中的相对路径)并且路径是相对于此目录在 gtest-all.cc.

中给出的

我更多地使用 CMake,没有使用 premake5 的经验,但通常您需要手动指定 include 目录根目录。

显然premake5有类似的机制:Include directories