export platform
Description
For support compile msquic with external msh3 version 0.7.0. It require symbol that found on platform target. I export these symbols
I rename the target platform to msquic_platform, because when platform is exported it create a lib file. Create a lib file with generic name will interfere with other libraries when install together. When the name is renamed to specific name it will allow to integrate more easy on libraries managers such as vcpkg.
Other info
fix https://github.com/microsoft/msquic/issues/4569
This is a draft PR and need more work done for it. Issue in this PR (maybe more)
- It create platform.lib. this is a generic name that can collide with other libs. I propose to change target platform to msquic_platform
- I export openssl targets, but there other option that it use schannel, or osx ssl lib. need to do it more generic
@nibanks can you help me to solve these issue in this PR?
@nibanks I can work on the second issue with working ci. If you approve my other PR: https://github.com/microsoft/msquic/pull/4575 then the ci will work automatic for me.
Let me know what do you think about first issue. Is it acceptable from you to change the target name platform to msquic_platform ?
Is there any new progress?
Is there any new progress?
On my side I need active ci. Because I never contribute to this repo, each change I made, @nibanks need to approve the ci. I created more simple PR that also needed for msquic. When the other PR will be merge, I will get my active ci here and I can develop.
In conclusion I am waiting for my other PR will be review and merge to continue this PR. https://github.com/microsoft/msquic/pull/4575
Is there any new progress?
On my side I need active ci. Because I never contribute to this repo, each change I made, @nibanks need to approve the ci. I created more simple PR that also needed for msquic. When the other PR will be merge, I will get my active ci here and I can develop.
In conclusion I am waiting for my other PR will be review and merge to continue this PR. #4575
@BillyONeal can you help to promote this PR? It needed to update msh3 v0.7 in vcpkg. Then it can promote to make msh3 and msquic non experimental in curl: https://github.com/curl/curl/discussions/15048
@talregev there are many failures in the CI. Please have a look.
@talregev there are many failures in the CI. Please have a look.
Thank you! I will take a look, and I start develop. Now I have active ci.
@nibanks Not sure why I don't have active ci. How I can get one? Can you approve the ci again? There will be still errors. I didn't fix them, only fix the conflict.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 86.84%. Comparing base (
9587f74) to head (24ac41f). Report is 1 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #4574 +/- ##
==========================================
- Coverage 87.22% 86.84% -0.39%
==========================================
Files 56 56
Lines 17357 17357
==========================================
- Hits 15140 15073 -67
- Misses 2217 2284 +67
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
@nibanks Ready for review. Thank you for your help with the ci! 🙏🏻
@BillyONeal can you help to promote this PR?
I'm not involved in msquic sadly. I have my own PRs here :)
@talregev how did you validate this? Is there any way to add some kind of validation here in this PR?
@talregev how did you validate this? Is there any way to add some kind of validation here in this PR?
I create this PR to compile msh3 that msquic is external lib. msh3 v0.7.0 is needed this symbols: CxPlatGetSelfSignedCert CxPlatFreeSelfSignedCert
I validate this by modify locally vcpkg msquic port that will take this changes, and modify msh3 port by update it to v0.7.0 and that it will take ls-qpack and msquic as external libs. I install it, and i see it compile and not complain the above symbols.
My suggestion to validate in this PR is to create a simple test that use the above symbols. (I am not sure the params that needed for these functions).
Can you help me to create such a simple test that just compile with the above symbols?
I notice that there is unittest for platform. My suggestion is to try to compile it as external cmake. this will validate this PR. external cmake mean cmake that is not connected to msquic project. I create locally such a cmake, and I find hard to put it in the ci. Any suggestion how to do it?
@nibanks I manage to create an external cmake and connected it to windows ci. It still not compile and I feel I very close. Can you take a look?
@nibanks I finished the PR. I also created external cmake that validate the change I did. It compile on windows. I didn't manage to compile it on Sanitize cases, so I skip those.
Can you review my PR? Thank you.
@nibanks Anything I can do for move forward this PR? Thank you for your time and effort!
More reference: https://cmake.org/cmake/help/latest/guide/using-dependencies/index.html#guide:Using%20Dependencies%20Guide
Can you please merge main once more?
Can you please merge
mainonce more?
I will try to merge it today.
@nibanks I rebase to main. Please review again. Thank you!
@nibanks Thank you for the merge! Is it possible to release msquic version with this change? Then I can update it on vcpkg including update msh3 0.7 and then continue the work on curl for better http3 support.
We've got a few other things in the pipeline, so we're not going to release a new release for another couple months probably. We might be able to backport changes you need to 2.4 though...
We've got a few other things in the pipeline, so we're not going to release a new release for another couple months probably. We might be able to backport changes you need to 2.4 though...
Backport the changes to 2.4 it will be great! 🙏🏻