aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include/vcpkg.h
blob: 264d61fa959b76083485885d8502fbce04ff3d4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#pragma once

#include <filesystem>
#include <vector>
#include <unordered_map>
#include "package_spec.h"
#include "BinaryParagraph.h"
#include "StatusParagraphs.h"
#include "vcpkg_paths.h"

namespace vcpkg
{
    namespace fs = std::tr2::sys;

    extern bool g_do_dry_run;

    std::vector<std::unordered_map<std::string, std::string>> get_paragraphs(const fs::path& control_path);
    std::vector<std::unordered_map<std::string, std::string>> parse_paragraphs(const std::string& str);
    std::string shorten_description(const std::string& desc);

    fs::path find_available_package(const vcpkg_paths& paths, const package_spec& spec);
    fs::path find_available_port_file(const vcpkg_paths& paths, const package_spec& spec);
    fs::path control_file_for_package(const fs::path& package_path);

    StatusParagraphs database_load_check(const vcpkg_paths& paths);

    std::vector<std::string> get_unmet_package_dependencies(const vcpkg_paths& paths, const package_spec& spec, const StatusParagraphs& status_db);

    void install_package(const vcpkg_paths& paths, const BinaryParagraph& binary_paragraph, StatusParagraphs& status_db);
    void deinstall_package(const vcpkg_paths& paths, const package_spec& spec, StatusParagraphs& status_db);

    void search_file(const vcpkg_paths& paths, const std::string& file_substr, const StatusParagraphs& status_db);

    void binary_import(const vcpkg_paths& paths, const fs::path& include_directory, const fs::path& project_directory, const BinaryParagraph& control_file_data);

    const std::string& version();
} // namespace vcpkg