添加库的使用要求
使用要求可以更好地控制库或可执行文件的链接和include行,同时还可以更好地控制CMake内部目标的传递属性。利用使用要求的主要命令是:
让我们从第2步中重构代码,以利用现代的CMake方法编写使用要求。我们首先声明,链接到MathFunctions的任何东西都需要包括当前源码目录,而MathFunctions本身不需要。因此,这可以成为INTERFACE使用要求。
请记住,INTERFACE是指消费者需要的,而生产者不需要东西。将以下行添加到MathFunctions/CMakeLists.txt的末尾:
target_include_directories(MathFunctions 接口 ${CMAKE_CURRENT_SOURCE_DIR)
现在,我们已经指定了MathFunction的使用要求,我们可以安全地从顶级CMakeLists.txt中删除对EXTRA_INCLUDES变量的使用:
if(USE_MYMATH)
add_subdirectory(MathFunctions)
list(APPEND EXTRA_LIBS MathFunctions)
endif()
... ...
... ...
target_include_directories(教程 PUBLIC "${PROJECT_BINARY_DIR}")
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!