LINUX.ORG.RU

cmake и версия продукта

 ,


0

1

Появилась необходимость каким-то образом получить версию продукта, при сборке проекта используя утилиту cmake.

В проекте версия объявлена вот так:

if(NOT "${BUILD_VERSION}")
    set(BUILD_VERSION 1.0)
endif()

Заранее благодарю за помощь.

Ответ на: комментарий от eao197

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

ECLIPSE ()

CMakeLists.txt

cmake_minimum_required(VERSION 3.13)
cmake_policy( VERSION 3.13 )
#cmake_policy( SET CMP0048 NEW )

project( hello_world VERSION 0.1.0 )

add_custom_target( show_version cmake -E echo ${hello_world_VERSION} )
mkdir build
cd build
cmake ../
make show_version
Только там на стандартный вывод много что вылезет, нужно будет либо сделать grep, либо что-то еще придумать, чтобы распознать нужную строку.

anonymous ()
Ответ на: комментарий от ECLIPSE

Я с питоном из cmake не работал, но в плюсовом проекте для этого используется target_compile_definitions. Не подойдет?

Или как вариант создать простенький deploy.sh, который будет использоваться только для сборки релизов и там передавать в cmake и в питон одно значение.

Вариант с setenv прямо в cmake выглядит костылем, честно говоря. Отдельный таргет неплохо вроде

anonymous ()