2

Nous développons un certain nombre de jeux sur plusieurs palettes (DS/Wii/Xbox 360/PS3/PC/PSP). Chacun a son propre compilateur/éditeur de liens et débogueur. Nous voulons utiliser Visual Studio comme IDE et gérer le processus de construction, mais utiliser les compilateurs spécifiques à la plate-forme (et les paramètres) pour générer la sortie appropriée. Nous pourrions gérer le processus de construction en dehors de VS (en utilisant la confiture ou la fourmi), mais ce n'est pas la solution préconisée.Quelle est la meilleure façon de faire du développement multiplateforme avec Visual Studio?

Le chalutage de la bande, cela semble être un problème commun, mais personne n'a une bonne solution. Quelqu'un a-t-il résolu ce problème? Quelle est la meilleure façon de gérer cela. Un certain nombre de solutions viennent à l'esprit - auto-générer des scripts nant de la demande dans une étape de pré-construction (probablement le moins de travail mais pas encore idéal), remplacer cl.exe et link.exe avec des applications stub, utiliser msbuild (mais ceci est orienté vers le développement .net et non le code natif), écrire un plug-in VS personnalisé (beaucoup de travail - tous les pointeurs vers un existant soit commercial ou open soruce serait bon). Quelqu'un a essayé l'un de ceux-ci? Cela était bon pour toi? ;)

Vive

Répondre

1

Avez-vous regardé CMake? Il peut générer des fichiers de projet Visual Studio à partir d'une description textuelle.

+0

AFAICS CMake fonctionne de la "mauvaise façon". Nous voulons gérer les projets via VS, plutôt que de les gérer dans un système de construction arbitraire, puis de générer des projets VS. Maintenant, si CMake pouvait prendre une solution VS et construire des paramètres qui seraient une autre affaire;) – Gwaredd

+0

Hum. J'essaie toujours d'éviter de gérer des projets dans Visual Studio, car le support est si incroyablement moche. – JesperE

0

Appuyé la recommandation pour CMake, avec la mise en garde que vous ne serez pas en mesure de gérer des projets en VS pour autres plates-formes. Il n'est tout simplement pas écrit pour gérer les chemins de bibliothèque, définit, etc etc pour tout autre chose que le projet/la cible/la plate-forme en cours. Vous aurez presque certainement besoin de dire "les bibliothèques de la plateforme X vivent ici", et je ne vois pas comment y arriver.

2

CMake ne fait pas ce que je veux. Pour être clair - quand je dis "gérer le processus de construction" je veux dire, tout le monde peut saisir le projet du dépôt puis de VS sélectionner la plate-forme, compiler/exécuter, ajouter des fichiers, modifier les paramètres, etc et tout fonctionne par magie; Donc, pour répondre à ma propre question, après un peu de creuser c'est ce que j'ai trouvé. La manière «correcte» de faire ceci est d'écrire un plug-in pour VS qui ajoute une nouvelle plate-forme qui apparaîtrait dans le gestionnaire de configuration (comme ce fut le cas pour la Xbox, le Pocket PC, etc.). Malheureusement, il semblerait que Microsoft dans leur sagesse infinie ont décidé de ne pas exposer l'API pour cette fonctionnalité particulière au grand malpropre.

Cependant, vous pouvez écrire un complément et, en parallèle, remplacer cl.exe et link.exe par des programmes stub qui acheminent la compliation réelle vers les compilateurs appropriés. Il semble qu'il existe un projet open source VSItanium pour cela (2003 seulement et devrait être modifié pour les compilateurs personnalisés). SNSystems fait également cela avec leur package VSI pour la PSP. Il faudrait un certain temps pour écrire un plug-in. En attendant, une solution rapide consiste à écrire un script qui analyse les fichiers de solution et de projet, extrait les bits importants et génère les fichiers à inclure. nant (ou make, ou confiture ou autre) - appelé à partir d'une étape par construction. Soit cela ou descendez toute la route de solution makefile:/

MSBuild devrait vraiment être la voie à suivre. J'ai eu un jeu rapide avec cela et vous pouvez (presque) faire tout ce que je veux, mais d'une certaine manière, ça n'a pas vraiment gelé. J'ai pensé que c'était un projet C# - peut-être besoin de passer plus de temps avec ça, à moins que les gourous MSBuild veuillent me diriger dans la bonne direction.

+0

Je voudrais aussi cela aussi. L'édition d'un fichier texte semble être un énorme pas en arrière. Notre outil de développement promary est l'IDE MS sur win32 mais nous portons/construisons pour linux. Je veux générer automatiquement le fichier de construction à partir de VS, pas à partir d'un fichier texte pour ensuite construire les deux autres. Il y a une idée de produit ici que j'imagine. – Tim

1

Une autre option utilisée sur le SDK PSP Homebrew (MinPSPW) consiste à utiliser des projets Makefile.Vous utilisez l'éditeur de code de VS mais à la fin lorsque vous appelez le compilateur, il utilisera le compilateur correct basé sur votre fichier makefile. La plupart des erreurs de sortie seront interceptées par VS et mises en surbrillance sur vos sources.

Questions connexes