不知何故,我正在努力找出是否可以在CMake中定义导入的库,指定目标属性(include_directories和库路径),并希望一旦我将该项目添加到另一个项目中的target_link_libraries,CMake将附加包含目录.
假设我在一个名为Module-Conf.cmake的文件中有一个导入的库:
add_library(mymodule STATIC IMPORTED)
set_target_properties(mymodule PROPERTIES IMPORTED_LOCATION "${OUTPUT_DIR}/lib")
set_target_properties(mymodule PROPERTIES INCLUDE_DIRECTORIES "${OUTPUT_DIR}/include")
Run Code Online (Sandbox Code Playgroud)
在一个项目中我添加了依赖项:
include(Module-Conf)
target_link_libraries(${PROJECT_NAME} mymodule)
Run Code Online (Sandbox Code Playgroud)
CMake会将include_directories属性附加到包含路径吗?现在我看不到路径所以我似乎必须自己使用get_target_property来做这个?
问题:我可以使用一些CMake魔法自动将include附加到另一个项目的include目录中吗?
非常感谢.马丁
是否有可能调用一个函数的CMake出的add_custom_target还是add_custom_command?
我知道我可以将CMake函数移动到Python(或其他)脚本并从add_custom_target/中调用它,command但我想避免在现有的CMake基础上使用大量脚本.
我想要实现的是使用CPack生成二进制工件的zip包并将其发布到工件库中.对于发布部分,我已经创建了CMake函数,但现在我需要将打包和发布结合在一起.
感谢您提前提供任何帮助/提示.
有没有办法通知 CI 系统有关工件的新发布版本并触发构建?
场景是这样的:
市场上有没有支持这种通知机制的插件?我还没找到Nexus(Ivy)这样的工具?我唯一找到的是 JFrog 的 Artifactory 插件,您可以直接从 Teamcity 发布。
谢谢,马丁
我有一个小项目,只使用boost::interprocessBoost库中的部分.
是否有一种简单的方法可以仅为库的那一部分提取所有需要的文件?
我有以下场景:
class InterfaceA;
class InterfaceB;
class InterfaceC;
class InterfaceA
{
virtual void foo(InterfaceC&) = 0;
};
class InterfaceB
{
virtual void bar() = 0;
};
class InterfaceC
{
virtual void bla() = 0;
};
// MOCKs
class MockA : public InterfaceA
{
public:
MOCK_METHOD0(foo, void(InterfaceC&));
};
class MockB : public InterfaceB
{
public:
MOCK_METHOD0(bar, void());
};
class ImplC : public InterfaceC
{
public:
ImplC(InterfaceA& a, Interface& b) : m_a(a), m_b(b) {}
void doSomething() {
m_a.foo(*this);
}
virtual void bla()
{ … c++ ×2
cmake ×2
boost ×1
expectations ×1
googlemock ×1
include ×1
mocking ×1
nexus ×1
sonatype ×1
target ×1