为仅标头库创建块

Creating a block for a header-only library

本文关键字:创建      更新时间:2023-10-16

我正在尝试将仅标题库转换为块。该库已使用 CMake,并包含测试和示例程序。我已经浏览了biicode文档,但不清楚如何为现有项目创建块。我很困惑我应该做bii init -L还是bii cpp:configure.我尝试在 biicode.conf 中将 Boost 指定为要求,但得到WARN: Removing unused reference to "biicode/boost: 0"

请让我知道为现有项目创建块的步骤,谢谢。

您应该在库的文件夹中开始使用bii init -L。然后,按照文档中的此步骤,使用 bii deps 命令检查未解析的依赖项,调整 biicode.conf 文件(如果需要),并添加外部依赖项。

还可以调整您当前的 CMakeLists.txt

IF(BIICODE)
   INCLUDE("biicode.cmake")
   RETURN()
ENDIF()

biicode.cmake 文件至少应该包含 ADD_BII_TARGETS(),因为你依赖于 Boost,你的文件应该看起来像下面的代码,这里有一个指南解释了如何依赖 Boost。

#Include the biicode Boost setup script
include(biicode/boost/setup)
ADD_BII_TARGETS()
#Setup Boost and build (if needed) the required Boost components
#Since lambda is header-only, there are no components to build and find
bii_find_boost()
#Add Boost headers to the block include directories
target_include_directories(${BII_BLOCK_TARGET} INTERFACE ${Boost_INCLUDE_DIRS})

运行 bii find 以检索相关内容,bii configure将其配置为当前配置并使用 bii build 进行构建。在此处查看文档中构建的常见问题。

对于使用 boost 的问题 - biicode 在 github 中有一个 boost 存储库。