Set include path with environment variable value

16,905

Solution 1

Just found out the solution myself. Though I granted a point to Aidos and cjhuitt for their answers that put me on the right track and saved me valuable time. A special thanks for the link to the qmake documentation.

The first point is that I should modify the .pro file and not fiddle with the extended build arguments.

To get the content of an environment variable when qmake is processed one should use the following syntax

INCLUDEPATH += $$(MITK_INCLUDE_PATH)

Note that to get the content of an environment variable when make is processed one should use the following syntax

INCLUDEPATH += $(MITK_INCLUDE_PATH)

But this won't have the same effect if the environment variable contains multiple paths. The first form is then preferable.

Paths in the environment variable must be separated by spaces because the ; is not recognized.

If a path contain spaces, put quotes around it. Spaces appearing between the quotes will be replaced by '\ '.

Solution 2

I think there's a cleaner way to do this, but I can't remember. Anyway, you could use the system directive:

INCLUDEPATH += $$system( echo $MITK_INCLUDE_PATH )

You may also want to add it to depend path:

DEPENDPATH += $$system( echo $MITK_INCLUDE_PATH )

Solution 3

Have you tried adding:

INCLUDEPATH += <the path to the MITK headers>

in your project's .pro file ?

And possibly you'll also need to edit LIBS and DEPENDPATH.

See QMake Manual

Share:
16,905
chmike
Author by

chmike

Updated on June 16, 2022

Comments

  • chmike
    chmike about 2 years

    We are trying to use the MITK library with Qt on Linux.

    Unfortunately MITK has no install functionality and it also depends on ITK and VTK. So we end up with header files scattered in many directories.

    We would like to specify the list of directories to add in the include path in an environment variable like this : INCPATH+=$MITK_INCLUDE_PATH. But this doesn't seem to work.

    How could we achieve this? Is there a better way?

  • chmike
    chmike almost 15 years
    It works if I copy past the list of directories. Is it possible to do the same with an environment variable ?
  • Florian
    Florian almost 15 years
    if you have a list of directories in your environment variable that are separated by ';' , you can use something like this (not tested): INCLUDEPATH += replace($$(MITK_INCLUDE_PATH), ";", " ")
  • Saulius Žemaitaitis
    Saulius Žemaitaitis almost 15 years
    Actually it doesn't work on windows either (at least it didn't work for me).
  • qed
    qed over 10 years
    What if I want to include something like this $HOME/x/y/z?