Posts

How to use codecov.io in a C/C++ project

Image
If you need a good code coverage web reporting tool for a github-hosted project, codecov.io may be your next best friend. I'm already using it on biology and rainbrurpg).

The present article is usable on a C/C++ project using cmake as build system and travis-ci as CI platform.


Handling coverage in cmake You first need to install some package (at least on Debian GNU/Linux) :
sudo apt install gcov lcov gcovr
Then, copy the CodeCoverage.cmake in a cmake/ directory inside your project's repository and add this line to your CMakeLists.txt file:
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) Generate coverage reports and send them Now, you need to modify your .travis.yml file and add this : after_success: # Creating report - cd ${TRAVIS_BUILD_DIR} - lcov --version - lcov --directory . --capture --output-file coverage.info - lcov --remove coverage.info '/usr/*' --output-file coverage.info - lcov --list coverage.info #debug info # Uplo…

Introducing gl-adventure

Image
This month (February 2018), I'm freeing gl-adventure (as I've already done for biology and librlgl). A little dungeon crawl game written in C.

This project doesn't intend to create a beautiful game, so it's ugly. It is about learning C/opengl the hard way.

Headers-date switches to revision 14

Image
This little ruby project, introduced earlier in this post, used to test the GNU headers' dates for a complete project, just switched to revision 14. This project, and in the near future all of my public projects, uses an online coverage tool provided by coveralls.io.

This online coverage tool is used to measure which source code is executed when a particular test suite runs. So you can know which part of a project isn't yet tested and improve software quality.

Introducing biology

Image
Since now, I will try to free (or make public) a new project every month. These projects mainly come from a private incubator I handle at bitbucket.org.

This month, I released biology : a study to train a neural network to handle Non-Playable Characters. This is a C++ gui application using wxwidgets as GUI toolkit. Another dependency is libfann, a neural network library.

How to use github API on a static webpage

Image
For the new rainbrurpg homepage, I would like to dynamically add the github's repositories status, for example the last commits.


Introducing librlgl

Today, I'm freeing a new rainbrurpg-related project. Its repository is now located at https://github.com/rainbru/librlgl. This library will be a fundamental piece in the RainbruRPG's ecosystem, providing the graphical content of the game client.

This code is designed to be used as a git submodule (as libwsmeta) to provide dependency check and library building. The aim of this project is to define a DSL used to generate and use complete 3D worlds.

How to use MongoDB on travis-ci

Image
Using continuous integration for rainbrurph, I need the mongodb database and C libraries. Unfortunately, I had issue using it on Ubuntu Precise 12.04 LTS, the distribution used on travis-ci.

To make it work, we'll have to :
install database components from the official MongoDB repositories;manually build the latest release of the official C libraries;add /usr/local/ to ld.conf to make your build system discover the newly installed library.