Дмитрий
9 августа 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
  • 9 августа 2019 г. 17:05

Добрый день.

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

    Дмитрий
    • 9 августа 2019 г. 17:15

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

      Evgenii Legotckoi
      • 9 августа 2019 г. 17:53

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

        Evgenii Legotckoi
        • 10 августа 2019 г. 4: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

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

              Комментарии

              Только авторизованные пользователи могут публиковать комментарии.
              Пожалуйста, авторизуйтесь или зарегистрируйтесь