LINUX.ORG.RU

Можно ли разделить значения переменных qmake по целям в результирующем Makefile?

 ,


0

1

Можно ли распределить разные значения переменных qmake между разными целями сборки в результирующем Makefile?

Т.е. напр. если мне нужно что бы при сборке ($ make) с целью debug был определен какой либо макро (скажем -DDEBUG), а при сборке с целью release это макроопределение должно отсутствовать то можно ли это сделать средствами qmake?

★★★
Ответ на: комментарий от Stil

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

normann ★★★
() автор топика
Ответ на: комментарий от normann

Имеются же QMAKE_CFLAGS/QMAKE_CXXFLAGS для общих флагов для С/С++, и различные QMAKE_CFLAGS_DEBUG/QMAKE_CFLAGS_RELEASE/QMAKE_CXXFLAGS_DEBUG/QMAKE_CXXFLAGS_RELEASE. Чем их недостаточно?

EXL ★★★★★
()
Ответ на: комментарий от normann

тогда влияет на все цели проекта либо не включается и не влияет вообще ни на одну цель

Т.е. ты хочешь чем-то рулить на уровне целей make'а? Так я не умею, да.

А зачем это может быть нужно? Ты поставляешь пакет сорцов без .pro файла?..

Т.е. в чем проблема сделать

qmake "CONFIG+=test" test.pro && make
?

Stil ★★★★★
()
Ответ на: комментарий от Stil

Согласен, он хочет какого-то странного извращения, либо сформулировать нормально и внятно не может. Поставлять Makefile с Qt-проектом (да и вообще любым кросс-платформенным проектом) — бредятина. Либо *.pro файл, либо CMake, либо и то и другое, как в Otter-Browser, к примеру.

EXL ★★★★★
()
Ответ на: комментарий от CryAngel

CMake

Да елки палки лень матушка учить что-то новое ради одной единственной вещи...;) есть же старое. Хотя если ничего не получится то вполне может быть.

normann ★★★
() автор топика
Ответ на: комментарий от Stil

Ну если бы я поставлял без pro файла то в чем бы и проблема была?

Т.е. в чем проблема сделать
qmake «CONFIG+=test» test.pro && make ?

Проблема в том что если разнящих значений достаточно много то так писать в ком. строке уже не получется.

normann ★★★
() автор топика
Ответ на: комментарий от EXL

За все мое чтение ЛОРа уж который раз убеждаюсь что 50% пациентов просто не в состоянии прочитать вопрос, у них желание что нибудь вписать выше желания прочитать.

normann ★★★
() автор топика
Последнее исправление: normann (всего исправлений: 1)
Ответ на: комментарий от normann

Тогда ответ — нельзя. QMake, как и CMake — это утилита для генерации Makefile. При переключении сборки debug/release в том же Qt Creator Makefile'ы пересоздаются заново. То извращение, которое вы хотите, реализуется только собственноручным созданием Makefile.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Стоп, все правильно. Ты тогда дал правильное решение, а я его не увидел и еще наговорил всякого и сам попал под процент тех кто не читает. QMAKE_CXXFLAGS_DEBUG то что нужно (не решает вопрос в целом, но в моем случае то что нужно). Каюсь, сыплю пепел на голову и все такое... прошу меня простить.

normann ★★★
() автор топика
Ответ на: комментарий от normann

Проблема в том что если разнящих значений достаточно много то так писать в ком. строке уже не получется.

Что такое «разнящие значения»?

QMAKE_CXXFLAGS_DEBUG то что нужно

Мило, а ты в курсе что при сборке из командной строки ты в принципе должен сделать

qmake CONFIG+=debug test.pro
чтобы был именно debug и все твои дефайны и отличия включились? Хотя если ты через IDE типа Qt Creator работает то это удобно, как никак эти две опции debug/release там удобно переключать...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Ты наверно не с той ноги в тот день встал?

normann ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.