Ρύθμιση περιβάλλοντος διαμεσολαβητή με CMAKE_PROJECT_INCLUDE_BEFORE
Χρησιμοποιήστε ένα πρώιμο αρχείο συμπερίληψης έργου όταν ένα περιτύλιγμα επιτρέπει ορίσματα CMake αλλά δεν αποκαλύπτει το περιβάλλον εκκίνησής του.
Ένα περιτύλιγμα κατασκευής μπορεί να σας επιτρέπει να προσθέτετε ορίσματα CMake, ενώ κρύβει το περιβάλλον με το οποίο εκκινείται το CMake. Ένα πρώιμο άγκιστρο έργου σάς δίνει ένα σημείο για να παρέχετε τις τιμές διαμεσολαβητή της διαδικασίας διαμόρφωσης.
Αποθηκεύστε ένα μικρό αρχείο σε σταθερή, απόλυτη διαδρομή, για παράδειγμα /home/alex/cmake/proxy-env.cmake:
set(ENV{http_proxy} "http://proxy.example:8080")
set(ENV{https_proxy} "http://proxy.example:8080")Δώστε αυτό το αρχείο στη διαμόρφωση:
cmake -S . -B build -DCMAKE_PROJECT_INCLUDE_BEFORE=/home/alex/cmake/proxy-env.cmakeΤο CMAKE_PROJECT_INCLUDE_BEFORE συμπεριλαμβάνει το αρχείο στην αρχή κάθε κλήσης project(). Εκτελείται επομένως νωρίτερα από το CMAKE_PROJECT_INCLUDE, το οποίο εκτελείται στο τέλος αυτής της κλήσης. Αυτή η διάκριση έχει σημασία όταν η ρύθμιση γλώσσας ή ένα ένθετο έργο χρειάζεται τη διαδρομή.
Για δημόσιες λήψεις κατά τη διαμόρφωση που επιτρέπονται μέσω δημόσιου μεσολαβητή, επιλέξτε τις τιμές URL HTTP από τη λίστα διαμεσολαβητών HTTP. Το άγκιστρο εξακολουθεί να μην μπορεί να επηρεάσει εργασία που εκτελέστηκε πριν από αυτό, συμπεριλαμβανομένης μιας λήψης πριν από την πρώτη κλήση project(). Δεν γράφει επίσης μόνιμη ρύθμιση περιβάλλοντος του λειτουργικού συστήματος.
Διεργασίες που ξεκινά αργότερα αυτή η διεργασία CMake μπορούν να κληρονομήσουν τις τιμές, εφόσον οι πελάτες δικτύου τους τις υποστηρίζουν. Μια μεταγενέστερη κατασκευή που εκκινείται χωριστά έχει δικό της περιβάλλον. Μια λήψη που αναβάλλεται για εκείνο το στάδιο κατασκευής πρέπει να λάβει τον διαμεσολαβητή της και εκεί.
Κρατήστε το αρχείο αγκίστρου έξω από δημόσιο δέντρο πηγαίου κώδικα όταν περιέχει ιδιωτικά στοιχεία σύνδεσης. Το όρισμα -D αποθηκεύει τη διαδρομή του αγκίστρου ως μεταβλητή CMake· το set(ENV{...}) αλλάζει το περιβάλλον της εκτελούμενης διεργασίας αντί να μετατρέπει μια μεταβλητή προσωρινής μνήμης σε ρύθμιση διαμεσολαβητή.