mirror of https://github.com/godotengine/godot
Merge pull request #97216 from markeel/issue_97207_filter_extension_list_cfg
Ensure excluded GDExtension files are not included in `extension_list.cfg`
This commit is contained in:
commit
d2bfbd759e
|
|
@ -1495,7 +1495,15 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
|
|||
|
||||
Vector<String> forced_export = get_forced_export_files();
|
||||
for (int i = 0; i < forced_export.size(); i++) {
|
||||
Vector<uint8_t> array = FileAccess::get_file_as_bytes(forced_export[i]);
|
||||
Vector<uint8_t> array;
|
||||
if (GDExtension::get_extension_list_config_file() == forced_export[i]) {
|
||||
array = _filter_extension_list_config_file(forced_export[i], paths);
|
||||
if (array.size() == 0) {
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
array = FileAccess::get_file_as_bytes(forced_export[i]);
|
||||
}
|
||||
err = p_save_func(p_udata, forced_export[i], array, idx, total, enc_in_filters, enc_ex_filters, key, seed);
|
||||
if (err != OK) {
|
||||
return err;
|
||||
|
|
@ -1534,6 +1542,22 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
|
|||
return OK;
|
||||
}
|
||||
|
||||
Vector<uint8_t> EditorExportPlatform::_filter_extension_list_config_file(const String &p_config_path, const HashSet<String> &p_paths) {
|
||||
Ref<FileAccess> f = FileAccess::open(p_config_path, FileAccess::READ);
|
||||
if (f.is_null()) {
|
||||
ERR_FAIL_V_MSG(Vector<uint8_t>(), "Can't open file from path '" + String(p_config_path) + "'.");
|
||||
}
|
||||
Vector<uint8_t> data;
|
||||
while (!f->eof_reached()) {
|
||||
String l = f->get_line().strip_edges();
|
||||
if (p_paths.has(l)) {
|
||||
data.append_array(l.to_utf8_buffer());
|
||||
data.append('\n');
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
Error EditorExportPlatform::_pack_add_shared_object(void *p_userdata, const SharedObject &p_so) {
|
||||
PackData *pack_data = (PackData *)p_userdata;
|
||||
if (pack_data->so_files) {
|
||||
|
|
|
|||
|
|
@ -135,6 +135,8 @@ private:
|
|||
void _edit_files_with_filter(Ref<DirAccess> &da, const Vector<String> &p_filters, HashSet<String> &r_list, bool exclude);
|
||||
void _edit_filter_list(HashSet<String> &r_list, const String &p_filter, bool exclude);
|
||||
|
||||
static Vector<uint8_t> _filter_extension_list_config_file(const String &p_config_path, const HashSet<String> &p_paths);
|
||||
|
||||
struct FileExportCache {
|
||||
uint64_t source_modified_time = 0;
|
||||
String source_md5;
|
||||
|
|
|
|||
Loading…
Reference in New Issue