feat: add version header

This commit is contained in:
Michael Mandl 2023-10-11 20:49:32 +02:00
parent 6260ce47dc
commit 0d43936a61
Signed by: mandlm
GPG key ID: 4AA25D647AA54CC7
3 changed files with 23 additions and 12 deletions

View file

@ -2,21 +2,20 @@ cmake_minimum_required(VERSION 3.20)
project( project(
hello hello
VERSION 0.1 VERSION 0.1.0
LANGUAGES CXX) LANGUAGES CXX)
set(SOURCES src/main.cpp) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS
ON
CACHE INTERNAL "")
if(CMAKE_EXPORT_COMPILE_COMMANDS) if(CMAKE_EXPORT_COMPILE_COMMANDS)
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}) ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
endif() endif()
add_executable(hello ${SOURCES}) configure_file("${PROJECT_SOURCE_DIR}/include/version.h.in"
"${PROJECT_BINARY_DIR}/include/version.h")
add_executable(hello src/main.cpp)
target_compile_features(hello PUBLIC cxx_std_20)
target_include_directories(hello PRIVATE "${PROJECT_BINARY_DIR}/include")

8
include/version.h.in Normal file
View file

@ -0,0 +1,8 @@
#pragma once
#define VERSION_MAJOR @PROJECT_VERSION_MAJOR@
#define VERSION_MINOR @PROJECT_VERSION_MINOR@
#define VERSION_PATCH @PROJECT_VERSION_PATCH@
#define VERSION_TWEAK @PROJECT_VERSION_TWEAK@
#define VERSION "@PROJECT_VERSION@"

View file

@ -1,6 +1,10 @@
#include <cstdlib>
#include <iostream> #include <iostream>
#include "version.h"
int main(int argc, char **argv) { int main(int argc, char **argv) {
std::cout << "Hello" << std::endl; std::cout << "Hello, world! Version " << VERSION << std::endl;
return 0;
return EXIT_SUCCESS;
} }