<table><tr><td style="">lepagevalleeemmanuel added a subscriber: mart.<br />lepagevalleeemmanuel added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D13816">View Revision</a></tr></table><br /><div><div><p>Hello,</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>assuming we want static library support in other libraries/frameworks too,</p></blockquote>

<p>I can't talk for everybody, but I do want it. I actually maintain a huge patchset to fix static frameworks for ~30 of them. Getting it merged require face to face support with some people. Hopefully I can fix some of "all frameworks need this patch" cases at Akademy. I already merged the Kirigami patches and there is an "official" branch for qqc2-desktop-style too.</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>Or does anyone have an idea how to solve this more elegantly? :)</p></blockquote>

<p>Hi, we talked about this at Randa and QtWorldSummit last year. Sorry for stopping working on this after I made enough progress to make it work for me. I was assigned to work on other things. The clean way is using:</p>

<p>Q_IMPORT_PLUGIN(KirigamiPlugin)</p>

<p>Like other Qt static modules, This can be semi-automated using MOC magic and CMake-foo. All the magic is there <a href="https://github.com/ring-project/ring-kde-appimage-builder/tree/gentoo_base" class="remarkup-link" target="_blank" rel="noreferrer">https://github.com/ring-project/ring-kde-appimage-builder/tree/gentoo_base</a> . It's not very clean, but it works. I have to catch a plane later today, so I can't write a lengthy comment right now.</p>

<p>Just to say, fixing static frameworks and LTO bugs reduce the size of the KF5 based APK/AppImage by 86% and they load 6-8 time faster when PGO/FDO is enabled. Of course all of this is not "free". There is a non-trivial amount of work before <a href="https://phabricator.kde.org/p/apol/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@apol</a> SDK or mine can work with random KF5 apps. Things like <a href="https://bugs.kde.org/show_bug.cgi?id=387820" class="remarkup-link" target="_blank" rel="noreferrer">https://bugs.kde.org/show_bug.cgi?id=387820</a> become real crashers instead of unrefined behaviors. I brute force fixed all of them using horrible hacks to Ring-KDE could ship on Android/Plasma_Mobile/Appimage/macOS with a 13-18mb (with or without breeze icons) size instead of ~185-200mb (with or without breeze icons).</p>

<p>See how me and <a href="https://phabricator.kde.org/p/mart/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@mart</a> patched kirigami for queues how to do it "right". The definitions of "right" here is "exactly compatible with Qt static SDK module format". There is zero documentation on that topic. I reverse engineered it from the final Qt .a using <tt style="background: #ebebeb; font-size: 13px;">gcc-nm</tt> and reading the auto-generated code <tt style="background: #ebebeb; font-size: 13px;">qmake</tt> produces. I began to work on a blog post last year about that, but because I had to move on, it was never finished. It only document about 10%, read the code and patches for the other 90% <a href="https://gist.github.com/Elv13/a5805f2c979f3f86dfad0eb16d03c388" class="remarkup-link" target="_blank" rel="noreferrer">https://gist.github.com/Elv13/a5805f2c979f3f86dfad0eb16d03c388</a></p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R1003 KItinerary: Travel Reservation handling library</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D13816">https://phabricator.kde.org/D13816</a></div></div><br /><div><strong>To: </strong>vkrause, Frameworks<br /><strong>Cc: </strong>mart, lepagevalleeemmanuel, apol, kde-pim, dvasin, rodsevich, winterz, vkrause, mlaurent, knauss, dvratil<br /></div>