You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-06 12:20:30 +00:00
Improve the C# API projects generation
- Now there is only one solution that contains both GodotSharp and GodotSharpEditor project. Previously we had one solution for each project - GodotSharpEditor reference GodotShatp with a 'ProjectReference'. Previously it was a 'Reference' to the assembly - This also simplifies the command line option to generate this solution: 'godot --generate-cs-api <OutputDir>'
This commit is contained in:
@@ -31,6 +31,8 @@
|
||||
#include "csharp_project.h"
|
||||
|
||||
#include "core/io/json.h"
|
||||
#include "core/os/dir_access.h"
|
||||
#include "core/os/file_access.h"
|
||||
#include "core/os/os.h"
|
||||
#include "core/project_settings.h"
|
||||
|
||||
@@ -62,16 +64,16 @@ String generate_core_api_project(const String &p_dir, const Vector<String> &p_fi
|
||||
return ret ? GDMonoMarshal::mono_string_to_godot((MonoString *)ret) : String();
|
||||
}
|
||||
|
||||
String generate_editor_api_project(const String &p_dir, const String &p_core_dll_path, const Vector<String> &p_files) {
|
||||
String generate_editor_api_project(const String &p_dir, const String &p_core_proj_path, const Vector<String> &p_files) {
|
||||
|
||||
_GDMONO_SCOPE_DOMAIN_(TOOLS_DOMAIN)
|
||||
|
||||
GDMonoClass *klass = GDMono::get_singleton()->get_editor_tools_assembly()->get_class("GodotSharpTools.Project", "ProjectGenerator");
|
||||
|
||||
Variant dir = p_dir;
|
||||
Variant core_dll_path = p_core_dll_path;
|
||||
Variant core_proj_path = p_core_proj_path;
|
||||
Variant compile_items = p_files;
|
||||
const Variant *args[3] = { &dir, &core_dll_path, &compile_items };
|
||||
const Variant *args[3] = { &dir, &core_proj_path, &compile_items };
|
||||
MonoException *exc = NULL;
|
||||
MonoObject *ret = klass->get_method("GenEditorApiProject", 3)->invoke(NULL, args, &exc);
|
||||
|
||||
@@ -127,6 +129,14 @@ Error generate_scripts_metadata(const String &p_project_path, const String &p_ou
|
||||
|
||||
_GDMONO_SCOPE_DOMAIN_(TOOLS_DOMAIN)
|
||||
|
||||
if (FileAccess::exists(p_output_path)) {
|
||||
DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
|
||||
Error rm_err = da->remove(p_output_path);
|
||||
|
||||
ERR_EXPLAIN("Failed to remove old scripts metadata file");
|
||||
ERR_FAIL_COND_V(rm_err != OK, rm_err);
|
||||
}
|
||||
|
||||
GDMonoClass *project_utils = GDMono::get_singleton()->get_editor_tools_assembly()->get_class("GodotSharpTools.Project", "ProjectUtils");
|
||||
|
||||
void *args[2] = {
|
||||
|
||||
Reference in New Issue
Block a user