【问题标题】:Exclude Cmake dependecies in biicode block在代码块中排除 Cmake 依赖项
【发布时间】:2015-03-12 17:55:03
【问题描述】:

我想将我的库项目移植到 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

【问题讨论】:

  • 不确定是否是您要求的,但您实际上可以使用 biicode.conf 的 [dependencies] 部分删除依赖项。只需在该部分写 CMakeLists.txt -examples/CMakeLists.txt。
  • 也许指向您的原始 github 存储库(可能带有当前 biicode 适配的分支)可能会有所帮助
  • 我编辑了这个问题,考虑到了你的 cmets

标签: cmake biicode


【解决方案1】:

没有必要修改你的源代码,如果你想做这样的检查,那就是#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中的那个。

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

【讨论】:

  • 完美运行,[includes] jpeglib.h: jpeg/jpeg 技巧真的很好,应该在文档中!
猜你喜欢
  • 2019-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
  • 1970-01-01
  • 2012-02-25
  • 2017-09-08
相关资源
最近更新 更多