|
|
|
|
|
|
|
|
) |
|
|
) |
|
|
)"_sql); |
|
|
)"_sql); |
|
|
sqlite3::exec(st, |
|
|
sqlite3::exec(st, |
|
|
std::forward_as_tuple(fs::weakly_canonical(input.string()), |
|
|
|
|
|
fs::weakly_canonical(output.string()))); |
|
|
|
|
|
|
|
|
std::forward_as_tuple(fs::weakly_canonical(input).string(), |
|
|
|
|
|
fs::weakly_canonical(output).string())); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void database::store_file_command(path_ref file, const command_info& cmd) { |
|
|
void database::store_file_command(path_ref file, const command_info& cmd) { |
|
|
|
|
|
|
|
|
DELETE FROM dds_deps |
|
|
DELETE FROM dds_deps |
|
|
WHERE output_file_id IN id_to_delete |
|
|
WHERE output_file_id IN id_to_delete |
|
|
)"_sql); |
|
|
)"_sql); |
|
|
sqlite3::exec(st, std::forward_as_tuple(fs::weakly_canonical(file))); |
|
|
|
|
|
|
|
|
sqlite3::exec(st, std::forward_as_tuple(fs::weakly_canonical(file).string())); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
std::optional<std::vector<seen_file_info>> database::inputs_of(path_ref file_) { |
|
|
std::optional<std::vector<seen_file_info>> database::inputs_of(path_ref file_) { |