LINUX.ORG.RU

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

 ,


0

1

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

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

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

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


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

Я обычно делаю скрипт version.sh. А его уже использую в cmake и остальных утилитах.

Версия это в любом случае либо тэг в репо либо запись в файлике.

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

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

ECLIPSE
() автор топика
Ответ на: комментарий от ECLIPSE
cmake <build dir> -LA

Вообще - ССЗБ. Понабирают девопсов а потом хрен соберёшь, обёртка над обёрткой и сплошной вендор лок.

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

Мне нужно как-то получить версию из терминала

Ясно.

А через переменную среды задать нельзя?

eao197 ★★★★★
()

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 -DMYVARIABLE=10 не подойдет?

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

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

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

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

anonymous
()

Как вариант: 1 и потом 2.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.