[CMake翻译]为库添加使用要求(步骤3)

160 阅读1分钟

原文地址:cmake.org/cmake/help/…

原文作者:

发布时间:

使用要求允许更好地控制一个库或可执行文件的链接和包含行,同时也给CMake内部的目标的过渡属性提供了更多的控制。利用用法要求的主要命令有:

让我们从添加库(步骤2)中重构我们的代码,使用现代CMake的使用需求方法。我们首先声明,任何人链接到MathFunctions都需要包含当前的源目录,而MathFunctions本身不需要。所以这可以成为一个INTERFACE的使用要求。

记住INTERFACE是指消费者需要而生产者不需要的东西。在MathFunctions/CMakeLists.txt的末尾添加以下几行。

target_include_directories(MathFunctions
          INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}
          )

现在我们已经指定了 MathFunctions 的使用要求, 我们可以安全地从顶层的 CMakeLists.txt 中删除对 EXTRA_INCLUDES 变量的使用。

if(USE_MYMATH)
  add_subdirectory(MathFunctions)
  list(APPEND EXTRA_LIBS MathFunctions)
endif()

还有这里。

target_include_directories(Tutorial PUBLIC)
                           "${PROJECT_BINARY_DIR}"
                           )

完成后,运行 cmake 可执行文件或 cmake-gui 来配置项目,然后用你选择的构建工具或使用 cmake --build .从构建目录中构建它。


通过www.DeepL.com/Translator (免费版)翻译