Question

How to read file content into a variable in qmake project file? For example, I'd like to have the contents of KEY read from a file and pass it to the compiler:

DEFINES += KEY=**some magic and filename here**
Was it helpful?

Solution

On all platforms, there's a built-in replace function $$cat:

# set a qmake variable
KEY = "$$cat(/path/to/the/file)"
# propagate the variable to C/C++
DEFINES += "KEY=\"$$KEY\""

The effect of this line is the same as if you added the following line at the beginning of every translation unit (mostly a fancy name for a .cpp file):

#define KEY <contents of the file>

Suppose that the file contains a single line:

FOO

Then:

 // source
 qDebug() << KEY;
 // preprocessed source
 qDebug() << "FOO";
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top