MacOS – How to have Qt Creator to recognize the environment variables

desktopmacosterminalunix

I use Qt Creator as my main IDE for cross-platform C++ application development. In doing so I had set it up so that it depends on a set of environment variables that I define in .bashrc.

On Linux (Ubuntu specifically) that works fine but on OSX Lion I cannot get it to work. I have defined my variables in .bashrc and .bashrc is sourced inside .bash_profile. The variables are defined when I do echo $VAR inside the terminal but when I open the IDE (from Dock) it does not recognize the variables. Does Dock not use bash to launch applications?

Best Answer

Apps launched from the dock or desktop or any GUI do not use bash. They are all children of the workspace (the loginwindow process).

To set the environment variables you need to edit ~/.MacOSX/environment.plist which is read when you login. This is a text plist and you need to set a key element to the name of the environment variable it uses and the next string element to its value. See Apple's documentation for Setting environment variables for user processes

e.g. mine is for WAFDIR and PATH

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>WAFDIR</key>
  <string>/Users/mark/src/third_party/git-svn/waf</string>

  <key>PATH</key>
  <string>/Users/mark/bin:/Users/mark/env/bin:/Users/mark/usr/local/bin:/usr/local/bin:/opt/local/bin:/usr/local/git/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/usr/libexec/binutils:</string>
</dict>
</plist>