პროქსის პარამეტრები CMake ExternalProject-ის ჩამოტვირთვებისთვის
განსაზღვრეთ ExternalProject-ის უკან მდგომი პროცესი და ჩამოტვირთვის ნაბიჯი, სანამ ჩათვლით, რომ წარმატებული CMake კონფიგურაცია ამტკიცებს, რომ შემდგომი დამოკიდებულებების ჩამოტვირთვები იმავე გზას გადის.
CMake წარმატებით კონფიგურდება. აწყობა მოგვიანებით იწყება, ცდილობს გარე დამოკიდებულების ჩამოტვირთვას და პროქსიზე ვარდება. წინა წარმატებას, შესაძლოა, ეს ჩამოტვირთვა საერთოდ არ გამოუცდია.
ExternalProject_Add() ქმნის ნაბიჯებს, რომლებიც აწყობის დროს შეიძლება გაეშვას. იმ პროცესს, რომელიც ამ ნაბიჯებს იწყებს, შეიძლება განსხვავებული გარემო ჰქონდეს, ვიდრე ტერმინალს ან IDE-ს, რომელმაც ძირითადი პროექტი დააკონფიგურირა. ამ განსხვავების გამოტოვება CI-ში ადვილია, სადაც კონფიგურაცია და კომპილაცია ცალკე სამუშაოები შეიძლება იყოს.
იპოვეთ ქსელური ოპერაცია
- URL-ით ჩამოტვირთვა იყენებს CMake-ის ჩამოტვირთვის გზას.
- Git წყარო იძახებს Git ტრანსპორტს საკუთარი მხარდაჭერილი კონფიგურაციით.
- მორგებული
DOWNLOAD_COMMANDიყენებს იმ პროგრამას, რომელიც პროექტმა მიუთითა.
ნუ ჩათვლით, რომ ერთი პროგრამის პროქსის პარამეტრი სამივეს აკონფიგურირებს. წაიკითხეთ წარუმატებელი ნაბიჯის ბრძანება და შეცდომა, სანამ დამოკიდებულების URL-ს შეცვლით.
თუ არჩეული ჩამომტვირთავი პროქსის გარემოს ცვლადებს მხარს უჭერს, გადასცეთ ისინი იმ პროცესს, რომელიც რეალურად ასრულებს ამ ნაბიჯს. საჯარო ჩამოტვირთვებისთვის, რომელთა კლიენტი HTTP პროქსის იღებს, HTTP პროქსების სია გვთავაზობს საბოლოო წერტილების კანდიდატებს, როცა ეს გზა დაშვებულია. მსგავსი სახელის ჩვეულებრივი CMake ქეშის ცვლადის გადაცემა ავტომატურად არ არის იგივე, რაც შვილობილი პროცესის გარემოს ცვლადის დაყენება.
შეინარჩუნეთ განსხვავება FetchContent-ისგანაც: მისი ჩვეულებრივი დამოკიდებულებების შევსება კონფიგურაციის დროს ხდება, ამიტომ იქ მომუშავე რეცეპტი არ ადასტურებს ExternalProject-ის აწყობის ნაბიჯის გარემოს.
ძველი პასუხი, რომელიც ურჩევს მორგებულ ჩამომტვირთავს ისტორიული გადამისამართების შეზღუდვის გვერდის ასავლელად, არ არის მტკიცებულება, რომ ყოველ თანამედროვე წარუმატებლობას ახალი ჩამოტვირთვის ბრძანება სჭირდება. შეამოწმეთ, არის თუ არა მიმდინარე შეცდომა გადამისამართება, პროქსის ავთენტიფიკაცია, სერტიფიკატის ნდობა თუ უბრალო ხელმისაწვდომობა. შეინარჩუნეთ მოსალოდნელი არქივის ჰეში და TLS ვალიდაცია შესაბამისი გზის გასწორებისას.