Дмитрий
Қаң. 26, 2021, 4:03 Т.Қ.

Получение даты сборки программы

дата сборки, время сборки, сборка проекта

Всем привет!
Возник такой вопрос.
Я в виджете вывожу версию софта и время сборки. Для этого делаю так так:
в .pro-файле:

  1. VERSION = 1.2.3
  2. DEFINES += APP_VERSION=\\\"$$VERSION\\\"

в .cpp-файле виджета:

  1. #ifndef TS_BUILD
  2. #define TS_BUILD (QLocale(QLocale::C).toDateTime(__TIMESTAMP__, "ddd MMM d hh:mm:ss yyyy").toTime_t())
  3. #endif
  4.  
  5. ui->labelVersion->setText(ui->labelVersion->text()+APP_VERSION+" Build: "+QDateTime::fromTime_t(TS_BUILD).toString("yyyy.MM.dd hh:mm"));

Это работает, но приходится при сборке изменять этот cpp-файл, где находится label (например пробел поставить).
Можно ли как-то сделать, что когда пересобираешь проект, дата сразу подставлялась? Т.е. чтобы не нужно было менять cpp-файл.

3

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

2
ИП
  • Қаң. 26, 2021, 4:36 Т.Қ.
  • (өңделген)

__

    Дмитрий
    • Ақп. 18, 2021, 6:56 Т.Қ.
    • Жауап шешім ретінде белгіленді.

    Проблему решил так:
    В .pro файле:

    1. VERSION = 1.2.3
    2. DEFINES += APP_VERSION=\\\"$$VERSION\\\"
    3.  
    4. #Формирование даты и времени сборки (меняется при полной пересборке проекта)
    5. win32:{
    6. BLD_DATE=$$system(date /t)
    7. BLD_TIME=$$system(time /t)
    8. DEFINES += BUILD_DATE=\\\"$$BLD_DATE\\\"
    9. DEFINES += BUILD_TIME=\\\"$$BLD_TIME\\\"
    10. } else {
    11. #FULL_BUILD_DATE = $$system( date "+%d.%m.%Y_%H:%M:%S" ) и дата, и время (в линуксе)
    12. BLD_DATE=$$system(date)
    13. BLD_DATE = $$system( date "+%d.%m.%Y" )
    14. BLD_TIME = $$system( date "+%H:%M" )
    15. DEFINES += BUILD_DATE=\\\"$$BLD_DATE\\\"
    16. DEFINES += BUILD_TIME=\\\"$$BLD_TIME\\\"
    17. }
    18.  

    в .cpp файле:

    1. ui->labelVersion->setText(ui->labelVersion->text() + APP_VERSION + " Build: " + BUILD_DATE + " " + BUILD_TIME);

      Пікірлер

      Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
      Кіріңіз немесе Тіркеліңіз