libpd / pd-for-android

Pure Data for Android
352 stars 91 forks source link

Make sure the .so files committed into the repository are up to date & built with the latest libpd #9

Closed chr15m closed 8 years ago

tkirshboim commented 9 years ago

Could you maybe have a look at this pull request: https://github.com/libpd/pd-for-android/pull/10 ? It takes care of this issue by compiling the .so files when building an .aar file for release.

joebowbeer commented 9 years ago

Meta discussion. How to handle these binaries going forward? I favor moving the build artifacts such as native libraries to an .aar that can be versioned and published to a maven repo. PdCore-x.y.z.aar and AndroidMidi-x.y.z.aar. Once this is done, the native lib binaries can be removed from the repo.

tkirshboim commented 9 years ago

@joebowbeer :+1: I agree with this suggestion. This would greatly simplify integrating libpd for Android developers.

chr15m commented 9 years ago

Hi! I must admit to being out of my depth here. Can you guys give me some step-by-step instructions on how to test #10 so that I can evaluate whether or not to merge? Failing that, maybe we should get somebody more competent on the Android side of things commit access to this repository. @danomatika @nettoyeurny

joebowbeer commented 9 years ago

I just cloned a fresh copy of the gradle_mods branch, initialized the submodules, rebuilt, and pushed the latest libpd.so artifacts.

You can verify that libpd.so contains the latest version string:

$ grep --text 'Pd-0.46.6' PdCore/libs/armeabi/libpd.so

I include the transcript below. You should note that the SHAs of the initialized submodules are identical to those of the latest commits on github.

Looking ahead, can we agree on .aar packaging for the Android binaries -- which would allow the binaries to be removed from the repo? If so, who will periodically publish the .aar to maven?

Transcript:

$ git clone https://github.com/joebowbeer/pd-for-android.git
Cloning into 'pd-for-android'...
remote: Counting objects: 8239, done.
remote: Total 8239 (delta 0), reused 0 (delta 0), pack-reused 8239
Receiving objects: 100% (8239/8239), 21.97 MiB | 7.51 MiB/s, done.
Resolving deltas: 100% (4091/4091), done.
Checking connectivity... done.

$ cd pd-for-android/
$ git checkout gradle_mods
Branch gradle_mods set up to track remote branch gradle_mods from origin.
Switched to a new branch 'gradle_mods'

