బిల్డ్ ర్యాపర్ మీకు CMake ఆర్గ్యుమెంట్‌లను జోడించడానికి అనుమతించవచ్చు, కానీ CMake ప్రారంభమయ్యే వాతావరణాన్ని దాచుతుంది. ప్రారంభ ప్రాజెక్ట్ hook కాన్ఫిగర్ ప్రక్రియ యొక్క ప్రాక్సీ విలువలను అందించడానికి ఒకే స్థలం ఇస్తుంది.

ఒక చిన్న ఫైల్‌ను స్థిరమైన పూర్తి (absolute) మార్గంలో సేవ్ చేయండి, ఉదాహరణకు /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 కంటే ముందుగా నడుస్తుంది. భాషా సెటప్ లేదా నెస్టెడ్ ప్రాజెక్ట్‌కు ఈ మార్గం అవసరమైనప్పుడు ఈ భేదం ముఖ్యం.

కాన్ఫిగర్ సమయంలో పబ్లిక్ మధ్యవర్తి ద్వారా అనుమతించబడిన పబ్లిక్ డౌన్‌లోడ్‌ల కోసం, HTTP ప్రాక్సీ జాబితా నుండి HTTP URL విలువలను ఎంచుకోండి. hook ఇప్పటికీ తనకు ముందు జరిగిన పనిని ప్రభావితం చేయలేదు, మొదటి project() కాల్‌కు ముందున్న డౌన్‌లోడ్‌తో సహా. ఇది ఆపరేటింగ్ సిస్టమ్ యొక్క శాశ్వత వాతావరణ సెట్టింగ్‌ను కూడా రాయదు.

ఈ CMake ప్రక్రియ తర్వాత ప్రారంభించే ప్రక్రియలు, వాటి నెట్‌వర్క్ క్లయింట్‌లు మద్దతు ఇస్తే, విలువలను వారసత్వంగా పొందగలవు. తర్వాత విడిగా ప్రారంభించిన బిల్డ్‌కు దాని సొంత వాతావరణం ఉంటుంది. ఆ బిల్డ్ దశకు వాయిదా వేసిన డౌన్‌లోడ్ కూడా అక్కడ తన ప్రాక్సీని పొందాలి.

hook ఫైల్‌లో ప్రైవేట్ కనెక్షన్ వివరాలు ఉంటే దాన్ని పబ్లిక్ సోర్స్ ట్రీ వెలుపల ఉంచండి. -D ఆర్గ్యుమెంట్ hook మార్గాన్ని CMake వేరియబుల్‌గా నిల్వ చేస్తుంది; set(ENV{...}) నడుస్తున్న ప్రక్రియ యొక్క వాతావరణాన్ని మారుస్తుంది, కాష్ వేరియబుల్‌ను ప్రాక్సీ సెట్టింగ్‌గా మార్చదు.

సంబంధిత వ్యాసాలు