Adding WindowsML CMake samples - #519
Conversation
| @@ -0,0 +1 @@ | |||
| __* No newline at end of file | |||
There was a problem hiding this comment.
I'm doing something wrong because this has no effect on a local clone & build. I'm seeing all the build/* content as well as the __* dirs still listed.
There was a problem hiding this comment.
Sorry, I'm not sure what could be going on... it's all good on my end. The file was missing it's final new-line... Perhaps that was it? Added it just in case.
a6d064e to
52ce69a
Compare
45f0b58 to
1323083
Compare
1323083 to
6dd413a
Compare
The base branch was changed.
6dd413a to
e752323
Compare
|
I've completed the PR in https://github.com/mschofie/NuGetCMakePackage, and updated this PR with the commit hash from that repo's main. |
Jon Wiswall (jonwis)
left a comment
There was a problem hiding this comment.
Thanks Mark Schofield (@mschofie) ! This is great!
|
Sorry for the belated feedback - my only concern is with the hardcoded activatableClass manifests in the NuGetCMakePackage project. I left a comment there suggesting build logic (e.g., an xslt) to transform each WinAppSDK nuget package's runtimes-framework\package.appxfragment into fusion schema, and then mt.exe merge up for the referencing app. |
Thanks! Yes, I 100% agree, the hardcoded 'activatableClass' entries are definitely a problem. I've been tracking Issues over in this repo, but don't have anything tracking that. Oh, hey! You filed an issue - thanks! I'll go and comment there. TBH, though, the main 'next step' is in this discussion, where I think there's an opportunity to move responsibilities around a little, and win32-manifest generation is definitely something I've been thinking about. As I mention there, having all the pieces "written down" is - I think - a useful milestone, but getting responsibilities in the right place with the right tooling, is going to take a little work. |
Description
This PR adds some CMake samples for WindowsML. There's a few moving parts, so there's things to be discussed. Having a PR for folks to try out and get a "stake in the ground" should make things easier.
The samples need to add NuGet support to CMake, so I'm proposing that infrastructure, too. At the minute, that content is hosted in a personal repo - https://github.com/mschofie/NuGetCMakePackage - that would need to be moved somewhere more appropriate before this PR could be completed. That repo teaches CMake how to restore NuGet packages, and look for CMake scripts within those packages, allowing a NuGet package to have functional parity with MSBuild builds. Since the NuGet packages that I need to consume don't have CMake scripts within, the 'NuGetCMakePackage' infrastructure allows for 'overlay' files that are present as a stop-gap until I can migrate the content appropriately. I've created a PR for the NuGet infrastructure here if folks want to ask questions, or comment on the implementation.
Beyond the NuGet changes, the samples build two C++ console applications with CMake, using 'Visual Studio 17 2022' and 'Ninja Multi-Config' generators. The NuGet support is added through:
Then NuGet dependencies are created with - for example:
Having called
add_nuget_packages, the NuGet packages are findable throughfind_package:After which a CMake target is introduced with the same name that can be consumed by the CMake build, for example:
Feedback on any aspect - sample, naming conventions, approach, etc.. - is really appreciated.
Checklist
Note that /azp run currently isn't working for this repo.