1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Projucer: Update default min/target SDK, NDK, and build tool versions for Android

This commit is contained in:
reuk 2024-02-27 17:27:24 +00:00
parent ce4f5377dd
commit 3ae474d12c
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C
2 changed files with 12 additions and 29 deletions

View file

@ -132,8 +132,8 @@ public:
androidManifestCustomXmlElements (settings, Ids::androidManifestCustomXmlElements, getUndoManager()),
androidGradleSettingsContent (settings, Ids::androidGradleSettingsContent, getUndoManager()),
androidVersionCode (settings, Ids::androidVersionCode, getUndoManager(), "1"),
androidMinimumSDK (settings, Ids::androidMinimumSDK, getUndoManager(), "16"),
androidTargetSDK (settings, Ids::androidTargetSDK, getUndoManager(), "33"),
androidMinimumSDK (settings, Ids::androidMinimumSDK, getUndoManager(), "21"),
androidTargetSDK (settings, Ids::androidTargetSDK, getUndoManager(), "34"),
androidTheme (settings, Ids::androidTheme, getUndoManager()),
androidExtraAssetsFolder (settings, Ids::androidExtraAssetsFolder, getUndoManager()),
androidOboeRepositoryPath (settings, Ids::androidOboeRepositoryPath, getUndoManager()),
@ -158,10 +158,10 @@ public:
androidKeyStorePass (settings, Ids::androidKeyStorePass, getUndoManager(), "android"),
androidKeyAlias (settings, Ids::androidKeyAlias, getUndoManager(), "androiddebugkey"),
androidKeyAliasPass (settings, Ids::androidKeyAliasPass, getUndoManager(), "android"),
gradleVersion (settings, Ids::gradleVersion, getUndoManager(), "7.5.1"),
gradleVersion (settings, Ids::gradleVersion, getUndoManager(), "8.2"),
gradleToolchain (settings, Ids::gradleToolchain, getUndoManager(), "clang"),
gradleClangTidy (settings, Ids::gradleClangTidy, getUndoManager(), false),
androidPluginVersion (settings, Ids::androidPluginVersion, getUndoManager(), "7.3.0"),
androidPluginVersion (settings, Ids::androidPluginVersion, getUndoManager(), "7.4.2"),
AndroidExecutable (getAppSettings().getStoredPath (Ids::androidStudioExePath, TargetOS::getThisOS()).get().toString())
{
name = getDisplayName();
@ -407,6 +407,9 @@ private:
<< "project(juce_jni_project)" << newLine
<< newLine;
if (gradleClangTidy.get())
mo << "set(CMAKE_CXX_CLANG_TIDY \"${ANDROID_TOOLCHAIN_ROOT}/bin/clang-tidy\")" << newLine << newLine;
if (! isLibrary())
mo << "set(BINARY_NAME \"juce_jni\")" << newLine << newLine;
@ -693,25 +696,8 @@ private:
mo << "apply plugin: 'com.android." << (isLibrary() ? "library" : "application") << "'" << newLine << newLine;
// CMake 3.22 will fail to build Android projects that set ANDROID_ARM_MODE unless NDK 24+ is used
mo << "def ndkVersionString = \"25.2.9519653\"" << newLine << newLine;
if (gradleClangTidy.get() && gradleToolchain.get().toString() == "clang")
mo << "def sdkDir = {" << newLine
<< " def androidHome = System.getenv('ANDROID_HOME')" << newLine
<< " if (androidHome) {" << newLine
<< " return androidHome" << newLine
<< " }" << newLine
<< " Properties properties = new Properties()" << newLine
<< " properties.load(project.rootProject.file(\"local.properties\").newDataInputStream())" << newLine
<< " return properties.getProperty('sdk.dir')" << newLine
<< "}()" << newLine
<< "def llvmDir = \"${sdkDir}/ndk/${ndkVersionString}/toolchains/llvm\"" << newLine
<< "def clangTidySearch = fileTree(llvmDir).filter { file -> file.name.matches('^clang-tidy(.exe)?$') }" << newLine
<< "if (clangTidySearch.size() != 1) {" << newLine
<< " throw new GradleException(\"Could not locate a unique clang-tidy in ${llvmDir}\")" << newLine
<< "}" << newLine
<< "def clangTidy = clangTidySearch.getSingleFile().getAbsolutePath()" << newLine << newLine;
// NDK 26 is required for ANDROID_WEAK_API_DEFS, which is in turn required for weak-linking AFontMatcher
mo << "def ndkVersionString = \"26.2.11394342\"" << newLine << newLine;
mo << "android {" << newLine;
mo << " compileSdkVersion " << static_cast<int> (androidTargetSDK.get()) << newLine;
@ -1149,7 +1135,7 @@ private:
"An integer value that represents the version of the application code, relative to other versions.");
props.add (new TextPropertyComponent (androidMinimumSDK, "Minimum SDK Version", 32, false),
"The number of the minimum version of the Android SDK that the app requires (must be 16 or higher).");
"The number of the minimum version of the Android SDK that the app requires (must be 21 or higher).");
props.add (new TextPropertyComponent (androidTargetSDK, "Target SDK Version", 32, false),
"The number of the version of the Android SDK that the app is targeting.");
@ -1520,8 +1506,8 @@ private:
cmakeArgs.add ("\"-DANDROID_ARM_MODE=arm\"");
cmakeArgs.add ("\"-DANDROID_ARM_NEON=TRUE\"");
if (isClang && gradleClangTidy.get())
cmakeArgs.add ("\"-DCMAKE_CXX_CLANG_TIDY=${clangTidy}\"");
// This enables macOS/iOS-style weak-linking for symbols in the NDK, but is only available in NDK 26+
cmakeArgs.add ("\"-DANDROID_WEAK_API_DEFS=ON\"");
auto cppStandard = [this]
{

View file

@ -1800,6 +1800,3 @@ private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Pimpl)
};
//==============================================================================
constexpr VideoComponent::Pimpl::MediaSession::Player::StateInfo VideoComponent::Pimpl::MediaSession::Player::stateInfos[];