aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/deps.c14
-rw-r--r--src/spm.c14
2 files changed, 13 insertions, 15 deletions
diff --git a/src/deps.c b/src/deps.c
index 3332358..6be4ff4 100644
--- a/src/deps.c
+++ b/src/deps.c
@@ -54,7 +54,7 @@ void dep_free(Dependencies **deps) {
* @param _name
* @return
*/
-int dep_append(Dependencies **deps, char *_name) {
+int dep_append(Dependencies **deps, const char *root, char *_name) {
char *name = NULL;
char *bname = NULL;
@@ -62,10 +62,8 @@ int dep_append(Dependencies **deps, char *_name) {
return -1;
}
- name = find_package(_name);
+ name = find_file(root, _name);
if (!name) {
- perror(_name);
- fprintf(SYSERROR);
return -1;
}
@@ -100,7 +98,7 @@ int dep_append(Dependencies **deps, char *_name) {
* @param filename
* @return
*/
-int dep_solve(Dependencies **deps, const char *filename) {
+int dep_solve(Dependencies **deps, const char *root, const char *filename) {
if (!(*deps)) {
return -1;
}
@@ -136,8 +134,8 @@ int dep_solve(Dependencies **deps, const char *filename) {
}
else {
// Have not seen this dependency before
- if (dep_append(deps, line) == 0) {
- dep_solve(deps, line);
+ if (dep_append(deps, root, line) == 0) {
+ dep_solve(deps, root, line);
}
}
}
@@ -191,7 +189,7 @@ int dep_all(Dependencies **deps, const char *root, const char *_package) {
// Scan depencency tree
sprintf(depfile, "%s%c%s", tmpdir, DIRSEP, ".SPM_DEPENDS");
- int resolved = dep_solve(deps, depfile);
+ int resolved = dep_solve(deps, root, depfile);
// NOTE:
// 1. `resolved` is the number of dependencies for the package we're scanning
diff --git a/src/spm.c b/src/spm.c
index e456e90..d9e463b 100644
--- a/src/spm.c
+++ b/src/spm.c
@@ -219,13 +219,6 @@ int main(int argc, char *argv[], char *arge[]) {
exit(1);
}
- // If the package has dependencies listed, append them to `deps` now
- if (package->requirements_records) {
- for (size_t p = 0; p < package->requirements_records; p++) {
- dep_append(&deps, package->requirements[p]);
- }
- }
-
// Process any additional dependencies the package requires
char root[PATH_MAX];
memset(root, '\0', PATH_MAX);
@@ -233,6 +226,13 @@ int main(int argc, char *argv[], char *arge[]) {
strncat(root, DIRSEPS, PATH_MAX - 1);
strncat(root, SPM_GLOBAL.repo_target, PATH_MAX - 1);
+ // If the package has dependencies listed, append them to `deps` now
+ if (package->requirements_records) {
+ for (size_t p = 0; p < package->requirements_records; p++) {
+ dep_append(&deps, root, package->requirements[p]);
+ }
+ }
+
if (dep_all(&deps, root, package->archive) < 0) {
dep_free(&deps);
free_global_config();