Skip to content
This repository has been archived by the owner on Dec 18, 2022. It is now read-only.

[Testing] Attempt to speedup flatpak builds #609

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

emabrey
Copy link
Member

@emabrey emabrey commented Sep 12, 2021

Enable more modules to use CMake+ninja instead of make

Signed-off-by: Emily Mabrey [email protected]

Checklist
  • I have signed off my commits using -s or Signed-off-by* (See: Contributing § DCO)
  • I made sure the code compiles on my machine
  • I made sure there are no unnecessary changes in the code*
  • I made sure the title of the PR reflects the core meaning of the issue you are solving*
  • I made sure the commit message(s) contain a description and answer the question "Why do those changes fix that particular issue?" or "Why are those changes really necessary as improvements?"*

* indicates required

@@ -161,6 +162,7 @@
},
{
"name": "soundtouch",
"buildsystem": "cmake-ninja",
"sources": [
{
"type": "git",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While you're at it, can you update soundtouch to 2.3.1? It has some fixes for CMake. I'm not sure any of those are required for Tenacity, but still good to be on the latest version.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I had already noticed that version difference and was going to look into seeing if there were any breaking changes before doing exactly that

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SoundTouch 2.3.1 has some build fixes for Mixxx. No changes should be required for Tenacity.

emabrey and others added 4 commits September 12, 2021 20:44
Skip duplicate CI runs with the same content
Skip concurrent CI runs of the same content
Cancel old CI runs when a newer commit is pushed on top of a branch
Skip CI builds which change documentation and non-build related config files

Signed-off-by: Emily Mabrey <[email protected]>
Flatpak builds will only run on merge to master and when manually triggered

Signed-off-by: Emily Mabrey <[email protected]>
There were two problems:
1. The vamp-sdk vcpkg port added a `d` suffix for debug builds
that upstream did not.
2. The vamp-sdk vcpkg port used the same file name for libraries
on every OS but that is not what upstream does.

Signed-off-by: Be <[email protected]>
Modify wxwidgets module to use `cmake-ninja`

Signed-off-by: Emily Mabrey <[email protected]>
"-D wxUSE_RIBBON=OFF",
"-D wxUSE_PROPGRID=OFF",
"-D wxUSE_RICHTEXT=OFF",
"-D wxUSE_EXPAT=builtin"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect expat is available in some flatpak SDK we depend on anyways, so system version could probably be used as well.

Comment on lines +50 to +51
"-D wxUSE_WEBVIEW=OFF",
"-D wxUSE_WEBVIEW_WEBKIT=OFF",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There might be other things we can probably disable that we don't use, out of wx components. I can have a look later.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think all these can be disabled:

wxUSE_LIBGNOMEVFS (probably gets disabled automatically due to no legacy gnome-vfs in flatpak SDK, might be good to be explicit)
wxUSE_WEBVIEW
wxUSE_WEBVIEW_WEBKIT
wxUSE_RIBBON
wxUSE_PROPGRID
wxUSE_AUI
wxUSE_STC
wxUSE_MDI
wxUSE_MEDIACTRL
wxUSE_RICHTEXT

For some reason we seem to do something about wxXML and XRC in toplevel cmake file, but I can't spot any actual usage of what would need wxUSE_XML and/or wxUSE_XRC.
We could probably disable some image formats too, like TIFF overall, but we can fine-tune later, it doesn't save much if using system library from SDK. The above are the "big ticket" items.

Copy link
Member

@leio leio Sep 13, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of these might be useful for non-flatpak CI builds too, where we build wx ourselves too (Ubuntu). For example disabling wxUSE_MEDIACTRL gets rid of the need for gstreamer completely.

Comment on lines +46 to +47
"-D wxUSE_LIBPNG=builtin",
"-D wxUSE_ZLIB=builtin",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here about builtin vs sys

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From some older aarch64 flatpak CI build log I see this:

   Which libraries should wxWidgets use?
                                       STL                no
                                       jpeg               sys
                                       png                sys
                                       regex              builtin
                                       tiff               sys
                                       lzma               yes
                                       zlib               sys
                                       expat              builtin
                                       libmspack          no
                                       sdl                no

You are changing it from using system libpng and zlib, which are already built and available from the SDK, to bundled copies, increasing build time from sub-configuring and compiling those.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants