web-dev-qa-db-fra.com

création d'un projet XCode avec du code existant

Je suis en train de porter une application Linux sur Mac. J'ai différents fichiers avec le code source qui peuvent être compilés et liés en utilisant le Makefile standard.

Je vais porter ce code sur Mac et continuer à écrire du code en C (désolé, pas d'obj-c). Existe-t-il un moyen de créer un projet sur XCode, d'ajouter le code existant afin que je puisse utiliser XCode et l'IDE, compiler et déboguer le code et générer des Makefiles Mac?

Merci pour l'aide

30
Mr Aleph

Nouveau projet -> Autre -> Système de construction externe

(dans un nouveau projet)

Développer "Cibles"

sélectionner la cible créée par le modèle

appuyez sur retour

modifiez les paramètres cibles:

  • par défaut, il utilise /usr/bin/make pour invocation. si vous souhaitez utiliser un autre système de construction, vous aurez plus à configurer.
  • pour un Makefile, vous devrez définir le champ 'Répertoire' de la fenêtre des paramètres de construction sur le répertoire qui contient le makefile approprié à construire.

notez que vous perdrez une certaine intégration lors de l'utilisation d'un makefile.

vous pouvez en récupérer une partie en ajoutant les sources au projet (glisser-déposer) et en ne les associant pas à une cible.

pour améliorer la navigation et l'achèvement du code, vous souhaiterez peut-être créer une seconde cible (factice) (telle qu'une bibliothèque statique) afin que l'ide analyse vos programmes. vous ajouteriez ensuite les sources à la bibliothèque statique factice et définiriez le makefile comme une "dépendance" de la bibliothèque statique (afin qu'il soit construit, et donc qu'il soit construit en premier).

34
justin

Les documents Apple Developer contiennent une section sur le portage de projets basés sur un makefile dans XCode.

"Portage d'applications UNIX/Linux vers OS X"

Cette sous-section est la plus pertinente: "Création de projets makefile avec XCode"

https://developer.Apple.com/library/content/documentation/Porting/Conceptual/PortingUnix/preparing/preparing.html#//Apple_ref/doc/uid/TP40002849-BBCJABGC

1
Jamie

Vous pouvez construire en utilisant vos makefiles existants et créer un projet wrapper avec une cible personnalisée avec une phase de construction 'Run Script' qui appelle simplement votre makefile. Cela signifie que vous pourrez également utiliser le débogueur, mais vous n'obtiendrez probablement pas tous les avantages de l'éditeur avec la saisie semi-automatique, etc.

0
the_mandrill