cmake
Использование CMake для настройки тегов препроцессора
Поиск…
Вступление
Использование CMake в проекте C ++ при правильном использовании может позволить программисту меньше сконцентрироваться на платформе, номере версии программы и т. Д. На самой реальной программе. С помощью CMake вы можете определить теги препроцессора, которые позволяют легко проверить, какая платформа или любые другие теги препроцессора вам могут понадобиться в реальной программе. Например, номер версии, который можно использовать в системе журналов.
Синтаксис
- #define preprocessor_name "@ cmake_value @"
замечания
Важно понимать, что не каждый препроцессор должен быть определен в config.h.in
. Теги препроцессора обычно используются только для облегчения работы программистов и должны использоваться с осторожностью. Вы должны исследовать, существует ли тег препроцессора, прежде чем определять его, поскольку вы можете столкнуться с неопределенным поведением в разных системах.
Использование CMake для определения номера версии для использования на C ++
Возможности безграничны. поскольку вы можете использовать эту концепцию, чтобы вытащить номер версии из вашей системы сборки; например, git и использовать этот номер версии в вашем проекте.
CMakeLists.txt
cmake_minimum_required(VERSION 3.8)
project(project_name VERSION "0.0.0")
configure_file(${path to configure file 'config.h.in'}
include_directories(${PROJECT_BINARY_BIN}) // this allows the 'config.h' file to be used throughout the program
...
config.h.in
#ifndef INCLUDE_GUARD
#define INCLUDE_GUARD
#define PROJECT_NAME "@PROJECT_NAME@"
#define PROJECT_VER "@PROJECT_VERSION@"
#define PROJECT_VER_MAJOR "@PROJECT_VERSION_MAJOR@"
#define PROJECT_VER_MINOR "@PROJECT_VERSION_MINOR@"
#define PTOJECT_VER_PATCH "@PROJECT_VERSION_PATCH@"
#endif // INCLUDE_GUARD
main.cpp
#include <iostream>
#include "config.h"
int main()
{
std::cout << "project name: " << PROJECT_NAME << " version: " << PROJECT_VER << std::endl;
return 0;
}
выход
project name: project_name version: 0.0.0