| 
									
										
										
										
											2019-07-03 17:41:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | def generate_compressed_config(config_src, output_dir): | 
					
						
							|  |  |  |     import os.path | 
					
						
							|  |  |  |     from compat import byte_to_str | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Source file | 
					
						
							|  |  |  |     with open(os.path.join(output_dir, 'android_mono_config.gen.cpp'), 'w') as cpp: | 
					
						
							|  |  |  |         with open(config_src, 'rb') as f: | 
					
						
							|  |  |  |             buf = f.read() | 
					
						
							|  |  |  |             decompr_size = len(buf) | 
					
						
							|  |  |  |             import zlib | 
					
						
							|  |  |  |             buf = zlib.compress(buf) | 
					
						
							|  |  |  |             compr_size = len(buf) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             bytes_seq_str = '' | 
					
						
							|  |  |  |             for i, buf_idx in enumerate(range(compr_size)): | 
					
						
							|  |  |  |                 if i > 0: | 
					
						
							|  |  |  |                     bytes_seq_str += ', ' | 
					
						
							|  |  |  |                 bytes_seq_str += byte_to_str(buf[buf_idx]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             cpp.write('''/* THIS FILE IS GENERATED DO NOT EDIT */
 | 
					
						
							| 
									
										
										
										
											2019-08-26 17:46:57 +02:00
										 |  |  | #include "android_mono_config.h" | 
					
						
							| 
									
										
										
										
											2019-07-03 17:41:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef ANDROID_ENABLED | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "core/io/compression.h" | 
					
						
							| 
									
										
										
										
											2020-02-17 18:06:54 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-03 17:41:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // config | 
					
						
							|  |  |  | static const int config_compressed_size = %d; | 
					
						
							|  |  |  | static const int config_uncompressed_size = %d; | 
					
						
							|  |  |  | static const unsigned char config_compressed_data[] = { %s }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | String get_godot_android_mono_config() { | 
					
						
							| 
									
										
										
										
											2020-02-17 18:06:54 -03:00
										 |  |  | 	Vector<uint8_t> data; | 
					
						
							| 
									
										
										
										
											2019-07-03 17:41:07 +02:00
										 |  |  | 	data.resize(config_uncompressed_size); | 
					
						
							| 
									
										
										
										
											2020-02-17 18:06:54 -03:00
										 |  |  | 	uint8_t* w = data.ptrw(); | 
					
						
							| 
									
										
										
										
											2019-07-03 17:41:07 +02:00
										 |  |  | 	Compression::decompress(w.ptr(), config_uncompressed_size, config_compressed_data, | 
					
						
							|  |  |  | 			config_compressed_size, Compression::MODE_DEFLATE); | 
					
						
							|  |  |  | 	String s; | 
					
						
							|  |  |  | 	if (s.parse_utf8((const char *)w.ptr(), data.size())) { | 
					
						
							|  |  |  | 		ERR_FAIL_V(String()); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return s; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif // ANDROID_ENABLED | 
					
						
							|  |  |  | ''' % (compr_size, decompr_size, bytes_seq_str))
 |