-
Notifications
You must be signed in to change notification settings - Fork 6.6k
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
[vtk] Reduce dependencies by adding new features #39511
Conversation
f5706a6
to
f3d3d8a
Compare
Maybe I was a bit optimist but I think I will be able to remove some dependencies that have a very long compilation time. |
7603805
to
431722f
Compare
itk doesn't build. Update to itk 5.4.0 because build failure is fixed on newer version (InsightSoftwareConsortium/ITK@9a719a0) Fix #34663 |
Can't test on x64-linux-dynamic, minc doesn't build. |
ports/itk/vcpkg.json
Outdated
{ | ||
"name": "itk", | ||
"version-string": "5.3rc02", | ||
"port-version": 1, | ||
"version": "5.4.0", | ||
"description": "Insight Segmentation and Registration Toolkit (ITK) is used for image processing and analysis.", | ||
"homepage": "https://github.com/InsightSoftwareConsortium/ITK", | ||
"license": "Apache-2.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be a different PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I moved it to #39757
It takes really long time to build for x64-linux. It "should" be fine for Windows. This PR tries to reduce some dependencies. The biggest problem is that "default-features" is not transitive. So I needed to add the root vcpkg.json:
|
be5cb41
to
35e2119
Compare
This PR is ready to merge. I don't see how I can lighten it port. |
@bansan85, I need a bit more context on what the issue is exactly. Your title claims to be reducing dependencies to improve the build time, but I don't look like the changes reduce the number of dependencies. Can you give a little more context on what you are intending to do? Or perhaps, I am overlooking something? |
IIUC it enables a better effect of top-level |
At first, I wanted to be able to make (almost) all dependencies optional. Unfortunately, it looks that it's not that easy and I don't master the compile build system of VTK. At the end, I was able to remove only a few package. If I install If I install dependencies in vcpkg.json
it doesn't require anymore Note : if I remove harfbuzz in qtbase, widgets are broken (i.e. missing arrows symbol in QSpinBox). It's not as much as expected but it's a little better. @dg0yt Yes. I also encounter the same problem when I force the version of package with |
ports/seacas/vcpkg.json
Outdated
"default-features": [ | ||
"matio" | ||
], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this should be a default feature. The point of default features is that a user who is transitively using this dependency would consider it "broken" if it did not have this behavior enabled. e.g. a generic file compression library not supporting .zip files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Additionally, vcpkg install vtk[all]
should still work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Additionally, vcpkg install vtk[all] should still work.
is broken since forever due to missing dependencies (#29260). Mainly needs a decision on tool ports.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JavierMatosD I disabled Matio
At first, I enabled it by default to keep compatibility. But I don't think this feature is used by lots of people.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is broken since forever due to missing dependencies (#29260). Mainly needs a decision on tool ports.
@Neumann-A, thanks for the context!
@bansan85, that sounds reasonable to me. Please mark "ready for review" when you are ready for me to take a look at this again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JavierMatosD I was waiting that CI finished. I can't read log in progress and I forgot that x64_osx sometimes hangs.
But need qtbase[sql-sqlite]
See ThirdParty\freetype\vtkfreetype\include\freetype\config\ftoption.h
See ThirdParty\libxml2\vtk.module
See .gitlab\ci\download_qt.cmake and .gitlab\ci\download_qt_hashes.cmake
The `VTK_USE_FILE` is no longer used starting with 8.90.
35e2119
to
4ef90d3
Compare
Fixes #39491.
./vcpkg x-add-version --all
and committing the result.The CI check all dependencies at once. I want to reduce dependencies of vtk. I will check that the following package can be installed one by one on my computer for triplet x64-windows, x64-windows-static-md, x64-linux, x64-linux-dynamic:
x64-linux-dynamicThe previous tick must be checked before leaving Draft.