Skip to content

Commit

Permalink
Merge pull request #97216 from markeel/issue_97207_filter_extension_l…
Browse files Browse the repository at this point in the history
…ist_cfg

Ensure excluded GDExtension files are not included in `extension_list.cfg`
  • Loading branch information
Repiteo committed Nov 22, 2024
2 parents c35e4c4 + c57eaf7 commit d2bfbd7
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
26 changes: 25 additions & 1 deletion editor/export/editor_export_platform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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) {
Expand Down
2 changes: 2 additions & 0 deletions editor/export/editor_export_platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,8 @@ class EditorExportPlatform : public RefCounted {
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;
Expand Down

0 comments on commit d2bfbd7

Please sign in to comment.