Как задать версию project

Как задать версию проекта при запуске команды cmake?

есть CMakeLists.txt

cmake_minimum_required(VERSION 3.16)
project(my_project LANGUAGES CXX)

message("PROJECT_NAME=${PROJECT_NAME}")
message("my_project_VERSION_MAJOR=${my_project_VERSION_MAJOR}")

пробовал передавать через аргументы:

cmake . -Dmy_project_VERSION_MAJOR=2

no project() сбрасывает эту переменную. при запуске cmake вывод такой:

PROJECT_NAME=my_project
my_prject_VERSION_MAJOR=

Версия считается через git rev-list HEAD | wc -l поэтому не хочу явно прописывать в CMakeLists.txt.


Ответы (1 шт):

Автор решения: user207200
cmake_minimum_required(VERSION 3.16)

project(my_project VERSION ${VERSION} LANGUAGES CXX)

message("PROJECT_VERSION = ${PROJECT_VERSION}")
message("PROJECT_VERSION_MAJOR = ${PROJECT_VERSION_MAJOR}")
message("PROJECT_VERSION_MINOR = ${PROJECT_VERSION_MINOR}")
message("PROJECT_VERSION_PATCH = ${PROJECT_VERSION_PATCH}")

Запуск:

cmake . -DVERSION=42.0.1
→ Ссылка