1

Salut les enfants,
On doit utiliser libpng pour un projet et on a eu la merveilleuse idée de vouloir la compiler.
Or, libpng utilise zlib.

On utilise cmake pour générer le SLN et le CVXPROJ, jusque là on s'en sortait à peu près, mais pour libpng il doit y avoir un truc qui cloche.
Déjà, libpng avait besoin des répertoires d'inlude et de lib de zlib, qui n'avaient pas l'air de se configurer nulle part.
En cliquant sur le bouton "advanced" de cmakegui, on a accès à la définition de ces deux variables. On peut donc définir les chemins (mais pour le chemin du .lib, ça reste moisi parce que faut pointer vers la version debug ou release, et je ne sais pas commenter gérer ça automatiquement sorry)

Ceci fait, le generate de cmakegui fonctionne et monte un SLN qui a presque l'air de fonctionner.
En effet, zlib se compile d'abord sans difficulté.

Cependant, lors de la compilation de libpng (qui utilise zlib), ça échoute et le préprocesseur ne parvient pas à ouvrir le fichier zconf.h, qui se trouve être un fichier généré pendant le generate du cmake (si j'ai bien compris)... Ce fichier zconf.h se trouve en effet dans le répertoire de build, et non pas dans les sources de zlib. #pratique#

La question est donc la suivante : quelle est la solution standard pour gérer ça ?!
Merci d'avance, et bonne nuit !

2

PS : je soupçonne qu'inclure les dépendances (type libpng et zlib) dans le projet principal via un add_subdirectory dans le cmakelist est une pratique honteuse, n'est-ce pas ? mourn

3

PPS : sinon j'ai aussi compilé libpng directement via le projet visual studio fourni et ça fonctionne très bien, c'est juste que là vu le projet je pense que ce serait plus élégant (grin) de tout passer via cmake vu que c'est censé être portable... (haha)

4

Pen^2 (./1) :
quelle est la solution standard pour gérer ça ?!
Arrêter de se prendre la tête et utiliser la version binaire ? tongue

Franchement, compiler une lib manuellement et se taper cmake quand on n'est pas obligé, c'est du masochisme (ou alors, une punition pour stagiaire tongue)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

5

Tu as mal lu, je ne compile pas manuellement, j'utilise un compilateur embarrassed

Non mais en fait je ne connais pas trop cmake et certaines autres lib ne sont pas dispo en binaire, du coup je voulais rester homogène.
En incluant tout il générait jusque là les bonnes lib directement (release & debug & win32 & x64 — OK, la version debug de la lib je m'en fous, mais pas la version 32/64 tongue)

Bref, faut que je regarde de plus près.

(sinon, ça permet d'apprendre un peu, quand même tongue)

6

Tiens, j'y pense, on n'a pas de config win32 dans ce projet, vu que c'est sélectionné lors du choix du compilateur la première fois qu'on fait tourner cmake #trihum#
(pour ma défense, il y a un projet annexe qui a été généré différemment et qui, lui, a bien les deux configs tripo)

Merci souane !

7

Tu peux regarder comment font les scripts emerge de kdewin pour compiler ces bibliothèques.

Sinon, pour le problème du répertoire build vs. source, tu peux utiliser cmake . pour compiler dans le répertoire source.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

8

libpng obligatoire ? Car sinon y'a lodepng qui est bien, c'est juste un fichier .c
Peace Unity Love et Having Fun!!!

9

Non, pas obligatoire du tout ; merci beaucoup, je vais regarder ça !!

(OK pour la compilation dans le répertoire source, mais on a compilé tout le reste ailleurs, donc bof.)