0

我想将我的库项目移植到 biicode,但是我的示例使用的二进制文件对于 biicode 块来说太大了(有 12MB 的限制),所以我将示例文件夹添加到了 ignore.bii 文件中。问题是它现在寻找 example/CMakeLists.txt 因为我使用的是旧的 CMakeLists.txt 包裹在

IF(BIICODE)
   INIT_BIICODE_BLOCK()
   ADD_BIICODE_TARGETS()
ELSE()
#MY OLD CMAKELIST HERE
ENDIF()

它实际上构建得很好,但bii deps仍然试图解决依赖关系

我应该怎么办 ?我真的不想删除或更改太多东西来支持 biicode,因为该项目已经在 github 上。

编辑:这是项目的链接:https ://github.com/Lectem/libmpo 我在 biicode.conf 中尝试了一些类似的东西

[dependencies]
    CMakeLists.txt - example/CMakeLists.txt
    include/libmpo/mpo.h - jpeglib.h

但我明白了:

WARN: Lectem/libmpo/biicode.conf, [dependencies] CMakeLists.txt - example/CMakeLists.txt
        There are no files matching pattern example/CMakeLists.txt
WARN: Lectem/libmpo/biicode.conf, [dependencies] include/libmpo/mpo.h - jpeglib.h
        There are no files matching pattern jpeglib.h
Lectem/libmpo depends on:
       Lectem/libmpo (self)
          include/libmpo/cmpo.h
                src/cmpo.c (E)
          include/libmpo/mpo.h
                src/cmpo.c (E)
                src/dmpo.c (E)
                src/mpo.c (E)
          src/cmpo.c
                include/libmpo/cmpo.h (I)
          src/dmpo.c
                include/libmpo/mpo.h (I)
          src/mpo.c
                include/libmpo/mpo.h (I)
       jpeg/jpeg: 0
          jpeglib.h
                include/libmpo/mpo.h (E)
       system:
          assert.h
                src/cmpo.c
                src/mpo.c
          stdint.h
                include/libmpo/mpo.h
          stdio.h
                include/libmpo/mpo.h
          stdlib.h
                include/libmpo/mpo.h
       unresolved:
          example/CMakeLists.txt
                CMakeLists.txt
          jpeglib.h
                include/libmpo/mpo.h

我也在尝试删除 jpeglib.h 依赖项,因为我放置了以下宏:

#ifdef BII
#include <jpeg/jpeg/jpeglib.h>
#else
#include <jpeglib.h>
#endif
4

1 回答 1

0

没有必要修改源代码,如果您想进行这样的检查,那就是#ifdef BIICODE。

所以保持代码不变,并使用 biicode.conf 中的 [includes] 部分:

[requirements]
     jpeg/jpeg: 1

[paths]
    include

[includes]
     jpeglib.h: jpeg/jpeg

确实现在有 12 mb 的限制,但是您可以使用当前大小添加一个 ignore.bii 文件来解决它:

example/*.mpo
*.pdf

然后将 ADD_BIICODE_TARGETS 宏添加到您的 cmake 中就足够了,它将管理所有内容,因此只需在 CMakeLists.txt 的开头添加

IF(BIICODE)
  ADD_BIICODE_TARGETS()
  return()
ENDIF()

确实,biicode中的jpeg lib版本似乎有问题,但已修复并升级到biicode版本中的jpeg9 jpeg/jpeg:1,即biicode.conf中的那个。

将此添加到您的存储库中,您应该能够只“bii build”并在 bin 文件夹中运行生成的示例。我已经用 MinGW 4.8 对其进行了测试并工作了。

于 2015-03-12T23:05:14.420 回答