Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove/Change MonoKickstart #4895

Closed
tomspilman opened this issue May 30, 2016 · 15 comments
Closed

Remove/Change MonoKickstart #4895

tomspilman opened this issue May 30, 2016 · 15 comments

Comments

@tomspilman
Copy link
Member

We currently have a submodule for MonoKickstart here:

https://github.com/mono/MonoGame/tree/develop/ThirdParty/Kickstart

It points to this repo...

https://github.com/OutOfOrder/MonoKickstart/tree/5e03d0127e514dcf8a63ae9ebd385cd392dcde52

... and for some reason not our fork...

https://github.com/MonoGame/MonoKickstart

What do we need to do here? Do we update the submodule? Do we remove it?

@harry-cpp
Copy link
Member

I vote to remove it.

@mrhelmut
Copy link
Contributor

Me too, it can live on its own and is there only as an option for packaging DesktopGL projects. Nothing refers to it.

@tomspilman
Copy link
Member Author

So then how do people learn about it and which one to use?

I think along with removing it we need to add something to the docs to at least point users in the right direction.

@mrhelmut
Copy link
Contributor

I need to take some time to complete #4430
I think I'll do this once the OpenTK removal is merged.

@tomspilman tomspilman modified the milestones: 3.6 Release, 3.7 Release Mar 9, 2017
@harry-cpp
Copy link
Member

On a side note, with .NET Core this will be useless since it has a built in command for bundling up the .NET Core runtime :)

@tomspilman
Copy link
Member Author

@dellis1972 @mrhelmut @cra0zy - So is this issue done? Is it critical we fix this now or can it wait?

@harry-cpp
Copy link
Member

I would say this can wait. I mean the kickstart works, we just don't have any proper docs on it.

Feel free to leave it in the milestone, in case you do, I'll see to setup a PR for this tomorrow.

@dellis1972
Copy link
Contributor

@cra0zy has .net Core fixed the PInvoke issue? Last time I looked it didn't have the dll.config ability that mono has? I think we still need KickStart about but we can remove the submodule and just document it.

@harry-cpp
Copy link
Member

harry-cpp commented Feb 21, 2018

It's kind of fixed, just name the native libs the same way and place them in rid (runtime id, ie. win-64, linux-x64, ie.) folders. Thats what I've been using for the DesktopGL .NET Core nuget package:

<Content Include="..\ThirdParty\DesktopGL\win-x86\libopenal.dll" PackagePath="runtimes\win-x86\native" Visible="false" />
<Content Include="..\ThirdParty\DesktopGL\win-x86\libSDL2-2.dll" PackagePath="runtimes\win-x86\native" Visible="false" />

<Content Include="..\ThirdParty\DesktopGL\win-x64\libopenal.dll" PackagePath="runtimes\win-x64\native" Visible="false" />
<Content Include="..\ThirdParty\DesktopGL\win-x64\libSDL2-2.dll" PackagePath="runtimes\win-x64\native" Visible="false" />

<Content Include="..\ThirdParty\DesktopGL\linux-x86\libopenal.so" PackagePath="runtimes\linux-x86\native" Visible="false" />
<Content Include="..\ThirdParty\DesktopGL\linux-x86\libSDL2-2.so" PackagePath="runtimes\linux-x86\native" Visible="false" />

<Content Include="..\ThirdParty\DesktopGL\linux-x64\libopenal.so" PackagePath="runtimes\linux-x64\native" Visible="false" />
<Content Include="..\ThirdParty\DesktopGL\linux-x64\libSDL2-2.so" PackagePath="runtimes\linux-x64\native" Visible="false" />

<Content Include="..\ThirdParty\DesktopGL\osx\libopenal.dylib" PackagePath="runtimes\osx\native" Visible="false" />
<Content Include="..\ThirdParty\DesktopGL\osx\libSDL2-2.dylib" PackagePath="runtimes\osx\native" Visible="false" />

Alternatively if we need to actually change the native lib names we are calling, we could always write our own function loader: https://github.com/GtkSharp/GtkSharp/blob/develop/Source/Libs/Shared/FuncLoader.cs

@dellis1972
Copy link
Contributor

Hmm ok. So we need any changes in our code to support that? I saw in your fork you altered the dll names we pass about.. We can bring that change in, but we need to make sure we don't break existing people who are just using DesktopGL. We should be able to use the exact same assembly for both .net.mono and .net core

@harry-cpp
Copy link
Member

Do you want me to try and submit the PR for .NET Core version of DesktopGL? I mean I could do it, tho we would need a custom .csproj file, plus we would need to multicompile the assembly so that it can be used from lower .NET Framework versions, plus the templates would need to reference the nuget for it instead of using our version of GAC.

@Jjagg
Copy link
Contributor

Jjagg commented Feb 21, 2018

There's gonna have to be some transition period, can't make the switch without a couple uglies :p

@dellis1972
Copy link
Contributor

dellis1972 commented Feb 21, 2018 via email

@harry-cpp
Copy link
Member

I think we have to produce the normal DesktopGL as it is , and a separate
.net core one in parallel..

Nuget can contain multiple assemblies, ie. it can contain both the .NET Standard and .net framework assemblies inside it.

that said I've used the normal DesktopGL with .net core and its fine, the
only problem I found so far on Mac are the dylib names which you can hack
around for now.

Yea, I've already made PRs for all the changes I had to do to get it running, so pretty much the only things left are the project file and packaging.

@harry-cpp
Copy link
Member

Kickstart submodule has been removed in: #6213

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants