Skip to content

Conversation

Ant1r
Copy link
Contributor

@Ant1r Ant1r commented Jul 13, 2025

This PR is the raw state of my work. Its history could be way cleaner, but I can only submit as is for now.
It includes:

  • many updates on the build system and afferent fixes
  • commits from my recent PRs, mainly the Midi updates and other fixes
  • the modernization of native code management

The latter allows to fix the CI build, as well as long standing issues about adding native code externals to Pd in Android apps.
Here is a quick description of the changes:

  • PdCore now exports "prefab" directory with headers and libs, so externals can compile and link to libpd.
  • apps that include externals (ScenePlayer and PdTest) are now built using the pd-core prefab.
  • for this to work, it has been necessary to split PdCore as a separate library, and to "includeBuild" it, making pd-for-android a so-called Composite project.
    This has the benefit that now, pd-core dependency is declared by the apps the same as if they were standalone; so they can safely be taken as examples.

Ant1r and others added 27 commits June 29, 2025 15:17
Reimplement Midi adapters using Android Midi API,
reusing Peter's (from/to)WireConverters coming from:
https://github.com/nettoyeurny/btmidi/blob/master/AndroidMidi/src/com/noisepages/nettoyeur/midi/
AGP 8.11.0
gradle 8.13
buildToolsVersion 35.0.0
ndk 27.2.12479018
this allows to make apps independent from PdCore sources, so they can declare pd-core dependency like a maven one.
@joebowbeer
Copy link
Contributor

joebowbeer commented Jul 13, 2025

Thanks for fixing the build!

Should the action runner be pinned to ubuntu-24.04 to match the selected ndkVersion?

Have compatibility requirements changed? If so, can you list the changes?

Any reductions in diffs (e.g. revert gratuitous changes) would be appreciated.

@Ant1r
Copy link
Contributor Author

Ant1r commented Jul 13, 2025

Have compatibility requirements changed? If so, can you list the changes?

mainly:
AGP 8.11.0
gradle 8.13
buildToolsVersion 35.0.0
ndk 27.2.12479018

Any reductions in diffs (e.g. revert gratuitous changes) would be appreciated

I'd love it!
But sorry, I can't do it now (until probably a few weeks).

@joebowbeer
Copy link
Contributor

Regarding compatibility, I am asking about which devices (android version?) this pd-for-android is compatible with. Are some previously supported devices no longer supported? In other words, has the minimum supported android version changed?

I commented on the buildToolsVersion, which is apparently no longer needed:

https://github.com/libpd/pd-for-android/pull/150/files#r2203627128

@Ant1r
Copy link
Contributor Author

Ant1r commented Jul 13, 2025

android version

@tkirshboim had to bump minimum version from 17 to 28 (which is a huge jump!) two years ago when updating libpd. I think this is because of the glob() function only there since sdk28!
No change since then.

@Ant1r
Copy link
Contributor Author

Ant1r commented Jul 14, 2025

reductions in diffs

finally I could find the time.
this PR is replaced by the shorter #152 .

@Ant1r Ant1r closed this Jul 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants