9
votes

Drapeaux de compilateur spécifiques pour fichiers spécifiques dans Xcode

J'ai été chargé de travailler sur un projet qui a des attributs déroutants.

Le projet est de la nature qu'il ne compilera pas pour le simulateur iPhone et le périphérique iPhone avec les mêmes paramètres de compilation. Je pense que cela a à voir avec avoir besoin d'être spécifiquement compilé pendant x86 ou ARM6 / 7 en fonction de la plate-forme cible.

de sorte que les paramètres de construction du projet, lors de la visualisation dans la vue de paramètres de construction de Xcode, ne me permettent pas de Définissez des drapeaux de compilateur spécifiques par fichiers spécifiques. Cependant, le développeur précédent qui a fonctionné sur ce projet a déclaré en quelque sorte déclaré la ligne: xxx

existe-t-il un moyen de le faire sans modifier le fichier de projet à la main? Je sais que l'édition du fichier de projet peut entraîner la rupture totalement, donc je préférerais ne pas faire cela, car je ne sais évidemment pas autant que le développeur précédent.

Pour clarifier, la question est:

La construction échoue lors de la compilation du simulateur à moins que je supprime le drapeau -fasm-block . La construction échoue lors de la compilation de l'appareil, sauf si j'ajoute l'indicateur -fasm-blocks . Existe-t-il un moyen de définir ce drapeau par fichier sans modifier le fichier de projet à la main?


1 commentaires

Vous pouvez utiliser #if! Cible_iphone_simulator pour filtrer le code ASM.


3 Réponses :


7
votes

Vous pouvez définir des drapeaux de compilateur supplémentaires pour des fichiers source individuels comme suit:

  • Tout d'abord, sélectionnez la cible que vous allez construire
  • Cliquez avec le bouton droit de la souris sur le fichier source
  • Sélectionnez "Obtenir des informations"
  • Cliquez sur l'onglet "Build"
  • Définissez vos drapeaux de compilateur supplémentaires

    Cependant, cela ressemble à une meilleure solution dans votre cas consiste simplement à dupliquer la cible et à avoir deux cibles - une pour un dispositif réel et un pour le simulateur. Hériter des paramètres de construction courants du niveau de projet et simplement modifier les paramètres de construction par cible si nécessaire.


1 commentaires

Merci! Cela peut donc répondre à l'autre question que j'allais demander, comment pourrais-je m'attaquer le drapeau de la compilée? Je pourrais configurer une phase de script d'exécution qui fonctionne avant la phase de sources de compilée et définit la valeur d'une variable d'environnement des indicateurs de compilateur, en fonction de la sortie de la variable d'environnement de la plate-forme cible. Le compilateur appartement doit seulement être défini sur un fichier particulier. Je pense donc que cela peut être surchargé pour configurer deux cibles et créer un drapeau de compilateur de projet ...



2
votes

Call GetInfo Pour le fichier spécifique, vous pouvez définir les paramètres de construction là-bas pour ce fichier. Voir aussi le guide de gestion de projet Xcode à ce sujet.


0 commentaires

9
votes

Ce Blog post de Joshua Nozzi explique comment Pour ce faire dans Xcode 4, où il dit:

... Sélectionnez votre projet dans le navigateur de projet, sélectionnez la cible correspondante (vous pouvez en avoir une seule), puis sélectionnez l'onglet Phases de construction. Développez la phase des sources de la compilation et de l'alto! Une colonne Drapeaux compilateur vous permet de définir les indicateurs de chaque fichier pour cette cible.


0 commentaires