pmt: Improvement.

- At build time, the version, compile time, CMake version, compiler version, and compiler flags are retrieved with the new CMake module and a header is created. This header provides more robust version management and notifications.
- Build warnings fixed, code corrected for compilation.
- Improvements were made to CMake code.
- Modifications were made to the tests to read the library's version information.
This commit is contained in:
2025-07-23 18:44:06 +03:00
parent 424d651ce3
commit d907ee9447
13 changed files with 94 additions and 35 deletions

View File

@@ -17,10 +17,6 @@
#ifndef LIBPARTITION_MAP_LIB_HPP
#define LIBPARTITION_MAP_LIB_HPP
#define LIBPARTITION_MAP_MAJOR 1
#define LIBPARTITION_MAP_MINOR 0
#define LIBPARTITION_MAP_PATCH 0
#include <string>
#include <string_view>
#include <optional>

View File

@@ -29,6 +29,7 @@
#include <sys/ioctl.h>
#include <linux/fs.h>
#include <libpartition_map/lib.hpp>
#include <generated/buildInfo.hpp>
#include <string.h>
#include <unistd.h>
@@ -199,11 +200,9 @@ bool basic_partition_map_builder::operator!() const
std::string getLibVersion()
{
return std::string(
std::to_string(LIBPARTITION_MAP_MAJOR) + "."
+ std::to_string(LIBPARTITION_MAP_MINOR) + "."
+ std::to_string(LIBPARTITION_MAP_PATCH)
);
char vinfo[512];
sprintf(vinfo, "libpartition_map %s [%s %s]\nBuildType: %s\nCMakeVersion: %s\nCompilerVersion: %s\nBuildFlags: %s\n", BUILD_VERSION, BUILD_DATE, BUILD_TIME, BUILD_TYPE, BUILD_CMAKE_VERSION, BUILD_COMPILER_VERSION, BUILD_FLAGS);
return std::string(vinfo);
}
} // namespace PartitionMap

View File

@@ -69,6 +69,8 @@ int main(void) {
if (MyMap == MyMap2) std::cout << "map1 = map2" << std::endl;
if (MyMap != MyMap2) std::cout << "map1 != map2" << std::endl;
std::cout << PartitionMap::getLibVersion() << std::endl;
} catch (PartitionMap::Error& error) {
std::cerr << error.what() << std::endl;
return 1;