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

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

cmake

Всем привет!

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

cmake_minimum_required(VERSION 3.8)

project(my_project_name)
set (VERSION_MAJOR 0)
set (VERSION_MINOR 1)
set (VERSION_PATCH 0)
set (SOFT_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
message("MY PROJECT SOFT_VERSION: " ${SOFT_VERSION})

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(BUILD_SHARED_LIBS ON)

# и т.д.

Я бы хотел брать его и отображать. Есть ли способ это сделать? Склоняюсь к мысли, что нужно сделать пустой хедер и при 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()
          Я написал свой путь создания хедера:

          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