Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot set custom $PATH for Qt Creator on OS X 10.10

I use Qt Creator with custom build system (ninja). The issue is that the $PATH variable passed to the Qt Creator IDE is absolutely vanilla: /usr/bin:/bin:/usr/sbin:/sbin.

So I have to write bash -c '/path/to/ninja list of targets' instead of just ninja list of targets, or perform build steps in a terminal, not in the IDE.

I tried all known recipes to set up the $PATH.

  • ~/.bash_profile and ~/.profile
  • /etc/paths
  • /etc/paths.d/*
  • /etc/launchd.conf (setenv PATH .....)
  • ~/Library/LaunchAgents/*.plist (sh -c 'launchtcl setenv PATH $PATH:.....')
  • /Library/LaunchAgents/*.plist

The idea of using launch agenes is described in a StackOverflow answer.

None works! Any arbitrary environment var in my custom .plist file sets correctly, - any but the PATH. (I have tested it simply: created a custom build step echo xzxzxz=$XZXZXZ path=$PATH where xzxzxz is also set in my launch agent).

It's interesting that if I launch Qt Creator from bash session ('/Applications/Qt Creator.app/Contents/MacOS/Qt Creator' &), it gets correct PATH, same as the bash itself.

Also it's interesting that the PATH assigned with the launch agent is later overwritten. There I wrote sh -c 'launchctl setenv PATH $PATH:/HELLOWORLD', but I don't see that HELLOWORLD in echo $PATH. So, there are a race condition, someone rebuilds the PATH from /etc/paths and /etc/paths.d later.

Thus:

  • is there an exhaustive and up-to-date explanation how to set up environment variables, and particularly PATH, on OSX 10.10 ?
  • why the PATH becomes vanilla?
  • how to win with Qt Creator?
like image 416
Nickolay Merkin Avatar asked Oct 31 '22 01:10

Nickolay Merkin


1 Answers

You could just update the path to the build environment of your project inside Qt Creator.

Newer versions (>3.3 AFAIR, 3.4 for certain) allow to set environment overrides in each the kit, so that you could have it for all projects using those.

like image 56
Tobias Hunger Avatar answered Nov 13 '22 02:11

Tobias Hunger