Saya tahu cara mengambil variabel lingkungan lebar mesin normal di CMAKE menggunakan
$ENV{EnvironmentVariableName}
tetapi saya tidak dapat mengambil variabel lingkungan khusus pengguna. Mungkinkah dan bagaimana caranya?
windows
environment-variables
cmake
Lars Bilke
sumber
sumber
Jawaban:
Memasukkan variabel ke dalam skrip CMake Anda
Anda dapat mengirimkan variabel di baris dengan doa cmake:
atau dengan mengekspor variabel di BASH:
Kemudian Anda dapat mengambilnya dalam skrip cmake menggunakan:
sumber
Anda juga bisa memohon cmake sendiri untuk melakukan ini dengan cara lintas platform:
Hanya akan menyadari bahwa ini hanya dapat bekerja pertama kalinya. Jika CMake mengonfigurasi ulang dengan salah satu build yang berurutan (Anda cukup memanggil misalnya
make
, satuCMakeLists.txt
telah diubah dan CMake menjalankan proses pembuatan lagi), variabel lingkungan yang ditentukan pengguna mungkin tidak ada lagi (dibandingkan dengan variabel lingkungan sistem yang luas).Jadi saya mentransfer variabel lingkungan yang ditentukan pengguna itu dalam proyek saya ke dalam variabel cache CMake:
Referensi
sumber
Anda harus mengekspor variabel Anda. Jadi misalnya di Linux:
Variabel yang tidak diekspor kosong di CMAKE.
sumber
IF($ENV{COVERAGE}) ... END()
, doa:COVERAGE=1 cmake ..
. Memang, saya tidak memeriksa isinya, dan saya tidak tahu apakah itu akan. Tapi itu pasti berfungsi untuk pengujian apakah itu ditentukan atau tidak!Variabel lingkungan (yang Anda modifikasi menggunakan Properti Sistem) hanya disebarkan ke subkulit saat Anda membuat subkulit baru.
Jika Anda memiliki prompt baris perintah (DOS atau cygwin) terbuka ketika Anda mengubah User env vars, maka mereka tidak akan muncul.
Anda perlu membuka prompt baris perintah baru setelah Anda mengubah pengaturan pengguna.
Yang setara di Unix / Linux adalah menambahkan baris ke .bash_rc Anda: Anda perlu memulai shell baru untuk mendapatkan nilainya.
sumber
SET var_name=var_value
untuk mengatur variabel lingkungan dalam sesi DOS saat ini, atauSETX var_name var_value
untuk mengaturnya secara permanen: lihat set dan setx . mengatur lokal mungkin juga menarik.source ~/.bashrc
untuk menjalankan kembali.bashrc
file yang dimodifikasi dan mendapatkan nilai baru ke sesi Anda saat ini.