Protobuild #2249

Merged
merged 47 commits into from Mar 12, 2014

Conversation

Projects
None yet
5 participants
Owner

tomspilman commented Feb 27, 2014

This pull request starts to add Protobuild (https://github.com/hach-que/Protobuild) support to MonoGame. The work is based on the work @hach-que did in PR #1945.

  • Removed old MonoGame.Framework solutions/assemblies.
  • Added Protobuild binary and definitions.
  • Fixed build script to trigger Protobuild.
  • Fixed installer to reference changed assembly output paths.

To generate solutions/projects you simply run Protobuild and it generates everything. For people running their own build servers you will have to add a step to do that.

The next steps after this is merged to convert the tools (MGCB and 2MGFX) and then the content pipeline tools as Protobuild definitions.

Member

mgbot commented Feb 27, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/587/

Member

mgbot commented Feb 27, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/588/

Member

mgbot commented Feb 27, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/589/

Member

mgbot commented Feb 27, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/590/

Member

mgbot commented Feb 27, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/591/

Member

mgbot commented Feb 27, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/592/

Member

mgbot commented Feb 27, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/593/

Member

mgbot commented Feb 27, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/595/

Member

mgbot commented Feb 27, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/596/

Member

mgbot commented Feb 27, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/597/

Contributor

chaosnhatred commented Feb 28, 2014

So, for people who add the MonoGame projects/solutions to their own solution.
All we have to do is run Protobuild and add a reference to the project generated in the build dir?

Contributor

hach-que commented Feb 28, 2014

Yup. For MonoGame, if you run Protobuild with no arguments it'll generate projects for all platforms that the host platform can compile. It's configured for (according to Module.xml):

  • Windows: Android,Linux,Ouya,PSMobile,Windows8,Windows,WindowsGL,WindowsPhone,iOS
  • MacOS: MacOS,iOS,WindowsGL,Android
  • Linux: Linux,WindowsGL

If you are using MonoGame as a submodule, you'll need to run Protobuild again if you do "git clean", as that will remove the C# project files.

Contributor

chaosnhatred commented Feb 28, 2014

W00t, this change is a good thing :-)

I'll have to look into it for my own projects as the amount of platform
projects we have is outrageous lol.
On Feb 27, 2014 7:09 PM, "James Rhodes" notifications@github.com wrote:

Yup. For MonoGame, if you run Protobuild with no arguments it'll generate
projects for all platforms that the host platform can compile. It's
configured for (according to Module.xml):

  • Windows:
    Android,Linux,Ouya,PSMobile,Windows8,Windows,WindowsGL,WindowsPhone,iOS
  • MacOS: MacOS,iOS,WindowsGL,Android
  • Linux: Linux,WindowsGL

If you are using MonoGame as a submodule, you'll need to run Protobuild
again if you do "git clean", as that will remove the C# project files.

Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/pull/2249#issuecomment-36307942
.

Contributor

hach-que commented Feb 28, 2014

If you're using Protobuild for your own projects, and MonoGame is a submodule, it will recursively initialize all project files for the correct platforms, so you'll only need to run Protobuild.exe at the top-most level.

Contributor

chaosnhatred commented Feb 28, 2014

That is fantastic and a beautiful thing.
On Feb 27, 2014 7:14 PM, "James Rhodes" notifications@github.com wrote:

If you're using Protobuild for your own projects, and MonoGame is a
submodule, it will recursively initialize all project files for the correct
platforms, so you'll only need to run Protobuild.exe at the top-most level.

Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/pull/2249#issuecomment-36308291
.

Contributor

hach-que commented Feb 28, 2014

Oh, and although MonoGame doesn't use it, it supports synchronising some changes made in the C# projects (such as adding or removing files in your IDE) back into the definitions files, so you only need to manually modify those if adjusting references or build settings.

Contributor

chaosnhatred commented Feb 28, 2014

Even better, that is functionality that we will be using as we have to
update all platform specific projects manually when changes like that
occur. Can be a pain.

This is an awesome product, someone should be getting money for it lol.
On Feb 27, 2014 7:17 PM, "James Rhodes" notifications@github.com wrote:

Oh, and although MonoGame doesn't use it, it supports synchronising some
changes made in the C# projects (such as adding or removing files in your
IDE) back into the definitions files, so you only need to manually modify
those if adjusting references or build settings.

Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/pull/2249#issuecomment-36308569
.

Contributor

hach-que commented Feb 28, 2014

If you need any help getting it set up, just add me on Google Talk (jrhodes@redpointsoftware.com.au), Twitter (@hachque), or add issues on the GitHub tracker if you encounter bugs: https://github.com/hach-que/Protobuild

Contributor

chaosnhatred commented Feb 28, 2014

Will do sir, thank you.
On Feb 27, 2014 7:54 PM, "James Rhodes" notifications@github.com wrote:

