Enable GENAI with FetchContent or find_package() for client projects
#1858
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The PR changes the onnxruntime-genai CMake files so client projects can use it via FetchContent or find_package() CMake commands.
To accomplish that
project()needs version configured correctly and up to date,onnxruntime-genaitarget needs a properly configuredINTERFACEwhen installing and building,With those changes, it is enough to use
find_package()andtarget_link_libraries()commands in a client project to configure it with the onnxruntime-genai. Please take a look atexamples\c\CMakeLists.txtfor details, it has been updated accordingly.A few changes were required for
--buld_csharpto accommodate changes from this PR. In addition, the ability to build theReleaseNuGet package for C# has been added.A minor optimization for MultiConfig generators is that build.py generates a single build directory rather than one per build type.