Sé cómo recuperar una variable de entorno normal en toda la máquina en CMAKE usando
$ENV{EnvironmentVariableName}
pero no puedo recuperar una variable de entorno específica del usuario. ¿Es posible y como?
windows
environment-variables
cmake
Lars Bilke
fuente
fuente
Respuestas:
Obtener variables en su script de CMake
Puede pasar una variable en la línea con la invocación de cmake:
o exportando una variable en BASH:
Luego puede recogerlo en un script de cmake usando:
fuente
También puede invocar hacer sí mismo para hacer esto de una manera multiplataforma:
Solo tenga en cuenta que es posible que esto solo funcione la primera vez. Si CMake se reconfigura con una de las compilaciones consecutivas (solo llama
make
, por ejemplo ,CMakeLists.txt
se cambió una y CMake se ejecuta nuevamente en el proceso de generación), es posible que la variable de entorno definida por el usuario ya no esté allí (en comparación con las variables de entorno del sistema).Así que transfiero esas variables de entorno definidas por el usuario en mis proyectos a una variable en caché de CMake:
Referencia
fuente
Necesita exportar sus variables. Entonces, por ejemplo en Linux:
Las variables no exportadas están vacías en CMAKE.
fuente
IF($ENV{COVERAGE}) ... END()
, invocación:COVERAGE=1 cmake ..
. Por supuesto, no verifico el contenido y no sé si lo haría. ¡Pero ciertamente funciona para probar si está definido o no!Las variables de entorno (que modifica mediante las Propiedades del sistema) solo se propagan a las subcapas cuando crea una nueva subcapa.
Si tenía un indicador de línea de comandos (DOS o cygwin) abierto cuando cambió las variables de entorno de usuario, entonces no aparecerán.
Debe abrir una nueva línea de comandos después de cambiar la configuración del usuario.
El equivalente en Unix / Linux es agregar una línea a su .bash_rc: necesita iniciar un nuevo shell para obtener los valores.
fuente
SET var_name=var_value
para configurar la variable de entorno en la sesión actual de DOS, oSETX var_name var_value
para configurarla permanentemente: consulte set y setx . establecer local también puede ser interesante.source ~/.bashrc
para volver a ejecutar el.bashrc
archivo modificado y obtener los nuevos valores en su sesión actual.