Learn how to get the dependencies your project needs and how to handle their versions via your [requirements]
and [includes]
sections of your biicode.conf file.
The getting started guide explained basics on depending. To recall, these are the steps to depend on a library available in biicode, we’re using OpenSSL in this guide.
~$ mkdir deps_example
~$ cd deps_example
~/deps_example$ bii init -L
~/deps_example$ echo "//main.cpp code goes here" >> main.cpp
#include <stdio.h>
#include <string.h>
#include "openssl/md5.h"
int main()
{
unsigned char digest[MD5_DIGEST_LENGTH];
char string[] = "happy";
MD5((unsigned char*)&string, strlen(string), (unsigned char*)&digest);
char mdString[33];
for(int i = 0; i < 16; i++)
sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);
printf("md5 digest: %s\n", mdString);
return 0;
}
Let’s first use OpenSSL 1.0.1 available in lasote/openssl version 0:
Write in your biicode.conf file:
[requirements] lasote/openssl: 0 [includes] openssl/md5.h: lasote/openssl/include
bii build and you’re done.
Manually edit your biicode.conf file to depend on any version you want.
To depend on lasote/openssl version 2, write in your biicode.conf:
[requirements]
lasote/openssl: 2
[includes]
openssl/md5.h: lasote/openssl/include
Update your biicode.conf file to depend on lasote/OpenSSL tagged version 1.0.1l:
[requirements]
lasote/openssl: @1.0.1l
[includes]
openssl/md5.h: lasote/openssl/include
Run bii build and you’ll see the new dependencies in your bii/deps folder.
For OpenSSL, there are two tracks available:
OpenSSL 1.0.1
is available at lasote/openssl versions 0,1,2 and 3.OpenSSL 1.0.2
is available at lasote/openssl(v1.0.2) versions 0 and 1.Update to release 1.0.2, just write it in your biicode.conf:
[requirements]
lasote/openssl(v1.0.2): 0
[includes]
openssl/md5.h: lasote/openssl/include
Execute bii build and you’ll see the new dependencies in your bii/deps folder.
Currently, libuv keeps four maintained versions or block tracks:
- Libuv libary v0.10 (Stable, used by Nodejs)
- Libuv library v0.11 (Non stable, but commonly used)
- Libuv library v1.0
- Libuv library v1.x (Latest)
Depend on one or another to fit your needs:
Write this #include line in your source code:
#include "uv.h"
And depend on Libuv library v0.11, write in your biicode.conf file [requirements]
:
[requirements] lasote/libuv(v0.11): 1 [includes] uv.h : lasote/libuv/include
Execute bii build and you’re ready to go.
Let’s switch to Libuv library v1.0:
Modify [requirements]
section in your biicode.conf :
[requirements] lasote/libuv(v1.0): 0 [includes] uv.h : lasote/libuv/include
Execute bii build and it’s switched.
And now, switch to Libuv libary v0.10:
Modify [requirements]
section in your biicode.conf :
[requirements] lasote/libuv(v0.10): 1 [includes] uv.h : lasote/libuv/include
bii build and it’s switched.
At last, switch to Libuv library v1.x:
Modify [requirements]
section in your biicode.conf :
[requirements] lasote/libuv(v1.x): 8 [includes] uv.h : lasote/libuv/include
bii build and it’s switched.
Got any doubts? Ask in our forum or write us.