Skip to content
This repository has been archived by the owner on Nov 1, 2020. It is now read-only.

Generate Nuget Packages for ILToNative #104

Merged
merged 1 commit into from
Oct 23, 2015
Merged

Generate Nuget Packages for ILToNative #104

merged 1 commit into from
Oct 23, 2015

Conversation

gkhanna79
Copy link
Member

This change does the following only for Windows:

  1. Generate Microsoft.Dotnet.ILToNative and Microsoft.Dotnet.ILToNative.Development nuget packages. The latter contains PDBs.

  2. Get ILToNative.exe to be dropped to the bin folder. Also added a task to create ILToNative.dll from ILToNative.exe so that CoreConsole can launch the driver.

  3. Unify all product drops to be dropped under bin\product\ - currently they were getting dropped to random locations (native components would go in the intended location but managed would not).

  4. Package Runtime.lib and System.Private.CoreLib.dll within the Nuget packages.

@jkotas @schellap Can you please take a look?

<ProductPackageDir Condition="'$(ProductPackageDir)'==''">$(OutputPath).nuget/</ProductPackageDir>

<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'==''">$(ObjDir)</BaseIntermediateOutputPath>
<IntermediateOutputRootPath Condition="'$(IntermediateOutputRootPath)' == ''">$(BaseIntermediateOutputPath)$(OSPlatformConfig)\</IntermediateOutputRootPath>

Choose a reason for hiding this comment

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

LGTM

@MichalStrehovsky
Copy link
Member

I'm a bit worried about the changes to dir/dirs. I've been trying to keep these files very close to how they look in the CoreFX repo. Is this how they do NuGet packages there?

@gkhanna79
Copy link
Member Author

The key change in dir.props is how the name of the subfolder, where binaries need to be binplaced, is computed. Today, native builds places things under bin/product/winnt_x64_debug, while managed build puts stuff under bin/wint_{amd64|AnyCPU}_Debug.

For a given build, it is more structured to have all product binaries in a single location independent of how they were built (e.g. Product is sibling of tests folder under bin that gets tests binplaced). This is similar to how the CoreCLR repo also has things setup. It also makes it easier for NuSpec to pickup the binaries in a consistent location for packaging.

@MichalStrehovsky
Copy link
Member

That makes sense, thanks!

In retrospect, my comment should have been "changes to src/dirs.proj".

Maybe instead of making a copy of ILToNative.exe to ILToNative.dll, we can just build it as a library? I'm not sure if we have any other use for the EXE right now (everyone developing on Windows is using the ILToNative.exe produced by the desktop project anyway and having just one EXE project would at least reduce confusion for new people).

@gkhanna79
Copy link
Member Author

I considered making the change to lib for ILToNative but for now, it is not imperative. I will assign an issue to myself to clean that up.

@jkotas
Copy link
Member

jkotas commented Oct 23, 2015

LGTM

jkotas added a commit that referenced this pull request Oct 23, 2015
Generate Nuget Packages for ILToNative
@jkotas jkotas merged commit 9b01515 into dotnet:master Oct 23, 2015
@gkhanna79 gkhanna79 deleted the PubILNative branch October 23, 2015 22:16
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants