mirror of
https://github.com/godotengine/godot
synced 2024-09-05 03:48:26 +00:00
Merge pull request #90422 from bruvzg/net_no_native_embed
[.NET] Disable output embedding on macOS, move it to the advanced options on other platforms.
This commit is contained in:
commit
d3d10b55b4
|
@ -410,115 +410,6 @@ ScriptLanguage::ScriptNameCasing CSharpLanguage::preferred_file_name_casing() co
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
struct VariantCsName {
|
|
||||||
Variant::Type variant_type;
|
|
||||||
const String cs_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
static String variant_type_to_managed_name(const String &p_var_type_name) {
|
|
||||||
if (p_var_type_name.is_empty()) {
|
|
||||||
return "Variant";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ClassDB::class_exists(p_var_type_name)) {
|
|
||||||
return pascal_to_pascal_case(p_var_type_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::OBJECT)) {
|
|
||||||
return "GodotObject";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::INT)) {
|
|
||||||
return "long";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::FLOAT)) {
|
|
||||||
return "double";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::STRING)) {
|
|
||||||
return "string"; // I prefer this one >:[
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::DICTIONARY)) {
|
|
||||||
return "Collections.Dictionary";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p_var_type_name.begins_with(Variant::get_type_name(Variant::ARRAY) + "[")) {
|
|
||||||
String element_type = p_var_type_name.trim_prefix(Variant::get_type_name(Variant::ARRAY) + "[").trim_suffix("]");
|
|
||||||
return "Collections.Array<" + variant_type_to_managed_name(element_type) + ">";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::ARRAY)) {
|
|
||||||
return "Collections.Array";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::PACKED_BYTE_ARRAY)) {
|
|
||||||
return "byte[]";
|
|
||||||
}
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::PACKED_INT32_ARRAY)) {
|
|
||||||
return "int[]";
|
|
||||||
}
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::PACKED_INT64_ARRAY)) {
|
|
||||||
return "long[]";
|
|
||||||
}
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::PACKED_FLOAT32_ARRAY)) {
|
|
||||||
return "float[]";
|
|
||||||
}
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::PACKED_FLOAT64_ARRAY)) {
|
|
||||||
return "double[]";
|
|
||||||
}
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::PACKED_STRING_ARRAY)) {
|
|
||||||
return "string[]";
|
|
||||||
}
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::PACKED_VECTOR2_ARRAY)) {
|
|
||||||
return "Vector2[]";
|
|
||||||
}
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::PACKED_VECTOR3_ARRAY)) {
|
|
||||||
return "Vector3[]";
|
|
||||||
}
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::PACKED_COLOR_ARRAY)) {
|
|
||||||
return "Color[]";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p_var_type_name == Variant::get_type_name(Variant::SIGNAL)) {
|
|
||||||
return "Signal";
|
|
||||||
}
|
|
||||||
|
|
||||||
const VariantCsName var_types[] = {
|
|
||||||
{ Variant::BOOL, "bool" },
|
|
||||||
{ Variant::INT, "long" },
|
|
||||||
{ Variant::VECTOR2, "Vector2" },
|
|
||||||
{ Variant::VECTOR2I, "Vector2I" },
|
|
||||||
{ Variant::RECT2, "Rect2" },
|
|
||||||
{ Variant::RECT2I, "Rect2I" },
|
|
||||||
{ Variant::VECTOR3, "Vector3" },
|
|
||||||
{ Variant::VECTOR3I, "Vector3I" },
|
|
||||||
{ Variant::TRANSFORM2D, "Transform2D" },
|
|
||||||
{ Variant::VECTOR4, "Vector4" },
|
|
||||||
{ Variant::VECTOR4I, "Vector4I" },
|
|
||||||
{ Variant::PLANE, "Plane" },
|
|
||||||
{ Variant::QUATERNION, "Quaternion" },
|
|
||||||
{ Variant::AABB, "Aabb" },
|
|
||||||
{ Variant::BASIS, "Basis" },
|
|
||||||
{ Variant::TRANSFORM3D, "Transform3D" },
|
|
||||||
{ Variant::PROJECTION, "Projection" },
|
|
||||||
{ Variant::COLOR, "Color" },
|
|
||||||
{ Variant::STRING_NAME, "StringName" },
|
|
||||||
{ Variant::NODE_PATH, "NodePath" },
|
|
||||||
{ Variant::RID, "Rid" },
|
|
||||||
{ Variant::CALLABLE, "Callable" },
|
|
||||||
};
|
|
||||||
|
|
||||||
for (unsigned int i = 0; i < sizeof(var_types) / sizeof(VariantCsName); i++) {
|
|
||||||
if (p_var_type_name == Variant::get_type_name(var_types[i].variant_type)) {
|
|
||||||
return var_types[i].cs_type;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return "Variant";
|
|
||||||
}
|
|
||||||
|
|
||||||
String CSharpLanguage::make_function(const String &, const String &p_name, const PackedStringArray &p_args) const {
|
String CSharpLanguage::make_function(const String &, const String &p_name, const PackedStringArray &p_args) const {
|
||||||
// The make_function() API does not work for C# scripts.
|
// The make_function() API does not work for C# scripts.
|
||||||
// It will always append the generated function at the very end of the script. In C#, it will break compilation by
|
// It will always append the generated function at the very end of the script. In C#, it will break compilation by
|
||||||
|
|
|
@ -209,7 +209,7 @@ namespace GodotTools.Export
|
||||||
|
|
||||||
List<string> outputPaths = new();
|
List<string> outputPaths = new();
|
||||||
|
|
||||||
bool embedBuildResults = (bool)GetOption("dotnet/embed_build_outputs") || platform == OS.Platforms.Android;
|
bool embedBuildResults = ((bool)GetOption("dotnet/embed_build_outputs") || platform == OS.Platforms.Android) && platform != OS.Platforms.MacOS;
|
||||||
|
|
||||||
foreach (PublishConfig config in targets)
|
foreach (PublishConfig config in targets)
|
||||||
{
|
{
|
||||||
|
|
|
@ -77,7 +77,9 @@ class GDMono {
|
||||||
void _try_load_project_assembly();
|
void _try_load_project_assembly();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef DEBUG_METHODS_ENABLED
|
||||||
uint64_t api_core_hash = 0;
|
uint64_t api_core_hash = 0;
|
||||||
|
#endif
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
uint64_t api_editor_hash = 0;
|
uint64_t api_editor_hash = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1939,6 +1939,12 @@ bool EditorExportPlatformAndroid::get_export_option_visibility(const EditorExpor
|
||||||
// The APK templates are ignored if Gradle build is enabled.
|
// The APK templates are ignored if Gradle build is enabled.
|
||||||
return advanced_options_enabled && !bool(p_preset->get("gradle_build/use_gradle_build"));
|
return advanced_options_enabled && !bool(p_preset->get("gradle_build/use_gradle_build"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Hide .NET embedding option (always enabled).
|
||||||
|
if (p_option == "dotnet/embed_build_outputs") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,11 @@ void EditorExportPlatformIOS::_notification(int p_what) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EditorExportPlatformIOS::get_export_option_visibility(const EditorExportPreset *p_preset, const String &p_option) const {
|
bool EditorExportPlatformIOS::get_export_option_visibility(const EditorExportPreset *p_preset, const String &p_option) const {
|
||||||
|
// Hide unsupported .NET embedding option.
|
||||||
|
if (p_option == "dotnet/embed_build_outputs") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -146,12 +146,19 @@ List<String> EditorExportPlatformLinuxBSD::get_binary_extensions(const Ref<Edito
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EditorExportPlatformLinuxBSD::get_export_option_visibility(const EditorExportPreset *p_preset, const String &p_option) const {
|
bool EditorExportPlatformLinuxBSD::get_export_option_visibility(const EditorExportPreset *p_preset, const String &p_option) const {
|
||||||
if (p_preset) {
|
if (p_preset == nullptr) {
|
||||||
// Hide SSH options.
|
return true;
|
||||||
bool ssh = p_preset->get("ssh_remote_deploy/enabled");
|
}
|
||||||
if (!ssh && p_option != "ssh_remote_deploy/enabled" && p_option.begins_with("ssh_remote_deploy/")) {
|
|
||||||
return false;
|
bool advanced_options_enabled = p_preset->are_advanced_options_enabled();
|
||||||
}
|
|
||||||
|
// Hide SSH options.
|
||||||
|
bool ssh = p_preset->get("ssh_remote_deploy/enabled");
|
||||||
|
if (!ssh && p_option != "ssh_remote_deploy/enabled" && p_option.begins_with("ssh_remote_deploy/")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (p_option == "dotnet/embed_build_outputs") {
|
||||||
|
return advanced_options_enabled;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -333,6 +333,12 @@ bool EditorExportPlatformMacOS::get_export_option_visibility(const EditorExportP
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Hide unsupported .NET embedding option.
|
||||||
|
if (p_option == "dotnet/embed_build_outputs") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -367,11 +367,17 @@ String EditorExportPlatformWindows::get_export_option_warning(const EditorExport
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EditorExportPlatformWindows::get_export_option_visibility(const EditorExportPreset *p_preset, const String &p_option) const {
|
bool EditorExportPlatformWindows::get_export_option_visibility(const EditorExportPreset *p_preset, const String &p_option) const {
|
||||||
|
if (p_preset == nullptr) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// This option is not supported by "osslsigncode", used on non-Windows host.
|
// This option is not supported by "osslsigncode", used on non-Windows host.
|
||||||
if (!OS::get_singleton()->has_feature("windows") && p_option == "codesign/identity_type") {
|
if (!OS::get_singleton()->has_feature("windows") && p_option == "codesign/identity_type") {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool advanced_options_enabled = p_preset->are_advanced_options_enabled();
|
||||||
|
|
||||||
// Hide codesign.
|
// Hide codesign.
|
||||||
bool codesign = p_preset->get("codesign/enable");
|
bool codesign = p_preset->get("codesign/enable");
|
||||||
if (!codesign && p_option != "codesign/enable" && p_option.begins_with("codesign/")) {
|
if (!codesign && p_option != "codesign/enable" && p_option.begins_with("codesign/")) {
|
||||||
|
@ -390,6 +396,9 @@ bool EditorExportPlatformWindows::get_export_option_visibility(const EditorExpor
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (p_option == "dotnet/embed_build_outputs") {
|
||||||
|
return advanced_options_enabled;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue