I'm using CLion IDE, Cmake and trying to write Hello world using CERN ROOT library.
CMakeLists.txt:
message(STATUS $ENV{ROOTSYS})
~/.bashrc:
export ROOTSYS="$HOME/tools/root-build/"
During build in CLion $ENV{ROOTSYS}
is empty by some reason. But $ENV{PATH}
returns correct $PATH
.
What I did wrong?
From CLion developers FAQ:
Q: How to pass environment variables and parameters to CMake in CLion?
A: The best way is to use Preferences/Settings | Build, Execution, Deployment | CMake dialog.
As for .bashrc
file, it is only used by bash. CLion doesn't need to use bash for run configuration process.
Go to File -> Settings -> Build,Execution,Deployment
Click Pass system and...
For old Clion
For Clion 2017.2
Variables from .bashrc aren't passed
On Ubuntu 17.04, you can set a permanent environment variable by modifying
/etc/enviornment
[I assume you can do this in other versions of Linux, but I provide the version of the system that I am using.]
For example, I am compiling test cases that assume that ${GOOGLE_MOCK} has been set. I added the following to my /etc/environment
file, and now I don't have to rewrite all of my CMakeLists.txt files:
GOOGLE_MOCK=/usr/local/src/googletest/googlemock
GOOGLE_TEST_HOME=/usr/local/src/googletest/googletest
Clion just became much more useable. Hope this helps someone else!
One thing you can check is the .gdbinit
. Clion on Linux will invoke the gdb, which will read in the .gdbinit
. I happen to have set environment LD_LIBRARY_PATH xxx
in my .gdbinit
file, which will override whatever you set LD_LIBRARY_PATH
from shell, whether through direct export
or through .bashrc
, or from CLion environment variable panel.
Hope this helps.