LINUX.ORG.RU

Выполнить дополнительный шаг перед компиляцией

 , ,


0

1
gsoapgen.target = DataLogger.wsdl
gsoapgen.commands = cd $$PWD; ./generate_soap.sh
QMAKE_EXTRA_TARGETS += gsoapgen
PRE_TARGETDEPS += DataLogger.wsdl

SOURCES += \
   GeneratedSrc.cpp \
   ...

HEADERS += \
   DataLogger.wsdl \
   GeneratedHeader.h
   ...

Перед компиляцией мне нужно сгенерировать пару файлов (GeneratedHeader / Src). Я запихнул генерацию в скрипт generate_soap.sh. В принципе приведённая схема работает, но генерация производится каждый раз, когда я произвожу сборку. Как можно сделать так, чтобы скрипт запускался только тогда, когда файл DataLogger.wsdl изменится. Если на qmake не получится извернуться, может быть имеет смысл сделать то же самое на cmake?

★★★★★

На qbs должно быть легко. Там есть для этого средства.

А так, почему бы в самом скрипте не проверять изменение файла?

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

На qbs должно быть легко. Там есть для этого средства.

Мне пока не ясно, какое будущее планируется для qbs.. Вроде официальных заявлений, что это «замена qmake» я пока не видел / не слышал. А из общения с разработчиками, я так понял, что её ещё год пилить будут как минимум.

А так, почему бы в самом скрипте не проверять изменение файла?

Как wordaround сойдёт. Только как это лучше сделать?

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

Добавь в скрипт проверку по хэшу.
Как wordaround сойдёт.

Ок, спс.

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

Добавь в скрипт проверку по хэшу.

Зачем, если можно проверять по timestamp? Хеш сильно дороже относительно проверки таймштампа. %)

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

Для почти 95% случаев он годится, сам Qt пока собирать не умеет - очень уж кривой у него configure step пока, даже кривее, чем у qmake. И андроид пока не допилен, а в целом пользоваться им можно уже спокойно хоть в продакшене хоть где.

Gorthauer ★★★★★ ()

В cmake в ADD_CUSTOM_COMMAND указываются входные и выходные файлы, он пересобирает цель если входной файл новее выходных.

slovazap ★★★★★ ()

Такая вещь решается сборочной целью с зависимостью от вашего DataLogger.wsdl. cmake и qmake просто генерят мейкфайлы на самом деле.

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