Κυκλοφορία του συστήματος κατασκευής CMake 3.17.0

Εισήχθη απελευθέρωση μιας πολλαπλής πλατφόρμας δημιουργίας σεναρίων ανοιχτής κατασκευής CMake 3.17, το οποίο λειτουργεί ως εναλλακτική λύση στα Autotools και χρησιμοποιείται σε έργα όπως το KDE, LLVM/Clang, MySQL, MariaDB, ReactOS και Blender. Ο κώδικας CMake είναι γραμμένος σε C++ και διανέμεται με την άδεια BSD.

Το CMake είναι αξιοσημείωτο για την παροχή μιας απλής γλώσσας δέσμης ενεργειών, ενός μέσου επέκτασης της λειτουργικότητας μέσω λειτουργικών μονάδων, έναν ελάχιστο αριθμό εξαρτήσεων (χωρίς δέσμευση σε M4, Perl ή Python), υποστήριξη προσωρινής αποθήκευσης, παρουσία εργαλείων για πολλαπλή μεταγλώττιση, υποστήριξη για δημιουργία build αρχεία για ένα ευρύ φάσμα συστημάτων κατασκευής και μεταγλωττιστών, τα βοηθητικά προγράμματα παρουσίας ctest και cpack για τον καθορισμό δοκιμαστικών σεναρίων και δημιουργίας πακέτων, το βοηθητικό πρόγραμμα cmake-gui για διαδραστική ρύθμιση παραμέτρων κατασκευής.

Ο κύριος βελτιώσεις:

  • Προστέθηκε μια νέα γεννήτρια σεναρίων συναρμολόγησης που βασίζεται στην εργαλειοθήκη Ninja - "Ninja Multi-Config", η οποία διαφέρει από την παλιά γεννήτρια ως προς την ικανότητα επεξεργασίας πολλών διαμορφώσεων συναρμολόγησης ταυτόχρονα.
  • Στη δημιουργία σεναρίων συναρμολόγησης για το Visual Studio εμφανίστηκε τη δυνατότητα ορισμού αρχείων πηγής που σχετίζονται με κάθε διαμόρφωση (ανά πηγές διαμόρφωσης).
  • Η δυνατότητα ορισμού μετα-παραμέτρων για το CUDA (“cuda_std_03”, “cuda_std_14” κ.λπ.) έχει προστεθεί στα εργαλεία για τη ρύθμιση παραμέτρων μεταγλωττιστή (Λειτουργίες μεταγλώττισης).
  • Προστέθηκαν μεταβλητές "CMAKE_CUDA_RUNTIME_LIBRARY" και "CUDA_RUNTIME_LIBRARY" για να επιλέξετε τον τύπο των βιβλιοθηκών χρόνου εκτέλεσης κατά τη χρήση του CUDA.
  • Προστέθηκε η ενότητα "FindCUDAToolkit" για τον προσδιορισμό της εργαλειοθήκης CUDA που είναι διαθέσιμη στο σύστημα χωρίς να ενεργοποιηθεί η γλώσσα CUDA.
  • Προστέθηκε η εντολή "--debug-find" στο cmake για την έξοδο πρόσθετων αναγνώσιμων διαγνωστικών κατά την εκτέλεση εργασιών αναζήτησης. Για παρόμοιους σκοπούς, προστέθηκε η μεταβλητή CMAKE_FIND_DEBUG_MODE.
  • Προστέθηκε υποστήριξη για αναζήτηση εργαλείων CURL με χρήση αρχείων διαμόρφωσης "CURLConfig.cmake" που δημιουργούνται από cmake στη μονάδα "FindCURL". Για να απενεργοποιήσετε αυτήν τη συμπεριφορά, παρέχεται η μεταβλητή CURL_NO_CURL_CMAKE.
  • Η λειτουργική μονάδα FindPython έχει προσθέσει τη δυνατότητα αναζήτησης στοιχείων Python σε εικονικά περιβάλλοντα που διαχειρίζονται με χρήση "conda".
  • Το βοηθητικό πρόγραμμα ctest έχει προσθέσει τις επιλογές "--no-tests=[error|ignore]" για να ορίσει τη συμπεριφορά στην περίπτωση που δεν υπάρχουν δοκιμές και το "--repeat" για να ορίσει τις προϋποθέσεις για την επανάληψη των δοκιμών (μέχρι να περάσει, μετά το τάιμ άουτ).
  • Οι ιδιότητες στόχου συναρμολόγησης INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES και INTERFACE_LINK_DEPENDS μεταφέρονται πλέον μεταξύ των εσωτερικών εξαρτήσεων των στατικά συναρμολογημένων βιβλιοθηκών.
  • Όταν χρησιμοποιείτε την εργαλειοθήκη MinGW, η αναζήτηση για αρχεία DLL με την εντολή find_library είναι απενεργοποιημένη από προεπιλογή (αντίθετα, η προεπιλεγμένη προσπάθεια είναι η εισαγωγή βιβλιοθηκών ".dll.a").
  • Η λογική για την επιλογή του βοηθητικού προγράμματος ninja στη γεννήτρια Ninja τώρα δεν εξαρτάται από το όνομα του εκτελέσιμου αρχείου - χρησιμοποιείται το πρώτο βοηθητικό πρόγραμμα ninja-build, ninja ή samu που βρίσκεται στις διαδρομές που ορίζονται μέσω της μεταβλητής περιβάλλοντος PATH.
  • Προστέθηκε μια εντολή "-E rm" στο cmake που μπορεί να χρησιμοποιηθεί για την αφαίρεση αρχείων και καταλόγων αντί για τις ξεχωριστές εντολές "-E remove" και "-E remove_directory".

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο