diff --git a/Source/Editor/Scripting/CodeEditors/RiderCodeEditor.cpp b/Source/Editor/Scripting/CodeEditors/RiderCodeEditor.cpp index e88f3356b..438331e11 100644 --- a/Source/Editor/Scripting/CodeEditors/RiderCodeEditor.cpp +++ b/Source/Editor/Scripting/CodeEditors/RiderCodeEditor.cpp @@ -36,7 +36,7 @@ namespace // Load product info Array productInfoData; const String productInfoPath = directory / TEXT("product-info.json"); - if (File::ReadAllBytes(productInfoPath, productInfoData)) + if (!FileSystem::FileExists(productInfoPath) || File::ReadAllBytes(productInfoPath, productInfoData)) return; rapidjson_flax::Document document; document.Parse((char*)productInfoData.Get(), productInfoData.Count()); @@ -193,6 +193,7 @@ void RiderCodeEditor::FindEditors(Array* output) // TODO: detect Snap installations // TODO: detect by reading the jetbrains-rider.desktop file from ~/.local/share/applications and /usr/share/applications? + SearchDirectory(&installations, TEXT("/usr/share/rider/")); FileSystem::GetChildDirectories(subDirectories, TEXT("/usr/share/rider")); // Default suggested location for standalone installations diff --git a/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs b/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs index deed99bd7..395e3ab54 100644 --- a/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs +++ b/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs @@ -105,8 +105,9 @@ namespace Flax.Build.Projects.VisualStudio vcProjectFileContent.AppendLine(" MakeFileProj"); if (Version >= VisualStudioVersion.VisualStudio2022) vcProjectFileContent.AppendLine(" false"); + vcProjectFileContent.AppendLine(" ./"); vcProjectFileContent.AppendLine(" "); - + // Default properties vcProjectFileContent.AppendLine(" "); @@ -343,6 +344,32 @@ namespace Flax.Build.Projects.VisualStudio vcUserFileContent.AppendLine(""); + if (platforms.Any(x => x.Target == TargetPlatform.Linux)) + { + // Override MSBuild .targets file with one that runs NMake commands (workaround for Rider on Linux) + var cppTargetsFileContent = new StringBuilder(); + cppTargetsFileContent.AppendLine(""); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(" $(RootNamespace)$(Configuration.Split('.')[0])"); + cppTargetsFileContent.AppendLine(" $(OutDir)/$(TargetName)$(TargetExt)"); + cppTargetsFileContent.AppendLine(" "); + cppTargetsFileContent.AppendLine(""); + + Utilities.WriteFileIfChanged(Path.Combine(projectDirectory, "Microsoft.Cpp.targets"), cppTargetsFileContent.ToString()); + Utilities.WriteFileIfChanged(Path.Combine(projectDirectory, "Microsoft.Cpp.Default.props"), vcUserFileContent.ToString()); + Utilities.WriteFileIfChanged(Path.Combine(projectDirectory, "Microsoft.Cpp.props"), vcUserFileContent.ToString()); + } + // Save the files Utilities.WriteFileIfChanged(project.Path, vcProjectFileContent.ToString()); Utilities.WriteFileIfChanged(project.Path + ".filters", vcFiltersFileContent.ToString());