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:
parent
ce4f5377dd
commit
3ae474d12c
2 changed files with 12 additions and 29 deletions
|
|
@ -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]
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1800,6 +1800,3 @@ private:
|
|||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Pimpl)
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
constexpr VideoComponent::Pimpl::MediaSession::Player::StateInfo VideoComponent::Pimpl::MediaSession::Player::stateInfos[];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue