微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CMake:将第三方标头导出到目录

如何解决CMake:将第三方标头导出到目录

| 使用CMake我正在使用第三方库TinyThread ++,它是一个简单的线程库包装,仅包含1个源文件和2个头文件。 在我的项目CMakeList.txt中,添加了以下行:
add_library(TinyThread STATIC ${CMAKE_CURRENT_SOURCE_DIR}/../../third_party/TinyThread/source/tinythread.cpp)
然后向我的可执行文件添加对该库的依赖关系,效果很好。 我试图弄清楚如何将两个头文件复制或导出到我在项目中使用的公共包含目录。
${CMAKE_CURRENT_SOURCE_DIR}/../../include
推荐的方法是什么?     

解决方法

如果只想在编译时“使用”这些头文件,则可以使用Naszta解释的include_directories()。 如果您确实要复制文件,则可以使用configure_file()或file(COPY ...)(请检查file()命令部分的底部)。     ,我认为您应该执行以下操作:
SET(TINY_THREAD_INCLUDE_PATH \"${CMAKE_CURRENT_SOURCE_DIR}\" CACHE PATH \"TinyThread include path\")
SET(TINY_THREAD_SOURCE_FILE \"${CMAKE_CURRENT_SOURCE_DIR}/tinythread.cpp\" CACHE FILEPATH \"TinyThread source file\")
...
INCLUDE_DIRECTORIES(${TINY_THREAD_INCLUDE_PATH})
ADD_LIBRARY(TinyThread STATIC ${TINY_THREAD_SOURCE_FILE})
这样,您以后就可以按其名称重用它们。如果您想在普通模式下隐藏它们:
MARK_AS_ADVANCED(TINY_THREAD_INCLUDE_PATH TINY_THREAD_SOURCE_FILE)
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。