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

@@ -74,8 +74,8 @@ bool isHardLink(const std::string_view entry)
bool areLinked(const std::string_view entry1, const std::string_view entry2)
{
const std::string_view st1 = (isSymbolicLink(entry1)) ? readSymlink(entry1) : entry1;
const std::string_view st2 = (isSymbolicLink(entry2)) ? readSymlink(entry2) : entry2;
const std::string st1 = (isSymbolicLink(entry1)) ? readSymlink(entry1) : std::string(entry1.data());
const std::string st2 = (isSymbolicLink(entry2)) ? readSymlink(entry2) : std::string(entry2.data());
return (st1 == st2);
}

View File

@@ -223,13 +223,13 @@ bool eraseDirectoryRecursive(const std::string_view directory)
return true;
}
std::string_view readSymlink(const std::string_view entry)
std::string readSymlink(const std::string_view entry)
{
char target[PATH_MAX];
ssize_t len = readlink(entry.data(), target, (sizeof(target) - 1));
if (len == -1) {
throw Error("Cannot read symlink %s: %s", entry.data(), strerror(errno));
return entry;
return entry.data();
}
target[len] = '\0';

View File

@@ -25,7 +25,7 @@
namespace Helper {
std::optional<std::string_view> sha256Of(const std::string_view path)
std::optional<std::string> sha256Of(const std::string_view path)
{
if (!fileIsExists(path)) {
throw Error("Is not exists or not file: %s", path.data());

View File

@@ -24,6 +24,7 @@
#include <time.h>
#include <libgen.h>
#include <libhelper/lib.hpp>
#include <generated/buildInfo.hpp>
namespace Helper {
@@ -130,11 +131,9 @@ std::string pathDirname(const std::string_view entry)
std::string getLibVersion()
{
return std::string(
std::to_string(LIBHELPER_MAJOR) + "."
+ std::to_string(LIBHELPER_MINOR) + "."
+ std::to_string(LIBHELPER_PATCH)
);
char vinfo[512];
sprintf(vinfo, "libhelper %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 Helper