pmt: switch builder to ninja. And some extra improvements

This commit is contained in:
2025-08-27 22:04:06 +03:00
parent e0f0b5b484
commit 41336609fa
8 changed files with 82 additions and 15 deletions

View File

@@ -247,7 +247,7 @@ std::string getLibVersion();
#define MKVERSION(name) \
char vinfo[512]; \
sprintf(vinfo, \
"%s 1.2.0 [XXXX-XX-XX XX.XX.XX]\nBuildType: Release\nCompiler: clang\n" \
"%s 1.2.0\nBuildType: Release\nCompiler: clang\n" \
"BuildFlags: -Wall;-Werror;-Wno-deprecated-declarations;-Os", name); \
return std::string(vinfo)
#else

View File

@@ -221,6 +221,21 @@ public:
*/
[[nodiscard]] bool isLogical(std::string_view name) const;
/**
* Copy partition list to vec, current vec contents are cleaned
*/
bool copyPartitionsToVector(std::vector<std::string> &vec) const;
/**
* Copy logical partition list to vec, current vec contents are cleaned
*/
bool copyLogicalPartitionsToVector(std::vector<std::string> &vec) const;
/**
* Copy physical partition list to vec, current vec contents are cleaned
*/
bool copyPhysicalPartitionsToVector(std::vector<std::string> &vec) const;
/**
* The created list and the current search index name are cleared.
*/

View File

@@ -218,6 +218,49 @@ bool basic_partition_map_builder::readDefaultDirectories() {
return true;
}
bool basic_partition_map_builder::copyPartitionsToVector(std::vector<std::string> &vec) const {
if (_current_map.empty()) {
LOGN(MAP, ERROR) << "Current map is empty.";
return false;
}
vec.clear();
for (const auto &[name, props] : _current_map)
vec.push_back(name);
return true;
}
bool basic_partition_map_builder::copyLogicalPartitionsToVector(std::vector<std::string> &vec) const {
if (_current_map.empty()) {
LOGN(MAP, ERROR) << "Current map is empty.";
return false;
}
std::vector<std::string> vec2;
for (const auto &[name, props] : _current_map)
if (props.isLogical) vec2.push_back(name);
if (vec2.empty()) {
LOGN(MAP, ERROR) << "Cannot find logical partitions in current map.";
return false;
} else vec = vec2;
return true;
}
bool basic_partition_map_builder::copyPhysicalPartitionsToVector(std::vector<std::string> &vec) const {
if (_current_map.empty()) {
LOGN(MAP, ERROR) << "Current map is empty.";
return false;
}
std::vector<std::string> vec2;
for (const auto &[name, props] : _current_map)
if (!props.isLogical) vec2.push_back(name);
if (vec2.empty()) {
LOGN(MAP, ERROR) << "Cannot find physical partitions in current map.";
return false;
} else vec = vec2;
return true;
}
bool basic_partition_map_builder::empty() const {
_map_build_check();
return _current_map.empty();