-
-
Notifications
You must be signed in to change notification settings - Fork 29
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
DRAFT: Split shared/dynamic libraries from static/build artifacts #223
base: main
Are you sure you want to change the base?
Conversation
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipe:
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
There is some problem with rendering the recipe due to the
|
cdbf4ac
to
6ae2928
Compare
- xcrun | ||
|
||
# Only what's needed for run_exports downstream | ||
- name: libqt5 |
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 for the same reason why the main output is qt-main
instead of qt
- name: libqt5 | |
- name: libqt5-main |
Probably rerendering has broken the osx build because the vmImage has been updated. |
- {{ library }}bin/*.dll # [win] | ||
- {{ library }}lib/lib*.*.dylib # [osx] | ||
- {{ library }}lib/lib*.so.* # [linux] | ||
- "{{ library }}plugins/**/*" |
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.
@conda-forge/qt-main, before I move to the next step (trimming runtime dependencies). I need to know if this package split is correct. Are there also plugins or other binaries needed by end users at runtime located in $PREFIX/qml/**
? Maybe I should add something like:
- "{{ library }}plugins/**/*" | |
- "{{ library }}plugins/**/*" | |
- "{{ library }}**/*plugin.so" |
Checklist
0
(if the version changed)conda-smithy
(Use the phrase@conda-forge-admin, please rerender
in a comment in this PR for automated rerendering)Closes #42
This PR separates the shared and dynamically loaded libraries in /lib and /plugins into a separate output from qt-main; this new output is called libqt5.
The purpose of creating this new output is to reduce the size of run exports for downstream packages which link to qt.
The size of the new libqt5 package is 31MB/100MB (compressed/uncompressed) which is about half the size of the current qt-main package (61MB/254MB).
As you can see from the diff, the build script is unchanged.
There is one change to the top-level build/host requirements: The libclang version is now manually pinned to 15 via the conda_build_config.yaml. This is because using pin_compatible in the outputs section causes an error in conda-build as noted in #223 (comment).
A new output section which splits the artifacts and dependencies using glob expressions.
Runtime dependencies on libraries who now have run_exports upstream were removed.
For testing, I have compared the artifacts using git, to identify added/missing files.
https://doc.qt.io/qt-6/deployment-plugins.html