From 9b6c531505ff74f119bff6facae35c10801b2c6c Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Fri, 31 May 2024 17:04:21 +0200 Subject: Link dynamic lib, test --- file.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'file.cpp') diff --git a/file.cpp b/file.cpp index b5cbe36..d4c3f54 100644 --- a/file.cpp +++ b/file.cpp @@ -100,10 +100,15 @@ std::filesystem::path soname_short(const std::filesystem::path& p) // file1.so.1 -> file1 std::string dynamic_lib_name(const std::filesystem::path& p) { - std::string result {p.stem().string()}; + std::string result {p.filename().string()}; if (result.substr(0, 3) == "lib") { result = result.substr(3); } + size_t dotpos{result.find('.')}; + if (dotpos == std::string::npos) { + throw std::runtime_error("Unexpected path: Expected dot (.) in: "s + p.string()); + } + result = result.substr(0, dotpos); return result; } @@ -120,6 +125,15 @@ std::filesystem::path simplified_path(const std::filesystem::path& p) return p; } +std::filesystem::path lib_path(const std::filesystem::path& p) +{ + fs::path result{p.parent_path()}; + if (result.empty()) { + result = "."; + } + return result; +} + bool is_executable_command(const std::string& file) { std::vector paths {Reichwein::Stringhelper::split(env_value("PATH"), ":")}; -- cgit v1.2.3