• # OMake, c'est bien!

    Posté par (site web personnel) . En réponse à la dépêche Petit éventail des outils de construction (« builder ») libres. Évalué à 3.

    Pour un projet C++, OMake est mon préféré. J'ai bataillé avec gmake et CMake, et certaines constructions sont bien plus faciles à obtenir avec OMake. Un exemple de dépendances courant est par exemple de devoir d'abord compiler un petit programme, lequel va générer du code, pour ensuite compiler le plus gros programme.

    Avec gmake et CMake, c'est un cauchemar et la gestion des dépendances devient très complexe, au point qu'il devient généralement plus aisé d'avoir deux cibles, une pour la génération, et une pour le programme principal. De plus, même si le code généré demeure inchangé, la date du fichier, elle, a changé, et on se retrouve avec des recompilations monstres qu'il faut dompter à coup de copies temporaires crades.

    Avec OMake, qui gère explicitement le code généré, et se base sur le contenu du fichier pour détecter les modifications, c'est fait en deux coups de cuiller à pot, et les compilations sont minimales mais correctes. L'on regrettera peut-être la difficulté de faire des compilations "hors sources" (les mount virtuels aident un petit peu), et la relative difficulté à utiliser des commandes un peu plus complexes, la petite taille de la communauté n'aidant pas. Par exemple, le support des en-têtes pré-compilées requiert un bidouillage des règles initiales qui est probablement simple, mais absolument pas évident.