-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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
[dpdk] Fix build, dependencies, usage #26188
Conversation
I can test it sometime this weekend. |
Leaving this |
If the machine has system-installed dpdk, I can see the following error during cmake:
In this case, the system has the dpdk 20.11.5.2.2 installed. The reason is commented here: |
Additionally, do we want to leave this problem to users? |
There is neither a FindModule from CMake nor official CMake config from upstream. It is not vcpkg's responsibility to introduce and maintain either. That's why the initial post explicitly states:
You should use the now-documented direct use of |
I assume this problem doesn't exist with vcpkg. The post-processing of pkg-config files in CMake will merge (Note that the fake CMake config didn't resolve this problem either.) |
I think people would expect to find the correct, vcpkg installed package even if the system already has the package installed somewhere else, just like for packages with cmake config files. I don't understand why vcpkg is responsible for changing the
This problem is that the lower version of pkg-config provides the wrong sequence of flags with I just want to know, do you think those unofficial cmake config files currently in vcpkg are not following vcpkg's responsibility? |
Maybe different things are getting mixed up here.
The point is that if the package is installed somewhere else, it doesn't come with CMake config or find module support. If vcpkg adds that, it creates a lock-in effect which isn't desirable. There is room for convenience config, but it should be marked as unofficial. It is more like a last resort, in particular in absence of other mechanisms.
IIUC there is only one more thing required on the user side since CMake 3.1: Set
IIUC the CMake config doesn't solve this problem.
I am convinced that they are not in the correct unofficial namespace. |
I have no problems with this PR. For the pkg-config version problem, I can check it in my own problem. Thanks @dg0yt. |
When there are official bindings for CMake or pkgconfig, we do want to prefer whatever upstream does.
https://cmake.org/cmake/help/latest/module/FindPkgConfig.html
Quoth @ras0219-msft :
|
Hopeful I can see it gets merged soon. Thanks for the work. |
What are we waiting for with this? |
Thanks! |
Alternative to #25899. CC @ljishen for testing.
What does your PR fix?
Fixes building dpdk for x64-linux-dynamic. (To resolve various linking issues with minimal effort, the patch doesn't remove the static libs from the dynamic build, but just disables the installation. The build reuses the compiled objects. But the patch does remove the shared libs from the static build and fills the "shared" variables with the static libs instead.)
Fixes issues with dependencies by using the pkg-config files to create proper dependencies.
Drops the unoffical config for direct use of imported target from
pkg_check_modules
.Which triplets are supported/not supported? Have you updated the CI baseline?
unchanged, no
Does your PR follow the maintainer guide?
yes
If you have added/updated a port: Have you run
./vcpkg x-add-version --all
and committed the result?yes