juce-framework / JUCE

JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, LV2 and AAX audio plug-ins.
https://juce.com
Other
6.44k stars 1.71k forks source link

Android: make juce_CreateApplication() visible, like other exported JNI functions #838

Open atsushieno opened 3 years ago

atsushieno commented 3 years ago

I have a working project setup for JUCE CMake + Android which you do not support yet, at https://github.com/atsushieno/android-juce-cmake . It is almost without changes to JUCE 6.0.6, except for one liner change; we need juce_CreateApplication() exposed in the app shared library.

It is NOT required IF the entire application is compiled as libjuce_jni.so like existing Android apps. It is required whenever your CMake based application does not name the project as juce_jni (which would be true for 99% of existing CMake based projects) and try to use the identical CMakeLists.txt for Android and any other platforms (which I assume would be true for 99% of JUCE app developers who want to target Android).

The one liner change is to add visibility attribute at: https://github.com/juce-framework/JUCE/blob/383a4232f095727dc6178ead953e49e12befa072/modules/juce_events/messages/juce_Initialisation.h#L119

The detailed analysis on the problem is described at: https://atsushieno.github.io/2021/01/16/juce-cmake-android-now-works.html

sdeleon28 commented 11 months ago

Any news about this? Is Android+CMake support in the roadmap?