]> FriiDump Source - friidump.git/blobdiff - src/redump_dat.h
Fix MSVC CMake SHA1 header resolution
[friidump.git] / src / redump_dat.h
index 39919edb00286c78d626753f7660487fa8251fde..b3b2c833ff9bc3112f8a59eb826f78004695bd54 100644 (file)
@@ -49,6 +49,30 @@ const char *redump_field_status_string(redump_field_status status);
 const char *redump_verify_overall_string(const redump_verify_result *result);
 const char *redump_verify_confidence_string(const redump_verify_result *result);
 const char *redump_verify_match_kind_string(const redump_verify_result *result);
 const char *redump_verify_overall_string(const redump_verify_result *result);
 const char *redump_verify_confidence_string(const redump_verify_result *result);
 const char *redump_verify_match_kind_string(const redump_verify_result *result);
+
+/*
+ * Resolve a DAT path predictably.
+ *
+ * Resolution order:
+ *   1. explicit_dir, when non-empty (authoritative);
+ *   2. FRIIDUMP_REDUMP_DAT_DIR, when set (authoritative);
+ *   3. executable_dir/redump_dat (portable and CMake build layout);
+ *   4. executable_dir/../share/friidump/redump_dat (installed Unix layout);
+ *   5. current-working-directory redump_dat.
+ *
+ * CMake copies the bundled DAT files beside the build executable and installs
+ * them under the platform-appropriate data directory. The selected candidate
+ * is always written to out_path when arguments are valid. The return value is
+ * nonzero only when that candidate exists.
+ */
+int redump_resolve_dat_path(
+    const char *explicit_dir,
+    const char *executable_dir,
+    const char *basename,
+    char *out_path,
+    size_t out_path_size
+);
+
 int redump_verify_dat_file(
     const char *dat_path,
     uint64_t image_size,
 int redump_verify_dat_file(
     const char *dat_path,
     uint64_t image_size,