JetBrains / RiderSourceCodeAccess

Plugin for UE4 to user Rider for Unreal Engine as code editor
Apache License 2.0
110 stars 21 forks source link

Unreal Engine 5 Linux No Rider in Source Code Accessor Dropdown. #17

Open ericwomer opened 2 years ago

ericwomer commented 2 years ago

Currently on Ubuntu with the latest Rider for Unreal preview install and rider.sh in is the PATH variable yet I can't find it in the drop-down for the SourceCodeAccessor settings in the editor settings. On a side not any ETA on when Rider for Unreal will get mainlined?

DecoyRS commented 2 years ago

What commit and branch of UE are you using? "Rider for Unreal Engine" has already been merged with "Rider", so installing latest "Rider" EAP from toolbox will get you UE and C++ support. Full release for Rider is expected later this month

ericwomer commented 2 years ago

I was on the 5.0 release branch commit 05ce24e3038cb1994a7c71d4d0058dbdb112f52b, but installing rider with the tool-box did the charm, thanks. All's working fine now.

mrmowgli commented 2 years ago

Not working for me though, single install of Rider 2022.1, using the 5.0.1-0+++UE5+Release-5.0 version of Unreal. Using the TopDown sample project, I see the plugin is installed and enabled, but it doesn't show on the editor source code drop down. I generally avoid using the Toolbox to pull down on Linux since all the apps then run from my home directory. They should be installed as root and +rx only, so I don't think that installing from the toolbox is a real option for a fix.

mrmowgli commented 2 years ago

I tried the suggestion in #14 using the 5.0 branch of this plugin, ran ./GenerateProjectFiles.sh, then make but now I actually get:

[1/4] Compile Module.RiderSourceCodeAccess.cpp
[2/4] Link (lld) libUnrealEditor-RiderSourceCodeAccess.so
ld.lld: error: undefined symbol: FSlateNotificationManager::Get()
>>> referenced by RiderSourceCodeAccessor.cpp:103 (./../Plugins/Developer/RiderSourceCodeAccess/Source/RiderSourceCodeAccess/Private/RiderSourceCodeAccessor.cpp:103)
>>>               /home/alewis/dev/UnrealEngine-5.0.1/Engine/Plugins/Developer/RiderSourceCodeAccess/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/RiderSourceCodeAccess/Module.RiderSourceCodeAccess.cpp.o:(RSCA::CheckExecutable(FString const&))

ld.lld: error: undefined symbol: FSlateNotificationManager::AddNotification(FNotificationInfo const&)
>>> referenced by RiderSourceCodeAccessor.cpp:103 (./../Plugins/Developer/RiderSourceCodeAccess/Source/RiderSourceCodeAccess/Private/RiderSourceCodeAccessor.cpp:103)
>>>               /home/alewis/dev/UnrealEngine-5.0.1/Engine/Plugins/Developer/RiderSourceCodeAccess/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/RiderSourceCodeAccess/Module.RiderSourceCodeAccess.cpp.o:(RSCA::CheckExecutable(FString const&))
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:1228: UnrealEditor] Error 6
DecoyRS commented 2 years ago

FYI you don't need to run GenerateProjectFiles.sh with Rider. OK, getting back to an issue, I've semi-blindly fixed RSCA plugin for M1 Mac that might have broken build for Linux. Can you look for FSlateNotificationManager class, find the module that this is defined in and add it to RiderSourceCodeAccess.Build.cs, though I do have a feeling that it should already have a reference for it.

mrmowgli commented 2 years ago

It looks like it's defined in Slate which is already included in RiderSourceCodeAccess.Build.cs

$Engine/Source/Runtime/Slate/Public/Framework/Notifications/NotificationManager.h

mrmowgli commented 2 years ago

Ok I think I found the source of this ticket and #14 , it looks like there is a specific path that the plugin finds the Rider binary with, and if you install it via Toolbox, the binary is in a known location. However in Linux, it's very common to install to /opt/ or /usr/share and the plugin doesn't handle that well.

Easy option is to modify this location on build or simlink in the path in your .config folder. See: Engine/Plugins/Developer/RiderSourceCodeAccess/Resources/RiderLocations.txt

This doesn't help with my build issue, but it's a start. Is this plugin included in UE or is it installed by Ryder when it discovers the Engine source?

mrmowgli commented 2 years ago

Ok, I pulled down the version before your last pull request and it built fine, then I changed RiderLocations.txt to add the path to rider.sh. I then rebuilt and I can verify that that resolves the issue.

DecoyRS commented 2 years ago

Thanks for the heads up!Now to get myself a Linux PC and fix the plugin ><