I wanted to suppress warning from external libraries which can be done by marking them as system libraries. I figured out this is how to do it in .pro
QtCreator project file:
QMAKE_CXXFLAGS += -isystem ../libs/boost159/
The problem is that QtCreator relies on the INCLUDEPATH
setting, expects this:
INCLUDEPATH += ../libs/boost159/
If I remove it, the QtCreator no longer can find boost libraries:
I originally wanted to report this as a bug but after some reports I no longer believe the QtCreator developers will ever consider fixing this. Instead, I came here for a workaround.
Because qmake has conditional statements I could make use of something like this:
isCompiling {
QMAKE_CXXFLAGS += -isystem ../libs/boost159/
} else {
INCLUDEPATH += ../libs/boost159/
}
So that QtCreator's parsing would not fail but upon compile, isystem
would be used. Any ideas?
Exoplicitly: How can I make a conditional expression that will only trigger/not trigger when QtCreator is parsing the project file?
I have discovered the solution. You need to use
qmake
additional arguments and specify a variable of your choice, then test if it's defined. Since QtCreator doesn't know about these parameters, it won't execute the block intended for compilation:The setting then must be done in project management. Don't forget to set it for both release and debug: