0

I wanted to port my library project to biicode, however my example uses binaries that are too big for a biicode block (there is a 12MB limit), so I added the example folder to the ignore.bii file. The problem is that it now looks for example/CMakeLists.txt because I'm using the old CMakeLists.txt wrapped in

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

It actually builds fine but bii deps still tries to resolve the dependency

What should I do ? I don't really want to remove nor change too many things to support biicode as the project is already on github.

Edit: Here is the link to the project : https://github.com/Lectem/libmpo I tried something in the biicode.conf along the lines of

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

but I get this :

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

I'm also trying to remove the jpeglib.h dependency as I put the following macro :

#ifdef BII
#include <jpeg/jpeg/jpeglib.h>
#else
#include <jpeglib.h>
#endif
Lectem
  • 503
  • 6
  • 19
  • Not sure if is what you are asking for, but you can actually remove depedencies with the [dependencies] section of biicode.conf. Just write in that section CMakeLists.txt - examples/CMakeLists.txt. – drodri Mar 12 '15 at 18:06
  • Maybe pointing to your original github repo (probably with a branch for the current biicode adaptation) might help – drodri Mar 12 '15 at 18:12
  • I edited the question by taking your comments into account – Lectem Mar 12 '15 at 18:25

1 Answers1

0

It is not necessary to modify your source code, and if you want to do such a check it would be #ifdef BIICODE.

So leave the code as is, and use the [includes] section in biicode.conf:

[requirements]
     jpeg/jpeg: 1

[paths]
    include

[includes]
     jpeglib.h: jpeg/jpeg

It is true that there is a limit now of 12 mb, but you can workaround it with your current size adding a ignore.bii file with:

example/*.mpo
*.pdf

Then it should be enough to add the ADD_BIICODE_TARGETS macro to your cmake, which will manage everything, so just add at the beginning of your CMakeLists.txt

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

It is true that it seemed that jpeg lib version in biicode had a problem, but it is fixed and updgraded to jpeg9 in biicode version jpeg/jpeg: 1, which is the one in the biicode.conf.

Adding this to your repo, you should be able to just "bii build" and run the generated example inside bin folder. I have tested it with MinGW 4.8 and worked.

drodri
  • 5,157
  • 15
  • 21
  • Working perfectly, the [includes] jpeglib.h: jpeg/jpeg trick really is nice, should be in the docs ! – Lectem Mar 13 '15 at 01:02