Дмитрий
09 серпня 2019 р. 16:56

Как получить значение переменной из CMakeLists.txt

cmake

Всем привет!

У меня в CMakeLists.txt указывается версия софта:

  1. cmake_minimum_required(VERSION 3.8)
  2.  
  3. project(my_project_name)
  4. set (VERSION_MAJOR 0)
  5. set (VERSION_MINOR 1)
  6. set (VERSION_PATCH 0)
  7. set (SOFT_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
  8. message("MY PROJECT SOFT_VERSION: " ${SOFT_VERSION})
  9.  
  10. set(CMAKE_CXX_STANDARD 17)
  11. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  12. set(CMAKE_CXX_EXTENSIONS OFF)
  13. set(BUILD_SHARED_LIBS ON)
  14.  
  15. # и т.д.
  16.  

Я бы хотел брать его и отображать. Есть ли способ это сделать? Склоняюсь к мысли, что нужно сделать пустой хедер и при cmake CMakeLists.txt каким-то образом переносить туда версию и после уже собирать софт с помощью make. Правильный ли ход мысли или можно сделать проще?

2

Вам це подобається? Поділіться в соціальних мережах!

6
Evgenii Legotckoi
  • 09 серпня 2019 р. 17:05

Добрый день.

Я тут одного не догнал. Где отображать? В программе где-то? Типо как в Диалоге, где будет указана версия например?

    Дмитрий
    • 09 серпня 2019 р. 17:15

    Да, в программе, и она она еще отсылается по сети, где требуется.

      Evgenii Legotckoi
      • 09 серпня 2019 р. 17:53

      Я вечером проверю один проект и отпишусь вам. С работы не получится это сделать. Но способы есть конечно же.

        Evgenii Legotckoi
        • 10 серпня 2019 р. 04:10
        • (відредаговано)
        • Відповідь була позначена як рішення.

        В общем это делается так, как написано в этой статье по использованию констант из CMakeLists.txt в C++ коде

          Дмитрий
          • 12 серпня 2019 р. 15:16

          Спасибо! Все получилось. Только в команде configure_file()
          Я написал свой путь создания хедера:

          1. configure_file(version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/version.h @ONLY)

          А то, если просто указать version.h, то он создастся в build-директории. Наверное, об этом имеет смысл указать в статье.

            Evgenii Legotckoi
            • 12 серпня 2019 р. 15:20

            Возможно стоит указать информацию, но мне кажется, что возможно и не имеет смысла добавлять путь к каталогу исходников. Это генерируемый файл, хоть он и используется в исходниках. Как бы он в любом случае будет создаваться.

              Коментарі

              Only authorized users can post comments.
              Please, Log in or Sign up
              • Останні коментарі
              • Evgenii Legotckoi
                16 квітня 2025 р. 17:08
                Благодарю за отзыв. И вам желаю всяческих успехов!
              • IscanderChe
                12 квітня 2025 р. 17:12
                Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
              • AK
                01 квітня 2025 р. 11:41
                Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
              • Evgenii Legotckoi
                09 березня 2025 р. 21:02
                К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
              • VP
                09 березня 2025 р. 16:14
                Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…