Parcourir la source

resource: save state at compilation end

Fixes: #173
Daniele Bartolini il y a 1 an
Parent
commit
cce53d1402
2 fichiers modifiés avec 25 ajouts et 40 suppressions
  1. 25 37
      src/resource/data_compiler.cpp
  2. 0 3
      src/resource/data_compiler.h

+ 25 - 37
src/resource/data_compiler.cpp

@@ -849,41 +849,6 @@ void DataCompiler::scan_and_restore(const char *data_dir)
 		default_allocator().deallocate((void *)directories[n - 1 - i]);
 }
 
-void DataCompiler::save(const char *data_dir)
-{
-	s64 time_start = time::now();
-	s32 res = 0;
-
-	FilesystemDisk data_fs(default_allocator());
-	data_fs.set_prefix(data_dir);
-
-	res = write_data_index(data_fs, CROWN_DATA_INDEX, _data_index);
-	if (res != 0) {
-		loge(DATA_COMPILER, "Failed to save: %s", CROWN_DATA_INDEX);
-		return;
-	}
-
-	res = write_data_mtimes(data_fs, CROWN_DATA_MTIMES, _data_mtimes);
-	if (res != 0) {
-		loge(DATA_COMPILER, "Failed to save: %s", CROWN_DATA_MTIMES);
-		return;
-	}
-
-	res = write_data_dependencies(data_fs, CROWN_DATA_DEPENDENCIES, _data_index, _data_dependencies, _data_requirements);
-	if (res != 0) {
-		loge(DATA_COMPILER, "Failed to save: %s", CROWN_DATA_DEPENDENCIES);
-		return;
-	}
-
-	res = write_data_versions(data_fs, CROWN_DATA_VERSIONS, _data_versions);
-	if (res != 0) {
-		loge(DATA_COMPILER, "Failed to save: %s", CROWN_DATA_VERSIONS);
-		return;
-	}
-
-	logi(DATA_COMPILER, "Saved state in " TIME_FMT, time::seconds(time::now() - time_start));
-}
-
 bool DataCompiler::dependency_changed(const DynamicString &path, ResourceId id, u64 dst_mtime)
 {
 	Stat st;
@@ -1298,6 +1263,31 @@ bool DataCompiler::compile(const char *data_dir, const char *platform_name)
 		}
 	}
 
+	// Save state to disk.
+	s32 res = write_data_index(data_fs, CROWN_DATA_INDEX, _data_index);
+	if (res != 0) {
+		loge(DATA_COMPILER, "Failed to save: %s", CROWN_DATA_INDEX);
+		return false;
+	}
+
+	res = write_data_mtimes(data_fs, CROWN_DATA_MTIMES, _data_mtimes);
+	if (res != 0) {
+		loge(DATA_COMPILER, "Failed to save: %s", CROWN_DATA_MTIMES);
+		return false;
+	}
+
+	res = write_data_dependencies(data_fs, CROWN_DATA_DEPENDENCIES, _data_index, _data_dependencies, _data_requirements);
+	if (res != 0) {
+		loge(DATA_COMPILER, "Failed to save: %s", CROWN_DATA_DEPENDENCIES);
+		return false;
+	}
+
+	res = write_data_versions(data_fs, CROWN_DATA_VERSIONS, _data_versions);
+	if (res != 0) {
+		loge(DATA_COMPILER, "Failed to save: %s", CROWN_DATA_VERSIONS);
+		return false;
+	}
+
 	return success;
 }
 
@@ -1576,8 +1566,6 @@ int main_data_compiler(const DeviceOptions &opts)
 		success = dc->compile(opts._data_dir.c_str(), opts._platform);
 	}
 
-	dc->save(opts._data_dir.c_str());
-
 	CE_DELETE(default_allocator(), dc);
 	console_server_globals::shutdown();
 

+ 0 - 3
src/resource/data_compiler.h

@@ -94,9 +94,6 @@ struct DataCompiler
 	/// the previous run (if any).
 	void scan_and_restore(const char *data_dir);
 
-	/// Saves to disk the state of the compiler.
-	void save(const char *data_dir);
-
 	/// Compiles all the resources found in the source directory and puts them in @a data_dir.
 	/// Returns true on success, false otherwise.
 	bool compile(const char *data_dir, const char *platform_name);