Open jojorne opened 6 years ago
Multi-platform friendly... Do you have any platform specific in mind?
Linux/Mac I haven't used Windows in years, hence the lack of development.
OK, the app runs on Linux by using Mono but it crashes with Kernel32 and User32 from DllImport. Also, to move to GTK+ (aka GTK# or GTK Core) we need to decouple the logic from the UI.
PS.: Something like this might work to load native libraries.
Yeah, currently the app uses a bunch of PInvokes for mouse and similar access from the system libraries. AFAIK Linux has no direct equivalent, but I think I saw that GTK has something we can use for cross-platform.
OK, MonoDevelop complains about the path to the files in the resources. It just happens to be case sensitive... Also appears that there is no "v7.0A\bin\RC.exe" in linux... does it? What "RC.exe" does anyway?
Is that path relative to the repository?
All path and filenames are case sensitive in Linux (and Mac, I believe), whereas Windows is case-insensitive and defaults to Upper-Case. Causes a lot of issues porting windows stuff to Linux, or sharing via SMB :-)
PR sent to fix the case stuff for linux. ...and a missing button image.
That is a build event stuff:
lsleditor.csproj
<PropertyGroup>
<PreBuildEvent>"$(FrameworkSDKDir)..\v7.0A\Bin\x64\Rc.exe" /r "$(ProjectDir)$(TargetName).rc"</PreBuildEvent>
<PostBuildEvent>"$(SolutionDir)..\build\AssemblyRevisionIncrementer.exe" /t="$(SolutionDir)Properties\AssemblyInfo.cs"</PostBuildEvent>
</PropertyGroup>
On Windows "v7.0A\Bin\x64\Rc.exe" was moved.
BTW, "AssemblyRevisionIncrementer.exe" does not support space in path, so I can't save the solution in a directory with space. I could call DOS to fix the path to something like "D:\MyProj\~1\MySolut\~1..." but on Linux...
I'm just doing this for now:
lsleditor.csproj
<PropertyGroup>
<PreBuildEvent># "$(FrameworkSDKDir)..\v7.0A\Bin\x64\Rc.exe" /r "$(ProjectDir)$(TargetName).rc"</PreBuildEvent>
<PostBuildEvent># "$(SolutionDir)..\build\AssemblyRevisionIncrementer.exe" /t="$(SolutionDir)Properties\AssemblyInfo.cs"</PostBuildEvent>
</PropertyGroup>
Current state on Linux: Compiles: Yes Executes: Crash on windows native methods
OK. Remove the RC.exe as I'm pretty certain it is a windows only thing and we'll have to update the build process accordingly. "AssemblyRevisionIncrementer.exe" will probably need to be replaced any way for multi-platform.
LSLEditorCE v3 porting TODO list
The aim of this overhaul of the code-base is to make it multi-platform friendly and gain a better insight into the workings of all areas of the code. Hopefully this will lead to removal of any cruft and a leaner code-base.
PS.: Updating the list as we go.