在biicode中仅使用标头库

时间:2015-03-15 17:33:48

标签: c biicode

: 如何在biicode中使用仅标题库?

: 当我尝试构建一个块时,它包含了示例目录,即使我尝试在已发布的blok的biicode.conf中显式设置dependecies。

: 我正在尝试使用biicode启动并运行unity框架。

Uinty作为C的单元测试框架非常棒,因为您不需要编译任何库。如果你自己做了模拟,你甚至不需要运行任何脚本,只有一个.c文件要包含在你的编译中,你就是金。

我已经将git repo发布到我的biicode块paulbendixen/Unity,因为除了应该包含的标题附带的c文件之外不需要任何编译步骤,所以没有别的事情要做。

但是,当我包含该文件时,使用#include "paulbendixen/Unity/src/unity.h"我在执行bii时遇到错误cpp:build

Code.c:2:28: fatal error: ProductionCode.h: No such file or directory
#include "ProductionCode.h"

这是在examples文件夹中,因此我不应该编译,当我只想使用unittesting部分时。将[依赖项]更改为包含unity.h = unity.c unity_internals.h也无济于事。

我很确定问题应该在Unity / biicode.conf中解决,但是我无法在任何地方找到对此文件的详尽描述。

Unity库的简单性应该使它成为构建系统(如bii)的理想选择,但设置起来似乎相当复杂。

如果有帮助,我使用了简单的布局和-r [github for throwtheswitch]选项

修改: 添加了一个媒体块

1 个答案:

答案 0 :(得分:2)

不是那么简单。 Unity使用Rakefiles来构建和运行测试,并且它们有很多配置。如何快速将其上传到biicode只是为了忽略测试并只发布文件。这可以使用以下内容编写 ignore.bii 文件:

docs/*
test/*
examples/*
*test*

转到 biicode.conf ,唯一必要的配置是包含路径:

[paths]
    src
    extras/fixture/src

如果您运行$ bii deps --files *unity.h

,则可以检查是否不需要手动定义依赖关系

通过这些更改,可以发布它。无需建设。

然后,为了在其他项目中使用它,我已经能够构建简单的测试:

#include "unity.h"

void testTrue(void){
    TEST_ASSERT(1);
    TEST_ASSERT_TRUE(1);
}

int main() {
  testTrue();
}

只需将以下内容添加到新项目的 biicode.conf 中:

[requirements]
    diego/unityfork: 0

[includes]
    unity.h: diego/unityfork/src

如果使用更典型的CMake配置而不是Rakefiles,那么使biicode运行并构建测试而不忽略它们可能要容易得多