Bladeren bron

Copy crown.config only once

Daniele Bartolini 12 jaren geleden
bovenliggende
commit
01a7f64cf9
1 gewijzigde bestanden met toevoegingen van 20 en 14 verwijderingen
  1. 20 14
      engine/compilers/BundleCompiler.cpp

+ 20 - 14
engine/compilers/BundleCompiler.cpp

@@ -57,9 +57,24 @@ bool BundleCompiler::compile(const char* bundle_dir, const char* source_dir)
 		temp.create_directory(bundle_dir);
 	}
 
+	// Copy crown.config to bundle dir
 	DiskFilesystem src_fs(source_dir);
 	DiskFilesystem dst_fs(bundle_dir);
 
+	if (src_fs.is_file("crown.config"))
+	{
+		File* src = src_fs.open("crown.config", FOM_READ);
+		File* dst = dst_fs.open("crown.config", FOM_WRITE);
+		src->copy_to(*dst, src->size());
+		src_fs.close(src);
+		dst_fs.close(dst);
+	}
+	else
+	{
+		Log::d("'crown.config' does not exist.");
+		return false;
+	}
+
 	// Compile all resources
 	for (uint32_t i = 0; i < files.size(); i++)
 	{
@@ -71,20 +86,6 @@ bool BundleCompiler::compile(const char* bundle_dir, const char* source_dir)
 		path::extension(filename, filename_extension, 32);
 		uint32_t resource_type_hash = hash::murmur2_32(filename_extension, string::strlen(filename_extension), 0);
 
-		// Do not compile if curr resource is a config file
-		if (resource_type_hash == CONFIG_TYPE)
-		{
-			File* src = src_fs.open(filename, FOM_READ);
-			File* dst = dst_fs.open(filename, FOM_WRITE);
-
-			src->copy_to(*dst, src->size());
-
-			src_fs.close(src);
-			dst_fs.close(dst);
-
-			continue;
-		}
-
 		char out_name[65];
 		snprintf(out_name, 65, "%"PRIx64"", filename_hash);
 
@@ -103,6 +104,11 @@ bool BundleCompiler::compile(const char* bundle_dir, const char* source_dir)
 		{
 			result = m_package.compile(source_dir, bundle_dir, filename, out_name);
 		}
+		// Skip crown.config file
+		else if (resource_type_hash == CONFIG_TYPE)
+		{
+			continue;
+		}
 		else
 		{
 			Log::e("Oops, unknown resource type!");