Ok, super! Bon j'ai commencé à travailler sur ces exemples et à lire plus de trucs sur le superbuild.
Mais il y a encore pas mal de choses qui m'échappent. Là dessous c'est le graph de dépendances:
|-> lib (github)
| |->lib_a (github)
| | |->boost unit_test_framework system filesystem ublas
| | |->gdal
| |->sqlite3
| |->sqlite3pp (github)
| |->boost program_options
| |->python3
| |->BPP (github)
J'aimerai (est-ce raisonnable ) que si on installe lib_a, la présence des bonnes versions de boost et gdal soit checkée et qu'on les télécharge/installe si besoin. Cela nécessite-t'il un superbuild pour lib_a également? J'ai en fait du mal à définir quand la présence d'un superbuild est justifiée ou pas.
Si on installe lib, en ce cas là j'imagine que si les dépendances transitives (c'est le bon mot?) ont bien été gérées, on a seulement besoin de checker la présence de la bonne version de lib_a et que ça va tout seul gérer boost et gdal si besoin. Autrement dit on n'a pas besoin, dans le cmake de lib, de mentionner les dépendances des dépendances n'est ce pas ?
Et puis évidemment il faut du coup récupérer sqlite3, sqlite3pp, boost program_options et python3 et BPP. Faut-il ré-écrire le même code cmake pour boost (checker la présence/version de boost et download/install si besoin) juste pour récupérer program_options alors que tout ce code existe déjà pour gérer les dépendances de lib? Il y a t'il un risque de conflit quelconque ? Et aussi pour boost dois-je faire figurer quelque part que lib_a utilise boost::ublas ? J'ai lu que c'était inutile si c'était header-only.
J'imagine que lib_a devrait ne même pas avoir conscience qu'elle est susceptible d'être utilisée dans un superbuild ?
Bref comme vous voyez j'ai du mal à orchestrer/planififer les changement à orchestrer dans les cmakelists
PS: j'ai finalement acheté le bouquin qui va avec, il y a toutes les explications des lignes de commandes, et ça c'est top. Je vous ferai une review si vous voulez lol
Partager