Alternative au fichier Makefile natif pour windows

Quelle est une bonne alternative à Makefile sur Windows?

Je comstack une collection de fichiers c ++ (.cpp et .h) en utilisant cl.exe.

Je préférerais ne pas utiliser Makefile, car je veux minimiser la quantité d’utilitaires tiers dont les utilisateurs auront besoin pour créer mon application.

Drew J. Sonne.

VisualStudio est livré avec nmake qui ne nécessiterait aucun outil tiers.

MSBuild , le système de génération Microsoft. C’est le système de génération basé sur XML utilisé par Visual Studio. Si vous avez installé Visual C ++, vous avez installé MSBuild.

Les fichiers de projet Visual Studio ne sont que des fichiers MSBuild. Tout ce que vous pouvez faire dans Visual Studio avec les fichiers de projet, vous pouvez le faire manuellement (ou vice versa; vous pouvez créer des projets Visual Studio sur la ligne de commande).

Je pense que cela dépend des compilateurs C ++ que vous supportez pour Windows. Si vous ciblez exclusivement les utilisateurs de Visual Studio, il vous suffit de fournir les fichiers de projet nécessaires pour que vos utilisateurs puissent les ouvrir dans l’EDI ou utiliser devenv.exe / msbuild.exe pour créer votre projet via la ligne de commande. Dans ce cas, je vous suggère de fournir les fichiers de projet pour la version la plus ancienne de Visual Studio que vous prenez en charge, car les plus récents pourront convertir les fichiers au format requirejs.

Cela devient un peu plus compliqué si vous essayez de prendre en charge d’autres compilateurs C ++ pour Windows également. Soit vous devez fournir des fichiers de projet pour tous leurs IDE, ce qui peut être difficile si vous n’y avez pas access, ou vous devez choisir le plus petit dénominateur commun, ce qui serait le fichier Makefile le plus simple possible. et j’espère que la plupart des programmeurs auront installé, ce qui n’est pas une hypothèse déraisonnable.

Si votre logiciel nécessite les bibliothèques Boost, une autre approche consisterait à fournir un ensemble de fichiers .jam, car la plupart des programmeurs disposant de Boost ont probablement des bjam qui remontent à leur date de création de Boost. Bien que bjam ne soit pas aussi simple que make, il présente l’avantage majeur de savoir comment gérer plusieurs compilateurs. Mais je ne considérerais que bjam si le logiciel dissortingbué nécessitait un Boost, sinon c’est une autre dépendance indésirable.