在biicode块中排除Cmake依赖项

时间:2015-03-12 17:55:04

标签: cmake biicode

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

中的旧CMakeLists.txt
IF(BIICODE)
   INIT_BIICODE_BLOCK()
   ADD_BIICODE_TARGETS()
ELSE()
#MY OLD CMAKELIST HERE
ENDIF()

它实际上构建正常,但bii deps仍试图解决依赖

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

编辑: 以下是该项目的链接: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

1 个答案:

答案 0 :(得分: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版本jpeg / jpeg:1中修复并升级为jpeg9,这是biicode.conf中的一个。

将此添加到您的回购协议中,您应该能够&#34; bii build&#34;并在bin文件夹中运行生成的示例。我用MinGW 4.8进行了测试并且工作了。