mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 22:09:19 -07:00
d5d60c6e64
Allows us to migrate off of printf specifiers and have more type-safe formatting facilities. It also allows for custom type support as well. fmt is also on track to have part of it standardized within C++2a, so this will also lessen the transitional work necessary later on by allowing new code to use it. This simply adds the library but doesn't do anything with it yet.
106 lines
3.0 KiB
Groovy
Executable File
106 lines
3.0 KiB
Groovy
Executable File
|
|
// General gradle arguments for root project
|
|
buildscript {
|
|
repositories {
|
|
google()
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
//
|
|
// https://developer.android.com/studio/releases/gradle-plugin
|
|
//
|
|
// Notice that 3.1.3 here is the version of [Android Gradle Plugin]
|
|
// Accroding to URL above you will need Gradle 4.4 or higher
|
|
//
|
|
classpath 'com.android.tools.build:gradle:3.1.3'
|
|
}
|
|
}
|
|
repositories {
|
|
google()
|
|
jcenter()
|
|
}
|
|
|
|
// Output: Shared library (.so) for Android
|
|
apply plugin: 'com.android.library'
|
|
|
|
android {
|
|
compileSdkVersion 25 // Android 7.0
|
|
|
|
// Target ABI
|
|
// - This option controls target platform of module
|
|
// - The platform might be limited by compiler's support
|
|
// some can work with Clang(default), but some can work only with GCC...
|
|
// if bad, both toolchains might not support it
|
|
splits {
|
|
abi {
|
|
enable true
|
|
// Specify platforms for Application
|
|
reset()
|
|
include "arm64-v8a", "armeabi-v7a", "x86_64"
|
|
}
|
|
}
|
|
|
|
defaultConfig {
|
|
minSdkVersion 21 // Android 5.0+
|
|
targetSdkVersion 25 // Follow Compile SDK
|
|
versionCode 20 // Follow release count
|
|
versionName "5.2.1" // Follow Official version
|
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
|
|
|
externalNativeBuild {
|
|
cmake {
|
|
arguments "-DANDROID_STL=c++_shared" // Specify Android STL
|
|
arguments "-DBUILD_SHARED_LIBS=true" // Build shared object
|
|
arguments "-DFMT_TEST=false" // Skip test
|
|
arguments "-DFMT_DOC=false" // Skip document
|
|
cppFlags "-std=c++17"
|
|
}
|
|
}
|
|
println("Gradle CMake Plugin: ")
|
|
println(externalNativeBuild.cmake.cppFlags)
|
|
println(externalNativeBuild.cmake.arguments)
|
|
}
|
|
|
|
// External Native build
|
|
// - Use existing CMakeList.txt
|
|
// - Give path to CMake. This gradle file should be
|
|
// neighbor of the top level cmake
|
|
externalNativeBuild {
|
|
cmake {
|
|
path "../CMakeLists.txt"
|
|
// buildStagingDirectory "./build" // Custom path for cmake output
|
|
}
|
|
//println(cmake.path)
|
|
}
|
|
|
|
sourceSets{
|
|
// Android Manifest for Gradle
|
|
main {
|
|
manifest.srcFile 'AndroidManifest.xml'
|
|
}
|
|
}
|
|
}
|
|
|
|
assemble.doLast
|
|
{
|
|
// Instead of `ninja install`, Gradle will deploy the files.
|
|
// We are doing this since FMT is dependent to the ANDROID_STL after build
|
|
copy {
|
|
from 'build/intermediates/cmake'
|
|
into '../libs'
|
|
}
|
|
// Copy debug binaries
|
|
copy {
|
|
from '../libs/debug/obj'
|
|
into '../libs/debug'
|
|
}
|
|
// Copy Release binaries
|
|
copy {
|
|
from '../libs/release/obj'
|
|
into '../libs/release'
|
|
}
|
|
// Remove empty directory
|
|
delete '../libs/debug/obj'
|
|
delete '../libs/release/obj'
|
|
}
|