Налаштування проксі-середовища за допомогою 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.cmakeCMAKE_PROJECT_INCLUDE_BEFORE включає файл на початку кожного виклику project(). Тому він виконується раніше, ніж CMAKE_PROJECT_INCLUDE, який виконується в кінці цього виклику. Ця різниця важлива, коли налаштуванню мови або вкладеному проєкту потрібен цей маршрут.
Для публічних завантажень під час конфігурації, дозволених через публічного посередника, вибирайте значення HTTP URL зі списку HTTP-проксі. Хук усе ще не може вплинути на роботу, виконану до нього, зокрема на завантаження до першого виклику project(). Він також не записує постійного налаштування середовища операційної системи.
Процеси, запущені цим процесом CMake пізніше, можуть успадкувати значення, якщо їхні мережеві клієнти це підтримують. Пізніша збірка, запущена окремо, має власне середовище. Завантаження, відкладене до цього етапу збірки, теж має отримати там свій проксі.
Тримайте файл хука поза публічним деревом джерел, якщо він містить приватні відомості про з'єднання. Аргумент -D зберігає шлях хука як змінну CMake; set(ENV{...}) змінює середовище працюючого процесу, а не перетворює змінну кешу на налаштування проксі.