#pragma once #include #include #include extern const std::filesystem::path YMakefile; bool is_buildable_by_extension(const std::filesystem::path& p); bool is_compile_unit_source_by_extension(const std::filesystem::path& p); bool is_executable_target(const std::filesystem::path& p); bool is_dynamic_lib(const std::filesystem::path& p); bool is_dynamic_lib_link(const std::filesystem::path& p); bool is_static_lib(const std::filesystem::path& p); std::filesystem::path soname_shorter(const std::filesystem::path& p); std::filesystem::path soname_short(const std::filesystem::path& p); std::string dynamic_lib_name(const std::filesystem::path& p); // removes initial "./" std::filesystem::path simplified_path(const std::filesystem::path& p); std::string env_value(const std::string& key); bool is_executable_command(const std::string& file); std::string find_executable(const std::vector& list);