Quellcode durchsuchen

Separate type to record dependencies only

default_compile_flags
vector-of-bool vor 5 Jahren
Ursprung
Commit
b12bdf83ec
8 geänderte Dateien mit 72 neuen und 10 gelöschten Zeilen
  1. +5
    -5
      src/dds.main.cpp
  2. +17
    -0
      src/dds/deps.cpp
  3. +10
    -1
      src/dds/deps.hpp
  4. +1
    -0
      src/dds/source/dist.cpp
  5. +1
    -0
      tests/dds.py
  6. +21
    -0
      tests/deps/build-deps/project/catalog.json
  7. +0
    -2
      tests/deps/build-deps/project/deps.dds
  8. +17
    -2
      tests/deps/build-deps/test_build_deps.py

+ 5
- 5
src/dds.main.cpp Datei anzeigen

dds::builder bd; dds::builder bd;
dds::sdist_build_params sdist_params; dds::sdist_build_params sdist_params;


auto all_file_deps
= deps_files.Get() //
auto all_file_deps = deps_files.Get() //
| ranges::views::transform([&](auto dep_fpath) { | ranges::views::transform([&](auto dep_fpath) {
spdlog::info("Reading deps from {}", dep_fpath.string());
return dds::package_manifest::load_from_file(dep_fpath).dependencies;
})
spdlog::info("Reading deps from {}", dep_fpath.string());
return dds::dependency_manifest::from_file(dep_fpath).dependencies;
})
| ranges::actions::join; | ranges::actions::join;


auto cmd_deps = ranges::views::transform(deps.Get(), [&](auto dep_str) { auto cmd_deps = ranges::views::transform(deps.Get(), [&](auto dep_str) {
assert(sdist_ptr); assert(sdist_ptr);
dds::sdist_build_params deps_params; dds::sdist_build_params deps_params;
deps_params.subdir = sdist_ptr->manifest.pkg_id.to_string(); deps_params.subdir = sdist_ptr->manifest.pkg_id.to_string();
spdlog::info("Dependency: {}", sdist_ptr->manifest.pkg_id.to_string());
bd.add(*sdist_ptr, deps_params); bd.add(*sdist_ptr, deps_params);
} }
}); });

+ 17
- 0
src/dds/deps.cpp Datei anzeigen

str)); str));
} }
} }

dependency_manifest dependency_manifest::from_file(path_ref fpath) {
auto kvs = lm::parse_file(fpath);
dependency_manifest ret;
lm::read(
fmt::format("Reading dependencies from '{}'", fpath.string()),
kvs,
[&](auto, auto key, auto val) {
if (key == "Depends") {
ret.dependencies.push_back(dependency::parse_depends_string(val));
return true;
}
return false;
},
lm::reject_unknown());
return ret;
}

+ 10
- 1
src/dds/deps.hpp Datei anzeigen

#pragma once #pragma once


#include <dds/build/plan/full.hpp>
#include <dds/util/fs.hpp>


#include <pubgrub/interval.hpp> #include <pubgrub/interval.hpp>
#include <semver/range.hpp> #include <semver/range.hpp>
static dependency parse_depends_string(std::string_view str); static dependency parse_depends_string(std::string_view str);
}; };


/**
* Represents a dependency listing file, which is a subset of a package manifest
*/
struct dependency_manifest {
std::vector<dependency> dependencies;

static dependency_manifest from_file(path_ref where);
};

} // namespace dds } // namespace dds

+ 1
- 0
src/dds/source/dist.cpp Datei anzeigen

#include "./dist.hpp" #include "./dist.hpp"


#include <dds/library/library.hpp>
#include <dds/temp.hpp> #include <dds/temp.hpp>
#include <dds/util/fs.hpp> #include <dds/util/fs.hpp>



+ 1
- 0
tests/dds.py Datei anzeigen

return self.run([ return self.run([
'build-deps', 'build-deps',
f'--toolchain={toolchain or self.default_builtin_toolchain}', f'--toolchain={toolchain or self.default_builtin_toolchain}',
f'--catalog={self.catalog_path}',
f'--repo-dir={self.repo_dir}', f'--repo-dir={self.repo_dir}',
f'--out={self.deps_build_dir}', f'--out={self.deps_build_dir}',
f'--lmi-path={self.lmi_path}', f'--lmi-path={self.lmi_path}',

+ 21
- 0
tests/deps/build-deps/project/catalog.json Datei anzeigen

{
"version": 1,
"packages": {
"neo-sqlite3": {
"0.1.0": {
"git": {
"url": "https://github.com/vector-of-bool/neo-sqlite3.git",
"ref": "0.1.0"
},
"depends": {}
},
"0.2.2": {
"git": {
"url": "https://github.com/vector-of-bool/neo-sqlite3.git",
"ref": "0.2.2"
},
"depends": {}
}
}
}
}

+ 0
- 2
tests/deps/build-deps/project/deps.dds Datei anzeigen

Name: dummy
Version: 0.0.0


Depends: neo-sqlite3 +0.0.0 Depends: neo-sqlite3 +0.0.0

+ 17
- 2
tests/deps/build-deps/test_build_deps.py Datei anzeigen

from tests import dds, DDS from tests import dds, DDS




def test_build_deps(dds: DDS):
def test_build_deps_from_file(dds: DDS):
assert not dds.deps_build_dir.is_dir() assert not dds.deps_build_dir.is_dir()
dds.catalog_import(dds.source_root / 'catalog.json')
dds.build_deps(['-d', 'deps.dds']) dds.build_deps(['-d', 'deps.dds'])
assert dds.deps_build_dir.is_dir()
assert (dds.deps_build_dir / 'neo-sqlite3@0.1.0').is_dir()


def test_build_deps_from_cmd(dds: DDS):
assert not dds.deps_build_dir.is_dir()
dds.catalog_import(dds.source_root / 'catalog.json')
dds.build_deps(['neo-sqlite3 =0.1.0'])
assert (dds.deps_build_dir / 'neo-sqlite3@0.1.0').is_dir()


def test_multiple_deps(dds: DDS):
assert not dds.deps_build_dir.is_dir()
dds.catalog_import(dds.source_root / 'catalog.json')
dds.build_deps(['neo-sqlite3 ^0.1.0', 'neo-sqlite3 ~0.2.0'])
assert (dds.deps_build_dir / 'neo-sqlite3@0.2.2').is_dir()

Laden…
Abbrechen
Speichern