2014-10-29
Objectif : compiler de petits programmes C++ avec les bibliothèques Chromium.

Chromium est la base open source du très connu navigateur Google Chrome.
Multi-plateforme, riche en fonctionnalités et écrit majoritairement en C++, il sert également de base à Chromium OS, un système d'exploitation complet (que Google distribue également sous le nom "Chrome OS" afin d'équiper ses Chromebooks).
Il paraît donc évident que Chromium intègre tout le nécessaire pour afficher des fenêtres, jouer des fichiers multimédia, gérer des fichiers, le multi-threading et l'internationalisation...
Et comme la vie est bien faite, il est organisé en multiple bibliothèques et "tierces parties" :
Sachant cela, pourquoi ne pas se server de Chromium comme d'une boîte à outils C++, ainsi qu'on le fait déjà avec Qt par exemple ?
On peut lister au moins deux raisons à cela :
chrome". Tout est compilé statiquement afin de faciliter ce but ;Mais comme vous le savez, je travaille depuis un certain temps sur Chromium-Lite !
(un découpage du navigateur en bibliothèques, liées tant que possible avec celles du système d'exploitation 😉)
Télécharger selon :
Extraire l'archive sur votre ordinateur :
sudo mkdir /opt/chromium
sudo tar xfvj chromium-38.0.2067.0-*UBUNTU14*.tar.bz2 -C /opt/chromium/
Cela créera 3 nouveaux répertoires dans /opt/chromium/ : bin/ - include/ - lib/.
Cette version de Chromium a été compilée avec Ozone-Wayland, un backend destiné à l'affichage :
Si vous satisfaisez déjà à la condition 2., la 1. nécessite encore p.ex. de compiler et installer le compositeur Weston...
En 32-bits, je vous ai précompilé une version qu'il vous suffira de télécharger :
puis extraire et lancer :
sudo tar xfvj wayland170-UBUNTU14.tar.bz2 -C /opt/
/opt/wayland170/bin/weston &
Voici ensuite comment lancer le navigateur :
export XDG_RUNTIME_DIR=/run/user/$UID
/opt/chromium/lib/chromium/content_shell --no-sandbox https://iot.bzh
Chromium-Lite sous Wayland
Si vous n'avez pas une installation compatible, ne craignez rien : nos exemples resteront pour l'instant en ligne de commande et n'en auront pas besoin 😉.
Veuillez télécharger les exemples C++ Chromium.
Vous aurez besoin du compilateur G++ :
sudo apt-get install g++
Par la suite, la commande de compilation sera systématiquement :
g++ -std=c++11 $SOURCE.cc -I/opt/chromium/include/chromium /opt/chromium/lib/chromium/lib/libbase.so
base::Logging)LOG(INFO) << "My log message";
base::FilePath)auto filepath = base::FilePath ("test.txt");
auto dirpath = base::FilePath ("/home/bob");
base::CopyFile (filepath, dirpath);
base::DeleteFile (filepath);
base::CommandLine)auto cmdline = base::CommandLine (argc, argv);
if (cmdline.HasSwitch ("help") && cmdline.GetArgs().empty()) {
// print help text
}
base::Callback)base::Callback<void(void)> callback = base::Bind (&my_func);
callback.Run ();
base::MessageLoop)base::Callback<void(void)> callback_delayed = base::Bind (&my_func);
auto duration = base::TimeDelta::FromSeconds (10);
main_loop.PostDelayedTask (FROM_HERE, callback_delayed, duration);
Voilà, c'est tout pour l'instant !