https://cmake.org/cmake/help/latest/guide/tutorial/index.html
添加库的使用要求(步骤3)
使用要求可以更好地控制库或可执行文件的链接并包含行,同时还可以更好地控制CMake内部目标的传递属性。 利用使用需求的主要命令是:
让我们从添加库(第2步)中重构代码,以使用现代CMake的使用需求方法。 我们首先声明,链接到MathFunctions的任何人都需要包括当前源目录,而MathFunctions本身不需要。 因此,这可以成为接口使用要求。
请记住,INTERFACE表示消费者需要而生产者不需要的东西。 将以下行添加到MathFunctions / CMakeLists.txt的末尾:
target_include_directories(MathFunctions
INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}
)
现在,我们已经指定了MathFunction的使用要求,我们可以安全地从顶级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进行构建。 从构建目录。
实验代码:https://download.youkuaiyun.com/download/yufm/12673684