If you need any help getting it set up, just add me on Google Talk (
jrhodes@redpointsoftware.com.au), Twitter (@hachque), or add issues on
the GitHub tracker if you encounter bugs:
https://github.com/hach-que/Protobuild

Reply to this email directly or view it on GitHubhttps://github.com/mono/MonoGame/pull/2249#issuecomment-36311046
.

Member

mgbot commented Mar 1, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/600/

Member

mgbot commented Mar 1, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/601/

Member

mgbot commented Mar 1, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/602/

Member

mgbot commented Mar 1, 2014

Test PASSed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/603/

Member

mgbot commented Mar 1, 2014

Test PASSed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/604/

Member

mgbot commented Mar 8, 2014

Test PASSed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/620/

Contributor

KonajuGames commented Mar 10, 2014

Is the XLST embedded in Protobuild.exe? Shouldn't it be external so we can modify it?

Owner

tomspilman commented Mar 10, 2014

Is the XLST embedded in Protobuild.exe? Shouldn't it
be external so we can modify it?

We have no need to modify it at this time, so the internal copy is fine.

If we later find a need to modify it you just do Protobuild.exe -extract-xslt and it will spit them out for modification.

Ideally we won't find a need to make modifications to the xslt files. When we do the best thing would be to work with @hach-que to see how we can make the change a standard feature of Protobuild.

Contributor

KonajuGames commented Mar 10, 2014

I was thinking of adding the C# formatting section to the csproj files that
is used by MonoDevelop/Xamarin Studio. I'm guessing that would be done in
the XLST.​

Owner

tomspilman commented Mar 10, 2014

I was thinking of adding the C# formatting section to the csproj
files that is used by MonoDevelop/Xamarin Studio.

We should probably start a separate discussion on that to not get all off topic here.

See https://github.com/hach-que/Protobuild/issues/12.

Owner

tomspilman commented Mar 12, 2014

@mgbot test

Contributor

KonajuGames commented Mar 12, 2014

You won't be needing the PR I submitted to your protobuild branch earlier this week updating it with latest develop and audio changes. :)

Owner

tomspilman commented Mar 12, 2014

You won't be needing the PR I submitted to your
protobuild branch earlier this week
Oh... I didn't even notice it. Github sent me no notification of it.

@hach-que also was fixing the PR for me right before I merged mine.

I appreciate the help greatly... I totally didn't notice it.

Owner

tomspilman commented Mar 12, 2014

So if this build works. I am gonna quickly squash the EXE commits then you can merge this @KonajuGames.

@JamesLupiani should be able to fix his PR to support Protobuild changes once its in.

Member

mgbot commented Mar 12, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/632/

Member

mgbot commented Mar 12, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/633/

Owner

tomspilman commented Mar 12, 2014

@mgbot test

tomspilman and others added some commits Feb 27, 2014

Swapped DefaultTargets and ToolsVersion to match standard projects.
Added missing import for Win8.
Fixed VisualStudioVersion conditional.
WindowsPhone was not setting the Release x86/ARM configurations as bu…
…ildable.

WindowsPhone now gets the Visual Studio 2012 header.
Merge remote-tracking branch 'origin/develop' into protobuild
Conflicts:
	MonoGame.Framework/MonoGame.Framework.Android.csproj
	MonoGame.Framework/MonoGame.Framework.Linux.csproj
	MonoGame.Framework/MonoGame.Framework.MacOS.csproj
	MonoGame.Framework/MonoGame.Framework.Ouya.csproj
	MonoGame.Framework/MonoGame.Framework.PSMobile.csproj
	MonoGame.Framework/MonoGame.Framework.Windows.csproj
	MonoGame.Framework/MonoGame.Framework.Windows8.csproj
	MonoGame.Framework/MonoGame.Framework.WindowsGL.csproj
	MonoGame.Framework/MonoGame.Framework.WindowsPhone.csproj
	MonoGame.Framework/MonoGame.Framework.iOS.csproj
Owner

tomspilman commented Mar 12, 2014

@mgbot test

Member

mgbot commented Mar 12, 2014

Test FAILed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/635/

Owner

tomspilman commented Mar 12, 2014

@mgbot test

Owner

tomspilman commented Mar 12, 2014

Looks like this is going to succeed.

@KonajuGames - This is ready to merge when you are.

Member

mgbot commented Mar 12, 2014

Test PASSed.
Refer to this link for build results: http://build.monogame.net/job/PullRequestTester/636/

KonajuGames added a commit that referenced this pull request Mar 12, 2014

@KonajuGames KonajuGames merged commit f996653 into MonoGame:develop Mar 12, 2014

1 check passed

default Merged build finished.
Details
Contributor

KonajuGames commented Mar 12, 2014

Merged.

Owner

tomspilman commented Mar 12, 2014

Woot. Thanks to @hach-que for the help getting this done!

@tomspilman tomspilman deleted the SickheadGames:protobuild branch May 17, 2014

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