我有几个库,是标题,只有由于被模板化。
我想在每个文件夹下提供一个CMakeLists.txt文件,将它们的包含文件夹导出为包含位置,如果这样做有意义的话。
add_library(htcw_io lib/htcw_io/src/io_stream.cpp)
target_include_directories(htcw_io PUBLIC
"${PROJECT_SOURCE_DIR}/lib/htcw_bits/include"
"${PROJECT_SOURCE_DIR}/lib/htcw_io/include"
"${PROJECT_BINARY_DIR}")
请注意,我必须包含lib/htcw_bits/include,尽管它是一个独立于htcw_io的库。这是因为它没有任何源文件-只有标题,所以我不能导出它本身作为一个库。
一个选择是包含一个空的cmake_dummy.cpp文件和htcw_bits以及其他类似的头文件库,只是为了给予CMake一些东西来绑定,但这似乎很草率。但是,如果这是解决方案,我会做的。我只想知道有没有更好的选择。
当然,他们已经想到了这个用例,我只是没有找对地方。
1条答案
按热度按时间2wnc66cl1#
在CMake行话中,只有头文件的库被写成
INTERFACE libraries
。EX: