*/ | */ | ||||
struct sdist_target { | struct sdist_target { | ||||
/// The source distribution | /// The source distribution | ||||
sdist sd; | |||||
sdist sd; | |||||
/// The build parameters thereof | /// The build parameters thereof | ||||
sdist_build_params params; | sdist_build_params params; | ||||
}; | }; | ||||
/** | /** | ||||
* A builder object. Source distributions are added to the builder, and then they are all built in parallel via `build()` | |||||
* A builder object. Source distributions are added to the builder, and then they are all built in | |||||
* parallel via `build()` | |||||
*/ | */ | ||||
class builder { | class builder { | ||||
/// Source distributions that have been added | /// Source distributions that have been added |
#include <range/v3/view/transform.hpp> | #include <range/v3/view/transform.hpp> | ||||
#include <spdlog/spdlog.h> | #include <spdlog/spdlog.h> | ||||
#include <sstream> | |||||
#include <cctype> | #include <cctype> | ||||
#include <map> | #include <map> | ||||
#include <set> | #include <set> | ||||
#include <sstream> | |||||
using namespace dds; | using namespace dds; | ||||
struct compile_file_spec { | struct compile_file_spec { | ||||
fs::path source_path; | fs::path source_path; | ||||
fs::path out_path; | fs::path out_path; | ||||
std::vector<std::string> definitions = {}; | |||||
std::vector<fs::path> include_dirs = {}; | |||||
std::vector<std::string> definitions = {}; | |||||
std::vector<fs::path> include_dirs = {}; | |||||
std::vector<fs::path> external_include_dirs = {}; | std::vector<fs::path> external_include_dirs = {}; | ||||
language lang = language::automatic; | language lang = language::automatic; | ||||
bool enable_warnings = false; | |||||
bool enable_warnings = false; | |||||
}; | }; | ||||
struct compile_command_info { | struct compile_command_info { |
const lm::library* get(std::string ns, std::string name) const noexcept { | const lm::library* get(std::string ns, std::string name) const noexcept { | ||||
return get({ns, name}); | return get({ns, name}); | ||||
} | } | ||||
lm::library& add(std::string ns, std::string name); | |||||
void add(std::string ns, std::string name, lm::library lib) { add(ns, name) = lib; } | |||||
lm::library& add(std::string ns, std::string name); | |||||
void add(std::string ns, std::string name, lm::library lib) { add(ns, name) = lib; } | |||||
std::vector<fs::path> link_paths(const lm::usage&) const; | std::vector<fs::path> link_paths(const lm::usage&) const; | ||||
std::vector<fs::path> include_paths(const lm::usage& req) const; | std::vector<fs::path> include_paths(const lm::usage& req) const; |