Дмитрий
Там. 9, 2019, 4: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
  • Там. 9, 2019, 5:05 Т.Қ.

Добрый день.

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

    Дмитрий
    • Там. 9, 2019, 5:15 Т.Қ.

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

      Evgenii Legotckoi
      • Там. 9, 2019, 5:53 Т.Қ.

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

        Evgenii Legotckoi
        • Там. 10, 2019, 4:10 Т.Ж.
        • (өңделген)
        • Жауап шешім ретінде белгіленді.

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

          Дмитрий
          • Там. 12, 2019, 3:16 Т.Қ.

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

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

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

            Evgenii Legotckoi
            • Там. 12, 2019, 3:20 Т.Қ.

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

              Пікірлер

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