Premake5 编译额外的可执行文件
Premake5 compiling additional executables
我对 premake atm 有点困惑。我想添加多个测试文件,即 运行 测试。这些可执行文件彼此完全独立,并且与实际生成最终可执行文件的 main.cpp 文件完全独立。
我不是 100% 确定如何指示预编译 assemble 构建测试命令。我已阅读有关模块和操作的内容,但我不完全确定它们是否满足我的需要。
关于模块的文档似乎并未暗示这是它们的预期目的。
假设这是我想要的测试运行:
#include "gtest/gtest.h"
TEST(DummyTest, Negative) {
EXPECT_EQ(1, 0);
EXPECT_EQ(1, 1);
EXPECT_GT(93, 0);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
我如何告诉 premake 编译并 link 这个文件独立地创建一个独立的可执行文件?
您需要为每个要构建的可执行文件创建一个项目。
workspace "MyWorkspace"
-- settings
project "MyProject"
-- settings
project "DummyTest"
-- settings
-- repeat as needed
您发现创建一个可以为您设置这些测试项目的函数很有用。
function testProject(name)
project(name)
kind "ConsoleExe"
-- etc.
end
testProject("DummyTest1")
testProject("DummyTest2")
如果您使用 Visual Studio,您可能希望使用 workspace group 在您的工作区内组织这些测试项目。
我对 premake atm 有点困惑。我想添加多个测试文件,即 运行 测试。这些可执行文件彼此完全独立,并且与实际生成最终可执行文件的 main.cpp 文件完全独立。
我不是 100% 确定如何指示预编译 assemble 构建测试命令。我已阅读有关模块和操作的内容,但我不完全确定它们是否满足我的需要。
关于模块的文档似乎并未暗示这是它们的预期目的。
假设这是我想要的测试运行:
#include "gtest/gtest.h"
TEST(DummyTest, Negative) {
EXPECT_EQ(1, 0);
EXPECT_EQ(1, 1);
EXPECT_GT(93, 0);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
我如何告诉 premake 编译并 link 这个文件独立地创建一个独立的可执行文件?
您需要为每个要构建的可执行文件创建一个项目。
workspace "MyWorkspace"
-- settings
project "MyProject"
-- settings
project "DummyTest"
-- settings
-- repeat as needed
您发现创建一个可以为您设置这些测试项目的函数很有用。
function testProject(name)
project(name)
kind "ConsoleExe"
-- etc.
end
testProject("DummyTest1")
testProject("DummyTest2")
如果您使用 Visual Studio,您可能希望使用 workspace group 在您的工作区内组织这些测试项目。