56
votes

I have a qmake file generated by Qt creator. I am modifying it but I do not manage to understand how to create a variable.

For example, I want to declare the library MYPATH as I did here:

MYPATH = /lib/aaa/bbb
unix:!macx:!symbian: LIBS += -L$(MYPATH)

When I run qmake I find in the generated makefile

LIBS = ....... -L$(MYPATH) .....

But the MYPATH variable is not declared anywhere.

Does anyone know how to declare such a variable properly?

2

2 Answers

112
votes

QMake uses its own syntax for variable references.

  • VAR = foobar => Assign value to variable when qmake is run
  • $$VAR => QMake variable's value at the time qmake is run
  • $${VAR} => QMake variable's value at the time qmake is run (identical but enclosed to separate from surrounding text)
  • $(VAR) => Contents of an Environment variable at the time Makefile (not qmake) is run
  • $$(VAR) =>Contents of an Environment variable at the time qmake (not Makefile) is run

Try it like this

MYPATH = /lib/aaa/bbb
unix:!macx:!symbian: LIBS += -L$${MYPATH}
17
votes

Other useful variable type: $$[...] This means "configuration option that were set when Qt was built"

Example:

message($$[QT_INSTALL_BINS])

This gives:

C:\Qt\Qt5.0.2\5.0.2\msvc2010_opengl\bin