$ git submodule update --init --recursive
Submodule 'PdCore/jni/libpd' (git://github.com/libpd/libpd.git) registered for path 'PdCore/jni/libpd'
Submodule 'midi' (git://github.com/nettoyeurny/btmidi.git) registered for path 'midi'
Cloning into 'PdCore/jni/libpd'...
remote: Counting objects: 4879, done.
remote: Total 4879 (delta 0), reused 0 (delta 0), pack-reused 4879
Receiving objects: 100% (4879/4879), 7.16 MiB | 4.75 MiB/s, done.
Resolving deltas: 100% (2309/2309), done.
Checking connectivity... done.
Submodule path 'PdCore/jni/libpd': checked out 'c55a675319e7fec3663a49b9ccbc1a77db1d4ee7'
Submodule 'jni/opensl_stream' (git://github.com/nettoyeurny/opensl_stream.git) registered for path 'jni/opensl_stream'
Submodule 'pure-data' (https://github.com/pure-data/pure-data.git) registered for path 'pure-data'
Cloning into 'jni/opensl_stream'...
remote: Counting objects: 51, done.
remote: Total 51 (delta 0), reused 0 (delta 0), pack-reused 51R
Receiving objects: 100% (51/51), 12.16 KiB | 0 bytes/s, done.
Resolving deltas: 100% (28/28), done.
Checking connectivity... done.
Submodule path 'PdCore/jni/libpd/jni/opensl_stream': checked out '5f3930698569754c519f5b3e4cc7691223bc99a8'
Cloning into 'pure-data'...
remote: Counting objects: 6936, done.
remote: Compressing objects: 100% (2012/2012), done.
remote: Total 6936 (delta 4873), reused 6933 (delta 4873), pack-reused 0
Receiving objects: 100% (6936/6936), 18.26 MiB | 6.83 MiB/s, done.
Resolving deltas: 100% (4873/4873), done.
Checking connectivity... done.
Submodule path 'PdCore/jni/libpd/pure-data': checked out '905695a350bf44d906fbb8cde905fa0b81d12b57'
Cloning into 'midi'...
remote: Counting objects: 2455, done.
remote: Total 2455 (delta 0), reused 0 (delta 0), pack-reused 2455
Receiving objects: 100% (2455/2455), 2.96 MiB | 2.54 MiB/s, done.
Resolving deltas: 100% (781/781), done.
Checking connectivity... done.
Submodule path 'midi': checked out '2db8007338726b70ec1df9d1cf1da3477273526b'

$ cd PdCore
$ gradle -v

Gradle 2.4
Groovy:       2.3.10
JVM:          1.8.0_25 (Oracle Corporation 25.25-b02)

$ echo $ANDROID_NDK_HOME
.../android-ndk-r10e

$ gradle clean assembleRelease
:PdCore:cleanNative
make.exe: Entering directory `.../pd-for-android/PdCore/jni'
[armeabi] Clean          : bonk_tilde [armeabi]
[armeabi] Clean          : choice [armeabi]
[armeabi] Clean          : expr [armeabi]
[armeabi] Clean          : fiddle_tilde [armeabi]
[armeabi] Clean          : loop_tilde [armeabi]
[armeabi] Clean          : lrshift_tilde [armeabi]
[armeabi] Clean          : pd [armeabi]
[armeabi] Clean          : pdnative [armeabi]
[armeabi] Clean          : pdnativeopensl [armeabi]
[armeabi] Clean          : pique [armeabi]
[armeabi] Clean          : sigmund_tilde [armeabi]
[armeabi] Clean          : stdc++ [armeabi]
[armeabi-v7a] Clean          : bonk_tilde [armeabi-v7a]
[armeabi-v7a] Clean          : choice [armeabi-v7a]
[armeabi-v7a] Clean          : expr [armeabi-v7a]
[armeabi-v7a] Clean          : fiddle_tilde [armeabi-v7a]
[armeabi-v7a] Clean          : loop_tilde [armeabi-v7a]
[armeabi-v7a] Clean          : lrshift_tilde [armeabi-v7a]
[armeabi-v7a] Clean          : pd [armeabi-v7a]
[armeabi-v7a] Clean          : pdnative [armeabi-v7a]
[armeabi-v7a] Clean          : pdnativeopensl [armeabi-v7a]
[armeabi-v7a] Clean          : pique [armeabi-v7a]
[armeabi-v7a] Clean          : sigmund_tilde [armeabi-v7a]
[armeabi-v7a] Clean          : stdc++ [armeabi-v7a]
[x86] Clean          : bonk_tilde [x86]
[x86] Clean          : choice [x86]
[x86] Clean          : expr [x86]
[x86] Clean          : fiddle_tilde [x86]
[x86] Clean          : loop_tilde [x86]
[x86] Clean          : lrshift_tilde [x86]
[x86] Clean          : pd [x86]
[x86] Clean          : pdnative [x86]
[x86] Clean          : pdnativeopensl [x86]
[x86] Clean          : pique [x86]
[x86] Clean          : sigmund_tilde [x86]
[x86] Clean          : stdc++ [x86]
make.exe: Leaving directory `.../pd-for-android/PdCore/jni'
:PdCore:clean UP-TO-DATE
:PdCore:compileLint
:PdCore:copyReleaseLint UP-TO-DATE
:PdCore:mergeReleaseProguardFiles
:PdCore:buildNative
make.exe: Entering directory `.../pd-for-android/PdCore/jni'
[armeabi] Gdbserver      : [arm-linux-androideabi-4.8] libs/armeabi/gdbserver
[armeabi] Gdbsetup       : libs/armeabi/gdb.setup
[armeabi-v7a] Gdbserver      : [arm-linux-androideabi-4.8] libs/armeabi-v7a/gdbserver
[armeabi-v7a] Gdbsetup       : libs/armeabi-v7a/gdb.setup
[x86] Gdbserver      : [x86-4.8] libs/x86/gdbserver
[x86] Gdbsetup       : libs/x86/gdb.setup
[armeabi] Compile thumb  : bonk_tilde <= bonk~.c
[armeabi] Compile thumb  : pd <= d_arithmetic.c
[armeabi] Compile thumb  : pd <= d_array.c
[armeabi] Compile thumb  : pd <= d_ctl.c
[armeabi] Compile thumb  : pd <= d_dac.c
[armeabi] Compile thumb  : pd <= d_delay.c
[armeabi] Compile thumb  : pd <= d_fft.c
[armeabi] Compile thumb  : pd <= d_fft_fftsg.c
[armeabi] Compile thumb  : pd <= d_filter.c
[armeabi] Compile thumb  : pd <= d_global.c
[armeabi] Compile thumb  : pd <= d_math.c
[armeabi] Compile thumb  : pd <= d_misc.c
[armeabi] Compile thumb  : pd <= d_osc.c
[armeabi] Compile thumb  : pd <= d_resample.c
[armeabi] Compile thumb  : pd <= d_soundfile.c
[armeabi] Compile thumb  : pd <= d_ugen.c
[armeabi] Compile thumb  : pd <= g_all_guis.c
[armeabi] Compile thumb  : pd <= g_array.c
[armeabi] Compile thumb  : pd <= g_bang.c
[armeabi] Compile thumb  : pd <= g_canvas.c
[armeabi] Compile thumb  : pd <= g_editor.c
[armeabi] Compile thumb  : pd <= g_graph.c
[armeabi] Compile thumb  : pd <= g_guiconnect.c
[armeabi] Compile thumb  : pd <= g_hdial.c
[armeabi] Compile thumb  : pd <= g_hslider.c
[armeabi] Compile thumb  : pd <= g_io.c
[armeabi] Compile thumb  : pd <= g_mycanvas.c
[armeabi] Compile thumb  : pd <= g_numbox.c
[armeabi] Compile thumb  : pd <= g_readwrite.c
[armeabi] Compile thumb  : pd <= g_rtext.c
[armeabi] Compile thumb  : pd <= g_scalar.c
[armeabi] Compile thumb  : pd <= g_template.c
[armeabi] Compile thumb  : pd <= g_text.c
[armeabi] Compile thumb  : pd <= g_toggle.c
[armeabi] Compile thumb  : pd <= g_traversal.c
[armeabi] Compile thumb  : pd <= g_vdial.c
[armeabi] Compile thumb  : pd <= g_vslider.c
[armeabi] Compile thumb  : pd <= g_vumeter.c
[armeabi] Compile thumb  : pd <= m_atom.c
[armeabi] Compile thumb  : pd <= m_binbuf.c
[armeabi] Compile thumb  : pd <= m_class.c
[armeabi] Compile thumb  : pd <= m_conf.c
[armeabi] Compile thumb  : pd <= m_glob.c
[armeabi] Compile thumb  : pd <= m_memory.c
[armeabi] Compile thumb  : pd <= m_obj.c
[armeabi] Compile thumb  : pd <= m_pd.c
[armeabi] Compile thumb  : pd <= m_sched.c
[armeabi] Compile thumb  : pd <= s_audio.c
[armeabi] Compile thumb  : pd <= s_audio_dummy.c
[armeabi] Compile thumb  : pd <= s_file.c
[armeabi] Compile thumb  : pd <= s_inter.c
[armeabi] Compile thumb  : pd <= s_loader.c
[armeabi] Compile thumb  : pd <= s_main.c
[armeabi] Compile thumb  : pd <= s_path.c
[armeabi] Compile thumb  : pd <= s_print.c
[armeabi] Compile thumb  : pd <= s_utf8.c
[armeabi] Compile thumb  : pd <= x_acoustics.c
[armeabi] Compile thumb  : pd <= x_arithmetic.c
[armeabi] Compile thumb  : pd <= x_connective.c
[armeabi] Compile thumb  : pd <= x_gui.c
[armeabi] Compile thumb  : pd <= x_list.c
[armeabi] Compile thumb  : pd <= x_midi.c
[armeabi] Compile thumb  : pd <= x_misc.c
[armeabi] Compile thumb  : pd <= x_net.c
[armeabi] Compile thumb  : pd <= x_array.c
[armeabi] Compile thumb  : pd <= x_time.c
[armeabi] Compile thumb  : pd <= x_interface.c
[armeabi] Compile thumb  : pd <= x_scalar.c
[armeabi] Compile thumb  : pd <= x_text.c
[armeabi] Compile thumb  : pd <= s_libpdmidi.c
[armeabi] Compile thumb  : pd <= x_libpdreceive.c
[armeabi] Compile thumb  : pd <= z_libpd.c
[armeabi] Compile thumb  : pd <= ringbuffer.c
[armeabi] Compile thumb  : pd <= z_queued.c
[armeabi] Compile thumb  : pd <= z_hooks.c
[armeabi] Compile thumb  : choice <= choice.c
[armeabi] Compile thumb  : expr <= vexp.c
[armeabi] Compile thumb  : expr <= vexp_fun.c
.../pd-for-android/PdCore/jni/libpd/pure-data/extra/expr~/vexp.c: In function 'ex_eval':
.../pd-for-android/PdCore/jni/libpd/pure-data/extra/expr~/vexp.c:1114:25: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long int' [-Wformat=]
                         "expr: ex_eval: unexpected type %d\n", eptr->ex_type);
                         ^
.../pd-for-android/PdCore/jni/libpd/pure-data/extra/expr~/vexp.c:1196:17: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long int' [-Wformat=]
                 post_error((fts_object_t *) expr, "expr: ex_print: bad op 0x%x\n", eptr->ex_op);
                 ^
[armeabi] Compile thumb  : expr <= vexp_if.c
[armeabi] Compile thumb  : fiddle_tilde <= fiddle~.c
[armeabi] Compile thumb  : loop_tilde <= loop~.c
[armeabi] Compile thumb  : lrshift_tilde <= lrshift~.c
[armeabi] Compile thumb  : pdnative <= z_jni_plain.c
[armeabi] Compile thumb  : pdnativeopensl <= opensl_stream.c
[armeabi] Compile thumb  : pdnativeopensl <= z_jni_opensl.c
[armeabi] Compile thumb  : pique <= pique.c
[armeabi] Compile thumb  : sigmund_tilde <= sigmund~.c
[armeabi-v7a] Compile thumb  : bonk_tilde <= bonk~.c
[armeabi-v7a] Compile thumb  : pd <= d_arithmetic.c
[armeabi-v7a] Compile thumb  : pd <= d_array.c
[armeabi-v7a] Compile thumb  : pd <= d_ctl.c
[armeabi-v7a] Compile thumb  : pd <= d_dac.c
[armeabi-v7a] Compile thumb  : pd <= d_delay.c
[armeabi-v7a] Compile thumb  : pd <= d_fft.c
[armeabi-v7a] Compile thumb  : pd <= d_fft_fftsg.c
[armeabi-v7a] Compile thumb  : pd <= d_filter.c
[armeabi-v7a] Compile thumb  : pd <= d_global.c
[armeabi-v7a] Compile thumb  : pd <= d_math.c
[armeabi-v7a] Compile thumb  : pd <= d_misc.c
[armeabi-v7a] Compile thumb  : pd <= d_osc.c
[armeabi-v7a] Compile thumb  : pd <= d_resample.c
[armeabi-v7a] Compile thumb  : pd <= d_soundfile.c
[armeabi-v7a] Compile thumb  : pd <= d_ugen.c
[armeabi-v7a] Compile thumb  : pd <= g_all_guis.c
[armeabi-v7a] Compile thumb  : pd <= g_array.c
[armeabi-v7a] Compile thumb  : pd <= g_bang.c
[armeabi-v7a] Compile thumb  : pd <= g_canvas.c
[armeabi-v7a] Compile thumb  : pd <= g_editor.c
[armeabi-v7a] Compile thumb  : pd <= g_graph.c
[armeabi-v7a] Compile thumb  : pd <= g_guiconnect.c
[armeabi-v7a] Compile thumb  : pd <= g_hdial.c
[armeabi-v7a] Compile thumb  : pd <= g_hslider.c
[armeabi-v7a] Compile thumb  : pd <= g_io.c
[armeabi-v7a] Compile thumb  : pd <= g_mycanvas.c
[armeabi-v7a] Compile thumb  : pd <= g_numbox.c
[armeabi-v7a] Compile thumb  : pd <= g_readwrite.c
[armeabi-v7a] Compile thumb  : pd <= g_rtext.c
[armeabi-v7a] Compile thumb  : pd <= g_scalar.c
[armeabi-v7a] Compile thumb  : pd <= g_template.c
[armeabi-v7a] Compile thumb  : pd <= g_text.c
[armeabi-v7a] Compile thumb  : pd <= g_toggle.c
[armeabi-v7a] Compile thumb  : pd <= g_traversal.c
[armeabi-v7a] Compile thumb  : pd <= g_vdial.c
[armeabi-v7a] Compile thumb  : pd <= g_vslider.c
[armeabi-v7a] Compile thumb  : pd <= g_vumeter.c
[armeabi-v7a] Compile thumb  : pd <= m_atom.c
[armeabi-v7a] Compile thumb  : pd <= m_binbuf.c
[armeabi-v7a] Compile thumb  : pd <= m_class.c
[armeabi-v7a] Compile thumb  : pd <= m_conf.c
[armeabi-v7a] Compile thumb  : pd <= m_glob.c
[armeabi-v7a] Compile thumb  : pd <= m_memory.c
[armeabi-v7a] Compile thumb  : pd <= m_obj.c
[armeabi-v7a] Compile thumb  : pd <= m_pd.c
[armeabi-v7a] Compile thumb  : pd <= m_sched.c
[armeabi-v7a] Compile thumb  : pd <= s_audio.c
[armeabi-v7a] Compile thumb  : pd <= s_audio_dummy.c
[armeabi-v7a] Compile thumb  : pd <= s_file.c
[armeabi-v7a] Compile thumb  : pd <= s_inter.c
[armeabi-v7a] Compile thumb  : pd <= s_loader.c
[armeabi-v7a] Compile thumb  : pd <= s_main.c
[armeabi-v7a] Compile thumb  : pd <= s_path.c
[armeabi-v7a] Compile thumb  : pd <= s_print.c
[armeabi-v7a] Compile thumb  : pd <= s_utf8.c
[armeabi-v7a] Compile thumb  : pd <= x_acoustics.c
[armeabi-v7a] Compile thumb  : pd <= x_arithmetic.c
[armeabi-v7a] Compile thumb  : pd <= x_connective.c
[armeabi-v7a] Compile thumb  : pd <= x_gui.c
[armeabi-v7a] Compile thumb  : pd <= x_list.c
[armeabi-v7a] Compile thumb  : pd <= x_midi.c
[armeabi-v7a] Compile thumb  : pd <= x_misc.c
[armeabi-v7a] Compile thumb  : pd <= x_net.c
[armeabi-v7a] Compile thumb  : pd <= x_array.c
[armeabi-v7a] Compile thumb  : pd <= x_time.c
[armeabi-v7a] Compile thumb  : pd <= x_interface.c
[armeabi-v7a] Compile thumb  : pd <= x_scalar.c
[armeabi-v7a] Compile thumb  : pd <= x_text.c
[armeabi-v7a] Compile thumb  : pd <= s_libpdmidi.c
[armeabi-v7a] Compile thumb  : pd <= x_libpdreceive.c
[armeabi-v7a] Compile thumb  : pd <= z_libpd.c
[armeabi-v7a] Compile thumb  : pd <= ringbuffer.c
[armeabi-v7a] Compile thumb  : pd <= z_queued.c
[armeabi-v7a] Compile thumb  : pd <= z_hooks.c
[armeabi-v7a] Compile thumb  : choice <= choice.c
[armeabi-v7a] Compile thumb  : expr <= vexp.c
[armeabi-v7a] Compile thumb  : expr <= vexp_fun.c
.../pd-for-android/PdCore/jni/libpd/pure-data/extra/expr~/vexp.c: In function 'ex_eval':
.../pd-for-android/PdCore/jni/libpd/pure-data/extra/expr~/vexp.c:1114:25: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long int' [-Wformat=]
                         "expr: ex_eval: unexpected type %d\n", eptr->ex_type);
                         ^
.../pd-for-android/PdCore/jni/libpd/pure-data/extra/expr~/vexp.c:1196:17: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long int' [-Wformat=]
                 post_error((fts_object_t *) expr, "expr: ex_print: bad op 0x%x\n", eptr->ex_op);
                 ^
[armeabi-v7a] Compile thumb  : expr <= vexp_if.c
[armeabi-v7a] Compile thumb  : fiddle_tilde <= fiddle~.c
[armeabi-v7a] Compile thumb  : loop_tilde <= loop~.c
[armeabi-v7a] Compile thumb  : lrshift_tilde <= lrshift~.c
[armeabi-v7a] Compile thumb  : pdnative <= z_jni_plain.c
[armeabi-v7a] Compile thumb  : pdnativeopensl <= opensl_stream.c
[armeabi-v7a] Compile thumb  : pdnativeopensl <= z_jni_opensl.c
[armeabi-v7a] Compile thumb  : pique <= pique.c
[armeabi-v7a] Compile thumb  : sigmund_tilde <= sigmund~.c
[x86] Compile        : bonk_tilde <= bonk~.c
[x86] Compile        : pd <= d_arithmetic.c
[x86] Compile        : pd <= d_array.c
[x86] Compile        : pd <= d_ctl.c
[x86] Compile        : pd <= d_dac.c
[x86] Compile        : pd <= d_delay.c
[x86] Compile        : pd <= d_fft.c
[x86] Compile        : pd <= d_fft_fftsg.c
[x86] Compile        : pd <= d_filter.c
[x86] Compile        : pd <= d_global.c
[x86] Compile        : pd <= d_math.c
[x86] Compile        : pd <= d_misc.c
[x86] Compile        : pd <= d_osc.c
[x86] Compile        : pd <= d_resample.c
[x86] Compile        : pd <= d_soundfile.c
[x86] Compile        : pd <= d_ugen.c
[x86] Compile        : pd <= g_all_guis.c
[x86] Compile        : pd <= g_array.c
[x86] Compile        : pd <= g_bang.c
[x86] Compile        : pd <= g_canvas.c
[x86] Compile        : pd <= g_editor.c
[x86] Compile        : pd <= g_graph.c
[x86] Compile        : pd <= g_guiconnect.c
[x86] Compile        : pd <= g_hdial.c
[x86] Compile        : pd <= g_hslider.c
[x86] Compile        : pd <= g_io.c
[x86] Compile        : pd <= g_mycanvas.c
[x86] Compile        : pd <= g_numbox.c
[x86] Compile        : pd <= g_readwrite.c
[x86] Compile        : pd <= g_rtext.c
[x86] Compile        : pd <= g_scalar.c
[x86] Compile        : pd <= g_template.c
[x86] Compile        : pd <= g_text.c
[x86] Compile        : pd <= g_toggle.c
[x86] Compile        : pd <= g_traversal.c
[x86] Compile        : pd <= g_vdial.c
[x86] Compile        : pd <= g_vslider.c
[x86] Compile        : pd <= g_vumeter.c
[x86] Compile        : pd <= m_atom.c
[x86] Compile        : pd <= m_binbuf.c
[x86] Compile        : pd <= m_class.c
[x86] Compile        : pd <= m_conf.c
[x86] Compile        : pd <= m_glob.c
[x86] Compile        : pd <= m_memory.c
[x86] Compile        : pd <= m_obj.c
[x86] Compile        : pd <= m_pd.c
[x86] Compile        : pd <= m_sched.c
[x86] Compile        : pd <= s_audio.c
[x86] Compile        : pd <= s_audio_dummy.c
[x86] Compile        : pd <= s_file.c
[x86] Compile        : pd <= s_inter.c
[x86] Compile        : pd <= s_loader.c
[x86] Compile        : pd <= s_main.c
[x86] Compile        : pd <= s_path.c
[x86] Compile        : pd <= s_print.c
[x86] Compile        : pd <= s_utf8.c
[x86] Compile        : pd <= x_acoustics.c
[x86] Compile        : pd <= x_arithmetic.c
[x86] Compile        : pd <= x_connective.c
[x86] Compile        : pd <= x_gui.c
[x86] Compile        : pd <= x_list.c
[x86] Compile        : pd <= x_midi.c
[x86] Compile        : pd <= x_misc.c
[x86] Compile        : pd <= x_net.c
[x86] Compile        : pd <= x_array.c
[x86] Compile        : pd <= x_time.c
[x86] Compile        : pd <= x_interface.c
[x86] Compile        : pd <= x_scalar.c
[x86] Compile        : pd <= x_text.c
[x86] Compile        : pd <= s_libpdmidi.c
[x86] Compile        : pd <= x_libpdreceive.c
[x86] Compile        : pd <= z_libpd.c
[x86] Compile        : pd <= ringbuffer.c
[x86] Compile        : pd <= z_queued.c
[x86] Compile        : pd <= z_hooks.c
[x86] Compile        : choice <= choice.c
[x86] Compile        : expr <= vexp.c
[x86] Compile        : expr <= vexp_fun.c
.../pd-for-android/PdCore/jni/libpd/pure-data/extra/expr~/vexp.c: In function 'ex_eval':
.../pd-for-android/PdCore/jni/libpd/pure-data/extra/expr~/vexp.c:1114:25: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long int' [-Wformat=]
                         "expr: ex_eval: unexpected type %d\n", eptr->ex_type);
                         ^
.../pd-for-android/PdCore/jni/libpd/pure-data/extra/expr~/vexp.c:1196:17: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long int' [-Wformat=]
                 post_error((fts_object_t *) expr, "expr: ex_print: bad op 0x%x\n", eptr->ex_op);
                 ^
[x86] Compile        : expr <= vexp_if.c
[x86] Compile        : fiddle_tilde <= fiddle~.c
[x86] Compile        : loop_tilde <= loop~.c
[x86] Compile        : lrshift_tilde <= lrshift~.c
[x86] Compile        : pdnative <= z_jni_plain.c
[x86] Compile        : pdnativeopensl <= opensl_stream.c
[x86] Compile        : pdnativeopensl <= z_jni_opensl.c
[x86] Compile        : pique <= pique.c
[x86] Compile        : sigmund_tilde <= sigmund~.c
[armeabi] SharedLibrary  : libpd.so
[armeabi-v7a] SharedLibrary  : libpd.so
[x86] SharedLibrary  : libpd.so
[armeabi] SharedLibrary  : libbonk_tilde.so
[armeabi] SharedLibrary  : libchoice.so
[armeabi] SharedLibrary  : libexpr.so
[armeabi] SharedLibrary  : libloop_tilde.so
[armeabi] SharedLibrary  : libfiddle_tilde.so
[armeabi] SharedLibrary  : liblrshift_tilde.so
[armeabi] Install        : libpd.so => libs/armeabi/libpd.so
[armeabi] SharedLibrary  : libpdnative.so
[armeabi] SharedLibrary  : libpdnativeopensl.so
[armeabi] SharedLibrary  : libpique.so
[armeabi] SharedLibrary  : libsigmund_tilde.so
[armeabi-v7a] SharedLibrary  : libchoice.so
[armeabi-v7a] SharedLibrary  : libbonk_tilde.so
[armeabi-v7a] SharedLibrary  : libexpr.so
[armeabi-v7a] SharedLibrary  : libfiddle_tilde.so
[armeabi-v7a] SharedLibrary  : libloop_tilde.so
[armeabi-v7a] SharedLibrary  : liblrshift_tilde.so
[armeabi-v7a] Install        : libpd.so => libs/armeabi-v7a/libpd.so
[armeabi-v7a] SharedLibrary  : libpdnative.so
[armeabi-v7a] SharedLibrary  : libpdnativeopensl.so
[armeabi-v7a] SharedLibrary  : libpique.so
[armeabi-v7a] SharedLibrary  : libsigmund_tilde.so
[x86] SharedLibrary  : libbonk_tilde.so
[x86] SharedLibrary  : libchoice.so
[x86] SharedLibrary  : libexpr.so
[x86] SharedLibrary  : libfiddle_tilde.so
[x86] SharedLibrary  : libloop_tilde.so
[x86] Install        : libpd.so => libs/x86/libpd.so
[x86] SharedLibrary  : liblrshift_tilde.so
[x86] SharedLibrary  : libpdnative.so
[x86] SharedLibrary  : libpdnativeopensl.so
[x86] SharedLibrary  : libpique.so
[x86] SharedLibrary  : libsigmund_tilde.so
[armeabi] Install        : libbonk_tilde.so => libs/armeabi/libbonk_tilde.so
[armeabi] Install        : libchoice.so => libs/armeabi/libchoice.so
[armeabi] Install        : libexpr.so => libs/armeabi/libexpr.so
[armeabi] Install        : libfiddle_tilde.so => libs/armeabi/libfiddle_tilde.so
[armeabi] Install        : libloop_tilde.so => libs/armeabi/libloop_tilde.so
[armeabi] Install        : libpdnative.so => libs/armeabi/libpdnative.so
[armeabi] Install        : liblrshift_tilde.so => libs/armeabi/liblrshift_tilde.so
[armeabi] Install        : libpdnativeopensl.so => libs/armeabi/libpdnativeopensl.so
[armeabi] Install        : libpique.so => libs/armeabi/libpique.so
[armeabi] Install        : libsigmund_tilde.so => libs/armeabi/libsigmund_tilde.so
[armeabi-v7a] Install        : libbonk_tilde.so => libs/armeabi-v7a/libbonk_tilde.so
[armeabi-v7a] Install        : libchoice.so => libs/armeabi-v7a/libchoice.so
[armeabi-v7a] Install        : libexpr.so => libs/armeabi-v7a/libexpr.so
[armeabi-v7a] Install        : libfiddle_tilde.so => libs/armeabi-v7a/libfiddle_tilde.so
[armeabi-v7a] Install        : libloop_tilde.so => libs/armeabi-v7a/libloop_tilde.so
[armeabi-v7a] Install        : liblrshift_tilde.so => libs/armeabi-v7a/liblrshift_tilde.so
[armeabi-v7a] Install        : libpdnative.so => libs/armeabi-v7a/libpdnative.so
[armeabi-v7a] Install        : libpdnativeopensl.so => libs/armeabi-v7a/libpdnativeopensl.so
[armeabi-v7a] Install        : libpique.so => libs/armeabi-v7a/libpique.so
[armeabi-v7a] Install        : libsigmund_tilde.so => libs/armeabi-v7a/libsigmund_tilde.so
[x86] Install        : libbonk_tilde.so => libs/x86/libbonk_tilde.so
[x86] Install        : libchoice.so => libs/x86/libchoice.so
[x86] Install        : libexpr.so => libs/x86/libexpr.so
[x86] Install        : libfiddle_tilde.so => libs/x86/libfiddle_tilde.so
[x86] Install        : libloop_tilde.so => libs/x86/libloop_tilde.so
[x86] Install        : liblrshift_tilde.so => libs/x86/liblrshift_tilde.so
[x86] Install        : libpdnative.so => libs/x86/libpdnative.so
[x86] Install        : libpdnativeopensl.so => libs/x86/libpdnativeopensl.so
[x86] Install        : libpique.so => libs/x86/libpique.so
[x86] Install        : libsigmund_tilde.so => libs/x86/libsigmund_tilde.so
make.exe: Leaving directory `.../pd-for-android/PdCore/jni'
Cloning libexpr.so in .../pd-for-android/PdCore/libs/armeabi
Cloning libexpr.so in .../pd-for-android/PdCore/libs/armeabi-v7a
Cloning libexpr.so in .../pd-android-test/pd-for-android/PdCore/libs/x86
:PdCore:preBuild UP-TO-DATE
:PdCore:preReleaseBuild UP-TO-DATE
:PdCore:checkReleaseManifest
:PdCore:preDebugAndroidTestBuild UP-TO-DATE
:PdCore:preDebugBuild UP-TO-DATE
:PdCore:preDebugUnitTestBuild UP-TO-DATE
:PdCore:preReleaseUnitTestBuild UP-TO-DATE
:midi:AndroidMidi:compileLint
:midi:AndroidMidi:copyReleaseLint UP-TO-DATE
:midi:AndroidMidi:mergeReleaseProguardFiles
:midi:AndroidMidi:preBuild UP-TO-DATE
:midi:AndroidMidi:preReleaseBuild UP-TO-DATE
:midi:AndroidMidi:checkReleaseManifest
:midi:AndroidMidi:prepareReleaseDependencies
:midi:AndroidMidi:compileReleaseAidl
:midi:AndroidMidi:compileReleaseRenderscript
:midi:AndroidMidi:generateReleaseBuildConfig
:midi:AndroidMidi:generateReleaseAssets UP-TO-DATE
:midi:AndroidMidi:mergeReleaseAssets
:midi:AndroidMidi:generateReleaseResValues
:midi:AndroidMidi:generateReleaseResources
:midi:AndroidMidi:packageReleaseResources
:midi:AndroidMidi:processReleaseManifest
:midi:AndroidMidi:processReleaseResources
:midi:AndroidMidi:generateReleaseSources
:midi:AndroidMidi:processReleaseJavaRes UP-TO-DATE
:midi:AndroidMidi:compileReleaseJava
:midi:AndroidMidi:packageReleaseJar
:midi:AndroidMidi:compileReleaseNdk UP-TO-DATE
:midi:AndroidMidi:packageReleaseJniLibs UP-TO-DATE
:midi:AndroidMidi:packageReleaseLocalJar UP-TO-DATE
:midi:AndroidMidi:packageReleaseRenderscript UP-TO-DATE
:midi:AndroidMidi:bundleRelease
:PdCore:preparePdForAndroidMidiAndroidMidiUnspecifiedLibrary
:PdCore:prepareReleaseDependencies
:PdCore:compileReleaseAidl
:PdCore:compileReleaseRenderscript
:PdCore:generateReleaseBuildConfig
:PdCore:generateReleaseAssets UP-TO-DATE
:PdCore:mergeReleaseAssets
:PdCore:generateReleaseResValues
:PdCore:generateReleaseResources
:PdCore:mergeReleaseResources
:PdCore:processReleaseManifest
:PdCore:processReleaseResources
:PdCore:generateReleaseSources
:PdCore:processReleaseJavaRes UP-TO-DATE
:PdCore:compileReleaseJava
:PdCore:packageReleaseJar
:PdCore:compileReleaseNdk UP-TO-DATE
:PdCore:packageReleaseJniLibs
:PdCore:packageReleaseLocalJar UP-TO-DATE
:PdCore:packageReleaseRenderscript UP-TO-DATE
:PdCore:packageReleaseResources
:PdCore:bundleRelease
:PdCore:compileReleaseSources
:PdCore:assembleRelease

BUILD SUCCESSFUL

$ git status
On branch gradle_mods
Your branch is up-to-date with 'origin/gradle_mods'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   PdCore/libs/armeabi-v7a/libpd.so
        modified:   PdCore/libs/armeabi/libpd.so
        modified:   PdCore/libs/x86/libpd.so

no changes added to commit (use "git add" and/or "git commit -a")

$ git commit -am "Newly built libpd.so files"
[gradle_mods 5779412] Newly built libpd.so files
 3 files changed, 0 insertions(+), 0 deletions(-)

$ git push origin gradle_mods
joebowbeer commented 9 years ago

@chr15m is more needed?

To verify that the build works using the gradle-wrapper, don't cd into PdCore but execute the commands in the pd-for-android root folder using gradlew:

$ gradlew :PdCore:clean :PdCore:assembleRelease

I'm currently using the .aar produced in my fork of MobMuPlat, by the way.

danomatika commented 9 years ago

@joebowbeer Are you interested in handling this? I don't use Android and this seems to be beyond Chris' direct experience. We could use help in handling these kinds of things.

joebowbeer commented 9 years ago

@danomatika Yes, I am interested. I have several Android devices that are still fairly current.

Any comment on the migration toward .aar packaging for releasing build artifacts (especially .so libs)?

danomatika commented 9 years ago

No comment from me. I don't work with Android, mainly C / C++ / Obj-C. I defer to Chris on that.

What I'm thinking is we can add you to the Android team and you can implement what your describing above, if that makes the most sense.

joebowbeer commented 9 years ago

I would be happy to join the team.

Aside: I noticed that the compilation warnings in vexp.c at lines 1114 and 1196 are fixed in github.com/pure-data/pure-data master but not on the 0.46 branch that is currently being used by the libpd submodule.

The compiler is warning about the type of an argument passed into a format statement.

danomatika commented 9 years ago

I wouldn't worry about the warnings. They'll be gone when we move to the next stable release. Building libpd with clang on OS X gives me a couple hundred warnings and I/we haven't gotten around to attempting a patch for that upstream. None of it is really a big deal so far.

chr15m commented 9 years ago

@joebowbeer Yep, we should pull the latest pure-data upstream if that's been fixed. thanks for the heads-up and thanks for agreeing to take on some of the pd-for-android maintenance!

chr15m commented 9 years ago

@joebowbeer do people still use ant for building or is gradle building now mandatory on CLI Android?

danomatika commented 9 years ago

@chr15m It's just a few warnings, of which the pd core already has many. It's best to keep libpd tagged to stable version numbers unless there is a major bug fix. I'll pull in the latest commits in the pure-data repo but it makes more sense to keep libpd as it is unless Millers next release version.

chr15m commented 9 years ago

@danomatika Yep, I see and agree!

joebowbeer commented 8 years ago

@chr15m Sorry for long delay. Regarding question about Ant use, gradle is the only supported command line tool, since about 2 years ago, and Android Studio is the only supported IDE. Ideally, we'd remove the Ant and Eclipse artifacts.