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

Rework of Xamarin Studio/MonoDevelop Addin #3361

Closed
wants to merge 24 commits into from

Conversation

dellis1972
Copy link
Contributor

Includes new templates and new Shared Projects support
Includes Pipeline Tool support
Removes old ProjectTemplates

This is just a Test PR for now to check for any build issues.

Also worth noting that once this is in , the old MonoDevelopContent addin will no longer be needed and will also be removed probably as part of the PR as well. This is because we don't want to support the old xna content projects moving forward , only the .mgcb ones which this new addin will take care of.

I do need some guidance on where the Pipeline.exe will be installed on linux.. so we can start it correctly from the IDE.

@dellis1972
Copy link
Contributor Author

Note all the templates are now Nuget based. But we do include the nuget package in the addin so it will work offline if required (this is how Xamarin Studio handles nuget).

I will also look at packaging this addin with the Pipeline Mac installer.

@tomspilman
Copy link
Member

I will also look at packaging this addin with the Pipeline Mac installer.

Will this then replace the mpack we have for MonoDevelop then?

@dellis1972
Copy link
Contributor Author

It can replace the mpack. I think having a proper Mac installer is more important now (same for linux)

@harry-cpp
Copy link
Member

On linux I made it so that the path where the pipeline will be installed can be changed during the installation, but launching /bin/monogame-pipeline will always launch monogame pipeline(or typying monogame-pipeline in terminal). Hope it helps.

@harry-cpp
Copy link
Member

@tomspilman Sorry for asking again, but can you make mac server do the build of linux files, If you can, then I can make a proper linux installer, if not, the PR I submitted is closes thing to installer I can make windows build(without cygwin).

@dellis1972
Copy link
Contributor Author

@cra0zy could you add a script to run the mgcb as well? e.g /bin/mgcb

@harry-cpp
Copy link
Member

@dellis1972 already did

@dellis1972
Copy link
Contributor Author

@cra0zy awesome :)

@tomspilman
Copy link
Member

It can replace the mpack. I think having a proper Mac installer is more important now (same for linux)

Great!

@dellis1972
Copy link
Contributor Author

@tomspilman ok some more changes. First is the location of the Pipeline.Installer.pkg it will now be in

Installers/Pipeline.Installer.pkg

Now given that it now includes installing the Xamarin Studio Addin, I'm thinking of renaming the file to just MonoGame.Installer.pkg … comments?

I also moved the building of the installer into the Installers directory default.build file which makes more sense.

I had to make some changes to the start up code of the Pipeline app on mac because it was always getting a arg like -psn_0_xxxxxx which was messing up the auto open.

The integration with XS is done, if you have a .mgcb file in a project and double click on it , it will open in the Pipeline app :)

The new Templates have all been moved to the IDE/MonoDevelop folder. I have done, Mac, Android, iOS, iOS+Android+Shared, there is a Windows/Linux project as well. All the new templates use nuget to get the binaries. We ship the current stable nuget package with the addin so it will work offline.

A Video of the XS integration is over at http://www.screencast.com/t/ygygS0JOw

@dellis1972
Copy link
Contributor Author

Still have a few bits to tidy up then we can look at merging this in

@tomspilman
Copy link
Member

thinking of renaming the file to just MonoGame.Installer.pkg … comments?

Seems great to me.

The new Templates have all been moved to the IDE/MonoDevelop folder

I guess that means that the Xamarin Studio templates are still an IDE extension?

@dellis1972
Copy link
Contributor Author

Yes, and extension is the only way to do templates in XS and MonoDevelop :-/

-----Original Message-----
From: "Tom Spilman" notifications@github.com
Sent: ‎08/‎01/‎2015 23:19
To: "mono/MonoGame" MonoGame@noreply.github.com
Cc: "Dean Ellis" dellis1972@googlemail.com
Subject: Re: [MonoGame] Rework of Xamarin Studio/MonoDevelop Addin DO NOTMERGE WIP

thinking of renaming the file to just MonoGame.Installer.pkg … comments?
Seems great to me.
The new Templates have all been moved to the IDE/MonoDevelop folder
I guess that means that the Xamarin Studio templates are still an IDE extension?

