Ένα περιτύλιγμα κατασκευής μπορεί να σας επιτρέπει να προσθέτετε ορίσματα 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{...}) αλλάζει το περιβάλλον της εκτελούμενης διεργασίας αντί να μετατρέπει μια μεταβλητή προσωρινής μνήμης σε ρύθμιση διαμεσολαβητή.

Σχετικά άρθρα