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

Msbuild builder #3598

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Msbuild builder #3598

wants to merge 1 commit into from

Conversation

pepone
Copy link
Member

@pepone pepone commented Feb 25, 2025

This PR moves zeroc.icebuilder.msbuild builder into tools/Ice.Slice.Tools package.

Updates the C# build to use tasks from tools/Ice.Slice.Tools and avoid the dependency on zeroc.icebuilder.msbuild package.

Upgrades zeroc.ice.net NuGet package to include the builder. Later we will upgrade the demos to not require a separate builder package and just use zeroc.ice.net.

Next I will update Windows C++. NuGet package to do the same.

Opening as a Draft to get some feedback about the layout and general approach for doing this.

@bernardnormier
Copy link
Member

What is the advantage of having a single tool that can handle both C++ (with slice2cpp) and C# (with slice2cs).

As I understand it, we'll ship this tool in the C++ NuGet and the C# NuGet - in the C++ NuGet together with slice2cpp (for multiple platforms) and in the C# NuGet together with slice2cs (for multiple platforms).

Is this because there is a lot of code in common? Because it's nicer to have a single tool (Ice.Slice.Tools), just like we have a single IceRpc.Slice.Tools?

@pepone
Copy link
Member Author

pepone commented Feb 25, 2025

What is the advantage of having a single tool that can handle both C++ (with slice2cpp) and C# (with slice2cs).

For the initial import, I’m keeping the zeroc.icebuilder.msbuild structure as is. I will improve this before making the PR ready for review/merge.

There’s no need to support both C++ and C# with the same tool—each package (zeroc.ice.net and zeroc.ice.v143) should include only what it needs.

For example, we could improve this by having:

  • Ice.Slice.Tools.CSharp: The C# builder, support files, and project files
  • Ice.Slice.Tools.Cpp: The C++ builder, support files, and project files
  • Ice.Slice.Tools: Shared classes that both projects can include

The only packages users would need are zeroc.ice.net and zeroc.ice.v143.

@pepone pepone marked this pull request as ready for review February 26, 2025 21:45
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.

3 participants