@@ -14,7 +14,7 @@ | |||
using namespace dds; | |||
library_plan library_plan::create(const library& root, const sroot_build_params& params) { | |||
library_plan library_plan::create(const library& lib, const library_build_params& params) { | |||
std::vector<compile_file_plan> compile_files; | |||
std::vector<create_archive_plan> create_archives; | |||
std::vector<create_exe_plan> link_executables; | |||
@@ -23,7 +23,7 @@ library_plan library_plan::create(const library& root, const sroot_build_params& | |||
std::vector<source_file> test_sources; | |||
std::vector<source_file> lib_sources; | |||
auto src_dir = root.src_dir(); | |||
auto src_dir = lib.src_dir(); | |||
if (src_dir.exists()) { | |||
auto all_sources = src_dir.sources(); | |||
auto to_compile = all_sources | ranges::views::filter([&](const source_file& sf) { | |||
@@ -35,7 +35,7 @@ library_plan library_plan::create(const library& root, const sroot_build_params& | |||
for (const auto& sfile : to_compile) { | |||
compile_file_plan cf_plan; | |||
cf_plan.source = sfile; | |||
cf_plan.qualifier = params.main_name; | |||
cf_plan.qualifier = lib.name(); | |||
cf_plan.rules = params.compile_rules; | |||
compile_files.push_back(std::move(cf_plan)); | |||
if (sfile.kind == source_kind::test) { | |||
@@ -57,7 +57,7 @@ library_plan library_plan::create(const library& root, const sroot_build_params& | |||
ar_plan.in_sources = lib_sources // | |||
| ranges::views::transform([](auto&& sf) { return sf.path; }) // | |||
| ranges::to_vector; | |||
ar_plan.name = params.main_name; | |||
ar_plan.name = lib.name(); | |||
ar_plan.out_dir = params.out_subdir; | |||
create_archives.push_back(std::move(ar_plan)); | |||
} |
@@ -2,7 +2,6 @@ | |||
#include <dds/build/compile.hpp> | |||
#include <dds/build/params.hpp> | |||
#include <dds/build/sroot.hpp> | |||
#include <dds/library.hpp> | |||
#include <dds/toolchain.hpp> | |||
@@ -28,14 +27,14 @@ struct library_plan { | |||
std::vector<create_exe_plan> link_executables; | |||
fs::path out_subdir; | |||
static library_plan create(const library& lib, const sroot_build_params& params); | |||
static library_plan create(const library& lib, const library_build_params& params); | |||
}; | |||
struct build_plan { | |||
std::vector<library_plan> create_libraries; | |||
// static build_plan generate(const build_params& params); | |||
void add_library(const library& lib, const sroot_build_params& params) { | |||
void add_library(const library& lib, const library_build_params& params) { | |||
create_libraries.push_back(library_plan::create(lib, params)); | |||
} | |||
@@ -1,3 +0,0 @@ | |||
#include "./sroot.hpp" | |||
using namespace dds; |
@@ -1,20 +0,0 @@ | |||
#pragma once | |||
#include <dds/build/compile.hpp> | |||
#include <dds/build/source_dir.hpp> | |||
#include <dds/util/fs.hpp> | |||
#include <vector> | |||
namespace dds { | |||
struct sroot_build_params { | |||
std::string main_name; | |||
fs::path out_subdir; | |||
bool build_tests = false; | |||
bool build_apps = false; | |||
std::vector<fs::path> rt_link_libraries; | |||
shared_compile_file_rules compile_rules; | |||
}; | |||
} // namespace dds |
@@ -1,6 +1,5 @@ | |||
#include "./deps.hpp" | |||
#include <dds/build/sroot.hpp> | |||
#include <dds/repo/repo.hpp> | |||
#include <dds/sdist.hpp> | |||
#include <dds/util/string.hpp> | |||
@@ -100,8 +99,7 @@ void add_sdist_to_dep_plan(build_plan& plan, const sdist& sd, const sdist_index_ | |||
auto lib = dds::library::from_directory(sd.path); | |||
shared_compile_file_rules comp_rules = lib.base_compile_rules(); | |||
add_dep_includes(comp_rules, sd.manifest, sd_idx); | |||
sroot_build_params params; | |||
params.main_name = sd.manifest.name; | |||
library_build_params params; | |||
params.compile_rules = comp_rules; | |||
plan.add_library(lib, params); | |||
} |
@@ -1,8 +1,8 @@ | |||
#pragma once | |||
#include <dds/library_manifest.hpp> | |||
#include <dds/build/source_dir.hpp> | |||
#include <dds/build/compile.hpp> | |||
#include <dds/build/source_dir.hpp> | |||
#include <dds/library_manifest.hpp> | |||
#include <dds/source.hpp> | |||
#include <optional> | |||
@@ -44,8 +44,16 @@ public: | |||
fs::path public_include_dir() const noexcept; | |||
fs::path private_include_dir() const noexcept; | |||
const source_list& all_sources() const noexcept { return _sources; } | |||
const source_list& all_sources() const noexcept { return _sources; } | |||
shared_compile_file_rules base_compile_rules() const noexcept; | |||
}; | |||
struct library_build_params { | |||
fs::path out_subdir; | |||
bool build_tests = false; | |||
bool build_apps = false; | |||
std::vector<fs::path> rt_link_libraries; | |||
shared_compile_file_rules compile_rules; | |||
}; | |||
} // namespace dds |