Russian Qt Forum

Qt => Общие вопросы => Тема начата: dr_Begemot от Март 09, 2010, 11:01



Название: Проверка версии приложения в исходниках
Отправлено: dr_Begemot от Март 09, 2010, 11:01
В pro-файле приложения на Qt можно прописать версию приложения:
VERSION       = 1.0.0

Как мне проверить в исходном коде версию?
Поясню... К примеру в первой версии было:
class MyClass : public QWidget
...
Потом я создал новый pro-файл, где:
VERSION       = 2.0.0
Исходные файлы все остались теми же самыми.
Во второй я решил унаследоваться от QGLWidget:
class MyClass : public QGLWidget

Хочу чтобы было что-то вроде
Код:
#ifdef <тут проверка, что версия >= 2.0.0>
class MyClass : public QGLWidget
#else
class MyClass : public QWidget
#endif


Название: Re: Проверка версии приложения в исходниках
Отправлено: gogi от Март 09, 2010, 11:23
Можно сделать костыль. В pro-файле генерируешь заголовочный файл и его подключаешь по include. Таким образом версия задаётся в одном месте и программа про неё знает.


Название: Re: Проверка версии приложения в исходниках
Отправлено: dr_Begemot от Март 09, 2010, 11:31
Можно сделать костыль. В pro-файле генерируешь заголовочный файл и его подключаешь по include. Таким образом версия задаётся в одном месте и программа про неё знает.

Данное решение не подходит, т.к. данная проверка могла бы использоваться и в других местах программы...
Сам я как вариант вижу объявления своего define в pro-файле, который говорил бы о том, что версия 2.0, но мне почему-то кажется что можно узнать версию компилируемого приложения в исходниках - это было бы наиболее элегантным решением...


Название: Re: Проверка версии приложения в исходниках
Отправлено: NicK от Март 09, 2010, 13:39
#define VERSION_NUMBER "0.0.1"


Название: Re: Проверка версии приложения в исходниках
Отправлено: dr_Begemot от Март 09, 2010, 14:04
#define VERSION_NUMBER "0.0.1"


И что? Внимательней читайте вопрос... Вопрос состоял в том, как узнать версию, прописанную в pro-файле, а не как объявить define.


Название: Re: Проверка версии приложения в исходниках
Отправлено: dr_Begemot от Март 09, 2010, 14:09
Можно сделать костыль. В pro-файле генерируешь заголовочный файл и его подключаешь по include. Таким образом версия задаётся в одном месте и программа про неё знает.

Уж тогда чтобы не городить огород, достаточно прописать в pro-файле что-то вроде:
DEFINES   += VERSION_2


Название: Re: Проверка версии приложения в исходниках
Отправлено: NicK от Март 09, 2010, 23:32
#define VERSION_NUMBER "0.0.1"


И что? Внимательней читайте вопрос... Вопрос состоял в том, как узнать версию, прописанную в pro-файле, а не как объявить define.

Заголовок треда "Проверка версии приложения в исходниках". Вот я и предложил, как самый простой вариант: объявить define, например, где-нибудь в заголовочном файле и из любого места обращаться через него к объявленной версии. И не надо будет заморачиваться с .pro файлом.


Название: Re: Проверка версии приложения в исходниках
Отправлено: Alex Custov от Март 10, 2010, 03:40
Я нигде нашёл, как эта перменная используется. Возможно, что вообще никак. Тогда механизм версионирования надо писать самому, по аналогии с QT_VERSION


Название: Re: Проверка версии приложения в исходниках
Отправлено: crackedmind от Март 10, 2010, 03:58
Цитировать
Тогда механизм версионирования надо писать самому, по аналогии с QT_VERSION
вы не поверите...