qmake неправильно определяет переменные - PullRequest
1 голос
/ 27 марта 2012

В этом коде qmake:

</p>

<code>MY_COMPILER = mingw

warning($$MY_COMPILER)
contains(MY_COMPILER, mingw)
{
    INCLUDEPATH += ../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0/src
    DEPENDPATH  += ../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0/src
    QMAKE_RPATHDIR *= ../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0/lib
    contains(QWT_CONFIG, QwtFramework) {

        LIBS      += -F../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0/lib
    }
    else {

        LIBS      += -L../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0/lib
    }

    IPATH       = ../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0/src
    warning(Using MinGW compiler)
}
else {
    INCLUDEPATH += ../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0-intel-shared/src
    DEPENDPATH  += ../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0-intel-shared/src
    QMAKE_RPATHDIR *= ../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0-intel-shared/lib
    contains(QWT_CONFIG, QwtFramework) {

        LIBS      += -F../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0-intel-shared/lib
    }
    else {

        LIBS      += -L../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0-intel-shared/lib
    }

    IPATH       = ../../libsrc/Qwt/qwt-6.0.1-win-Qt-4.8.0-intel-shared/src
    warning(Using Intel compiler)
}
</code>

Что бы я ни определил для переменной MY_COMPILER, он продолжает принимать первое условие, в то время как в строке 3 выдается предупреждение о правильной введенной мной переменной.

Как я могу опубликовать переменную, а затем проверить, определена ли она?

Любые усилия высоко ценятся.

Спасибо.

1 Ответ

1 голос
/ 27 марта 2012

Я не вижу ничего плохого в вашем коде, но вы можете попробовать это следующим образом:

CONFIG += mingw

mingw {
    //...
} else {
    //...
}

РЕДАКТИРОВАТЬ:

Еще одна вещь, которую вы можете попробовать, это иметь условие иоткрывая фигурные скобки в той же строке, если я правильно помню, это вызывало некоторые проблемы в прошлом.

Тогда выражение будет выглядеть так:

contains(MY_COMPILER, mingw) {
     //...
} else {
     //...
}
...