Ich habe vor kurzem angefangen zu lernen XS mit perlxstut und das Tutorial schlägt vor, dass ich mein Modul mit dem alten h2xs Werkzeug erstellen, um eine ExtUtils::MakeMaker-basierte Projekt zu erstellen. Bei reinen Perl-Projekten ist h2xs/EUMM jedoch seit langem zugunsten von Module::Install, Module::Build oder Dist::Zilla benachteiligt.Mit welchen Tools kann ein XS-Projekt erstellt werden?
Gibt es eine modernere Art, XS-Projekte zu erstellen? Kann XS-Projekte erstellen? Kann Module :: Build oder Dist :: Zilla XS-Projekte erstellen? Ihre Pod-Seiten sind still darüber.
Auf der anderen Seite, gilt die Kritik an h2xs/EUMM für XS-Projekte? Wenn Sie trotzdem einen C-Compiler benötigen, ist es auch sinnvoll, ein make-Tool zu verlangen?
EDIT: Ich sehe this question antwortet meine Frage zum Erstellen eines Projekts. Ich möchte immer noch etwas über das Bauen wissen: Ist EUMM die einzige Option, oder sind Module :: Build und Dist :: Zilla auch in der Lage, XS zu bauen?
Da Sie in einem Kommentar nach Feedback gefragt haben: Das sieht nach einer kurzen Inspektion gut aus. Nits: Vielleicht fügen Sie eine Abhängigkeit von ExtUtils :: CBuilder hinzu (needs_compiler macht das vielleicht schon). Bist du dir sicher, dass du dynamic_config brauchst: 1? Ich wette, du tust es nicht. Darüber hinaus möchten Sie möglicherweise Module :: Build zu configure_requires anstelle von requires hinzufügen. Ich glaube, dass es automatisch eine Abhängigkeit von der neuesten Version hinzufügt, wenn sie diese überhaupt nicht findet. Versuchen Sie, diese Zeile zu entfernen, führen Sie "./Build dist" aus und überprüfen Sie die generierte META.yml/META.json auf Erwähnung von Module :: Build. – tsee
@tsee: vielen Dank für Ihre Bewertung. Ich habe es Community-Wiki gemacht, so dass Sie beliebige Änderungen hinzufügen können, wenn Sie möchten. –
Hmmm ... Die Module :: Build :: API-Seite besagt, dass needs_compiler nach M :: B Version .36 verfügbar ist und automatisch auf true gesetzt wird, wenn c_source existiert oder xs code irgendwo gefunden wird. Wenn dies der Fall ist, wird ExtUtils :: CBuilder automatisch als build_requires Element hinzugefügt. –