# Utilisation de gcc de macports dans XCode



## promuald (21 Janvier 2010)

Voilà, tout est dans le titre.

J'aimerai utiliser les compilateurs de macports dans mes projets C de XCode. (4.4 et 4.5 pour être précis).

Lorsqu'on veut changer le compilateur via Compiler Version -> C/C++ Compiler Version, les compilateurs de macports n'apparaissent pas. 

En essayant de mettre dans "other..." un chemin vers l'un des compilateurs de macports, ça ne marche pas non plus.

Quelqu'un à une solution ?


----------



## ntx (22 Janvier 2010)

Où sont installé lesz compilateurs de Mac Port ? Je ne savais même pas que MacPort ajoutait ses propres compilos :rateau:
As-tu regardé dans le plist de Xcode s'il n'y avait pas une liste restrictive ?


----------



## promuald (24 Janvier 2010)

> Où sont installé lesz compilateurs de Mac Port ?



/opt/local/bin 



> Je ne savais même pas que MacPort ajoutait ses propres compilos



macports permet d'installer d'autres compilateurs (des gcc récents, avec même un support d'ada). 



> As-tu regardé dans le plist de Xcode s'il n'y avait pas une liste restrictive ?



Non, il n'y a pas de telle liste.

Merci quand même te ton aide.


----------



## ntx (24 Janvier 2010)

promuald a dit:


> /opt/local/bin


Soit tu les mets dans /usr/bin avec les versions de Xcode et tu vois ce que cela donne dans Xcode.
Soit tu changes " à la main"le lien symbolique vers la version courante de gcc, toujours dans /usr/bin
Mais rien ne garantit que ces compilos seront supportés par Xcode.


----------



## promuald (24 Janvier 2010)

> Soit tu les mets dans /usr/bin avec les versions de Xcode et tu vois ce que cela donne dans Xcode.



C'est un peu "porc" comme solution. De plus, c'est pas en déplaçant uniquement les binaires que ça va marcher. 



> Soit tu changes " à la main"le lien symbolique vers la version courante de gcc, toujours dans /usr/bin



Ca ne marche pas non plus, c'est exactement ce qui se passe avec l'utilitaire gcc_select. En revanche, dans XCode, ça n'est pas le bon gcc qui est utilisé (Xcode mémorise le chemin adéquat)



> Mais rien ne garantit que ces compilos seront supportés par Xcode.



Ca n'est pas le problème. XCode ne doit servir que d'IDE, peu importe le compilateur utilisé derrière. (icc fonctionne très bien avec XCode par ex).


----------



## ntx (24 Janvier 2010)

promuald a dit:


> C'est un peu "porc" comme solution. De plus, c'est pas en déplaçant uniquement les binaires que ça va marcher.


Ben si, si Xcode scanne ce qu'il y a dans /usr/bin pour construire la liste des compilos qu'il propose. Eventuellement ne mets qu'un lien dans /usr/bin.


> Ca n'est pas le problème. XCode ne doit servir que d'IDE, peu importe le compilateur utilisé derrière. (icc fonctionne très bien avec XCode par ex).


Et Apple fait ce qu'il veut avec son outil ... y compris pour choisir les compilos qu'il propose. 
Il te reste la compilation à la main, que tu peux lancer via Xcode en utilisant un script dans ta cible.


----------



## tatouille (25 Janvier 2010)

promuald a dit:


> Voilà, tout est dans le titre.
> 
> J'aimerai utiliser les compilateurs de macports dans mes projets C de XCode. (4.4 et 4.5 pour être précis).
> 
> ...



tu ne peux pas a part si tu sais trifouiller les templates xcode, ou alors tu utilises un external target depuis xcode e.g un makefile, pour l'obj-c et pas mal de features Apple applique ses patches pour ajouter ses options, ce que les versions de gcc de macport n'ont pas, donc tu peux avoir quelques soucis, tout depend de ce que tu fais


----------



## promuald (25 Janvier 2010)

> tu ne peux pas a part si tu sais trifouiller les templates xcode,



C'est bien ce que je pense.



> Xcode scanne ce qu'il y a dans /usr/bin pour construire la liste des compilos qu'il propose.



Tu es sur ? Lors d'une compilation, le compilo utilisé est dans /Developer/usr/bin/ . 



> ou alors tu utilises un external target depuis xcode e.g un makefile



Oui, c'est la solution que j'ai retenu pour l'instant. Mon projet existait déjà via Makefile (je n'utilisais qu'emacs + Makefile) et j'essaie de passer le tout dans XCode. 



> tout depend de ce que tu fais



C'est du C tout ce qu'il y a de standard (c99 + SSE)


----------



## ntx (26 Janvier 2010)

promuald a dit:


> Tu es sur ? Lors d'une compilation, le compilo utilisé est dans /Developer/usr/bin/ .


C'est une hypothèse, à vérifier. Il n'y a pas cinquante mille manières de faire : soit une liste en dur dans un fichier de configuration, soit une liste créée dynamiquement en scannant les gcc qu'il peut trouver sur le DD.
Je n'avais jamais remarqué cet emplacement. en fait ils sont dans les deux répertoires avec la même date de modification.


----------



## promuald (26 Janvier 2010)

> soit une liste en dur dans un fichier de configuration,



Je pense plutôt dans cette direction. Je pensais à un moment que ça pouvait être dans le template d'un projet C. 

Je n'aurai sûrement pas le temps de vérifier avant la semaine prochaine, si quelqu'un a une idée plus précise d'une éventuelle solution, je suis toujours preneur.


----------



## Bladrak (27 Janvier 2010)

un grep sur /Developer ?


----------



## promuald (16 Février 2010)

Le grep ne donne rien (enfin rien qui pourrait indiquer où est le compilateur)


----------



## [Vezøul]Numerø41 (16 Février 2010)

find alors, c'est plus mieux pour une recherche de fichier.


----------

