makefile - Cmake:添加子项目添加子文件夹

标签 makefile cmake

我目前想将一些自写类(“mycode.cpp”和“mycode.hpp”)添加到使用 Cmake 配置的大型现有 C++ 项目中。这些类位于“myfolder”中,该文件夹位于现有项目的“lib/pointrender”文件夹中(请参阅下面的虚拟层次结构)。

|- libs 
|    |- core
|    |   |- ...
|    |- pointrender
|        |- myfolder
|        |     |- mycode.cpp
|        |     |- mycode.hpp
|        |- existingclasses.cpp
|        |- existingclasses.hpp
|        |- project.cmake
|- CMakeLists.txt

在 CMakesLists.txt 中,pointrender 文件夹被声明为子项目。

declare_subproject(libs/pointrender)

如何最好地将我的代码添加到现有的 cmake 配置中?我是否将其作为子文件夹添加到project.cmake中,并在myfolder中添加单独的CMakeLists.txt?或者我最好将其添加为具有单独的 project.cmake 文件的子项目?有什么区别?

最佳答案

这个 project.cmakeinclude()d 成为一些 CMakeLists.txt 并作为其中的一部分执行。您正在使用的项目的作者出于某种原因推出了此功能,因此最好使用他们的基础设施来添加自定义代码。

通常的方法是编写您自己的 CMakeLists.txt 并从上层 add_subdirectory() 进行处理。

如果您想要更多详细信息,您应该使用 project.cmake 内容更新您的问题。

关于makefile - Cmake:添加子项目添加子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13362359/

相关文章:

dll - 是否可以在同一个 CMakeLists.txt 中使用/MT 设置项目,而使用/MD 设置其他项目?

c++ - CMake 链接到外部项目

vim - 如何在vim中显示实际的语法高亮?

c++ - 链接到静态QT,如何找出正确的链接顺序?

c++ - CMake:包括外部库头文件

c - 在 Sublime Text 3 上用 C 语言构建 Portaudio

visual-studio - 使用 cmake 和命令行构建 MSVC 项目

go - 如何只将参数值传递给 Makefile 目标?

c - Makefile - 用函数替换冗余

makefile - 当多个模式规则与目标匹配时