From 190d3e59f3a9f1e3ec4826b1e0dcc5fdd3d85c75 Mon Sep 17 00:00:00 2001 From: Ionel-Cristinel ANICHITEI Date: Tue, 17 Nov 2020 12:44:10 +0200 Subject: [PATCH] Extract version information from version.h This is done so we have a single place that holds versioning information. While it would be easier to generate the DISASM_VERSION_* definitions based on the PROJECT_VERSION_* values, doing this for Visual Studio builds that do not use CMake is not trivial --- CMakeLists.txt | 14 +++++++++++++- project-meta-info.in | 1 - 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 05e6047..66aebd5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,20 @@ cmake_minimum_required(VERSION 3.12) include("${CMAKE_CURRENT_LIST_DIR}/project-meta-info.in") +set(disasm_version_file ${CMAKE_SOURCE_DIR}/inc/version.h) + +file(STRINGS ${disasm_version_file} disasm_ver_major REGEX "DISASM_VERSION_MAJOR") +file(STRINGS ${disasm_version_file} disasm_ver_minor REGEX "DISASM_VERSION_MINOR") +file(STRINGS ${disasm_version_file} disasm_ver_patch REGEX "DISASM_VERSION_REVISION") + +string(REGEX REPLACE "#define DISASM_VERSION_MAJOR[ \t\r\n]*" "" disasm_ver_major ${disasm_ver_major}) +string(REGEX REPLACE "#define DISASM_VERSION_MINOR[ \t\r\n]*" "" disasm_ver_minor ${disasm_ver_minor}) +string(REGEX REPLACE "#define DISASM_VERSION_REVISION[ \t\r\n]*" "" disasm_ver_patch ${disasm_ver_patch}) + +message(STATUS "Extracted version from ${disasm_version_file}: ${disasm_ver_major}.${disasm_ver_minor}.${disasm_ver_patch}") + project(bddisasm - VERSION ${project_version} + VERSION ${disasm_ver_major}.${disasm_ver_minor}.${disasm_ver_patch} DESCRIPTION ${project_description} LANGUAGES C ) diff --git a/project-meta-info.in b/project-meta-info.in index ca57cb6..a56c711 100644 --- a/project-meta-info.in +++ b/project-meta-info.in @@ -1,4 +1,3 @@ # project-meta-info.in -set(project_version 1.31.3) set(project_description "Bitdefender x86 instruction decoder and emulator")