Reply to this email directly or view it on GitHub.=

@harry-cpp
Copy link
Member

@dellis1972 I'm guessing I should add installation of xs addin to pipeline installer for linux, just 1 quick question, did you just setup copying the addin to xs addin folder or did you do something more?

@tomspilman
Copy link
Member

@dellis1972 - How long before you think this can be ready?

@dellis1972
Copy link
Contributor Author

@tomspilman its a bit of a catch 22. It is relying on Nuget packages, but we need the new ones now especially since iOS is now Unified rather than classic as the framework versions changed from MonoTouch to Xamarin.iOS. We need to coordinate a Nuget release at the same time so we can make sure this all works. So we'll need to chat with @DDReaper so make sure I get the package names right etc.

@tomspilman
Copy link
Member

It is relying on Nuget packages

I'm confused.

How is this an installer for Mac if it depends on NuGet? Are the assemblies coming from the installer or from NuGet?

@dellis1972
Copy link
Contributor Author

The new XS templates are designed to use Nuget to get their references.
This is good for a couple of reasons , updates and it means that the
references will actually work. With the old addin, because of the way XS
works we could not auto add references for all the project types without
putting in some horrible hacks (see
https://github.com/dellis1972/MonoGameMonoDevelopAddin/blob/master/MonoDevelop.MonoGame/MonoGameProject.cs#L119).
Also this only worked on "MonoGame/XNA" project types, it cannot work for
Android/iOS or Mac because those project types are Xamarin ones not ours.
We might be able to derive new project types for Android/iOS but we can't
for Mac as the MonoMac project type is sealed as is the Xamarin.Mac one.

XS has built in support for Nuget so the new templates use that, but to
support offline installation we package the "latest" nuget packages with
the Addin so that if the user is offline they can still work.

We could go down the route of putting MonoGame in
/Library/Frameworks/MonoGame.framework/ which would be nice...but that will
require allot more research/work and things like MSBuild tasks, integration
with mono so that the assemblies can in the GAC/can be resolved without all
the hacks.

If we want this in the 3.3 release but not with Nuget, I'll have to put in
those hacks and we'll have to accept that the templates won't build out of
the box because of missing assembly references for projects like Mac/iOS
and Android. Or just put in basic templates and let the users figure out
the references themselves.

@harry-cpp
Copy link
Member

@dellis1972 I think you should put this PR up for merging. If there are bugs you won't be the only one who will have to solve them, you would get help.

@dellis1972
Copy link
Contributor Author

This is ready for merging I think, just waiting on @tomspilman or @KonajuGames to review and merge it :)

@harry-cpp
Copy link
Member

Oh, can't wait for this to get merged :D


namespace ${Namespace}
namespace ${ProjectName}.Droid
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the .Droid addition to the namespace? It just necessitates the additional using statement above it, and "Droid" is not an abbreviation that Google approve of for "Android".

Also, a project name might not be a valid namespace if I remember correctly.

@KonajuGames
Copy link
Contributor

The Android splash screen is very low resolution and dull grey. Can it use the same white splash as the VS Android template? And default the project to landscape as all other templates do.
MonoGame\ProjectTemplates\VisualStudio2010\Android\Resources\Drawable\Splash.png

I would like to remove the small "mono for Android" logo from the lower-left though.

[assembly: AssemblyConfiguration ("")]
[assembly: AssemblyCompany ("")]
[assembly: AssemblyProduct ("")]
[assembly: AssemblyCopyright ("Dean")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the assembly info for the plug-in or the template for new projects? If for the plug-in, the copyright should be "MonoGame Team" like our standard file header. If for a template, it should be the token so the IDE fills it in as appropriate for the user.

@KonajuGames
Copy link
Contributor

That is a /lot/ of files and changes to look through. :)

@harry-cpp
Copy link
Member

@dellis1972
Copy link
Contributor Author

Closing this PR, reopened a new one

@dellis1972 dellis1972 closed this Apr 4, 2015
@dellis1972 dellis1972 deleted the NewAddin branch April 4, 2015 19:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants