mirror of
https://github.com/open-goal/jak-project
synced 2026-07-11 23:30:16 -04:00
60db0e5ef9
This updates `fmt` to the latest version and moves to just being a copy of their repo to make updating easier (no editing their cmake / figuring out which files to minimally include). The motivation for this is now that we switched to C++ 20, there were a ton of deprecated function usages that is going away in future compiler versions. This gets rid of all those warnings.
133 lines
3.9 KiB
Groovy
Vendored
Generated
133 lines
3.9 KiB
Groovy
Vendored
Generated
import java.nio.file.Paths
|
|
|
|
// General gradle arguments for root project
|
|
buildscript {
|
|
repositories {
|
|
google()
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
//
|
|
// https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
|
|
//
|
|
// Notice that 4.0.0 here is the version of [Android Gradle Plugin]
|
|
// According to URL above you will need Gradle 6.1 or higher
|
|
//
|
|
classpath "com.android.tools.build:gradle:4.1.1"
|
|
}
|
|
}
|
|
repositories {
|
|
google()
|
|
jcenter()
|
|
}
|
|
|
|
// Project's root where CMakeLists.txt exists: rootDir/support/.cxx -> rootDir
|
|
def rootDir = Paths.get(project.buildDir.getParent()).getParent()
|
|
println("rootDir: ${rootDir}")
|
|
|
|
// 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"
|
|
}
|
|
}
|
|
ndkVersion "21.3.6528147" // ANDROID_NDK_HOME is deprecated. Be explicit
|
|
|
|
defaultConfig {
|
|
minSdkVersion 21 // Android 5.0+
|
|
targetSdkVersion 25 // Follow Compile SDK
|
|
versionCode 34 // Follow release count
|
|
versionName "7.1.2" // Follow Official version
|
|
|
|
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"
|
|
targets "fmt"
|
|
}
|
|
}
|
|
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 {
|
|
version "3.10.0+"
|
|
path "${rootDir}/CMakeLists.txt"
|
|
// buildStagingDirectory "./build" // Custom path for cmake output
|
|
}
|
|
}
|
|
|
|
sourceSets{
|
|
// Android Manifest for Gradle
|
|
main {
|
|
manifest.srcFile "AndroidManifest.xml"
|
|
}
|
|
}
|
|
|
|
// https://developer.android.com/studio/build/native-dependencies#build_system_configuration
|
|
buildFeatures {
|
|
prefab true
|
|
prefabPublishing true
|
|
}
|
|
prefab {
|
|
fmt {
|
|
headers "${rootDir}/include"
|
|
}
|
|
}
|
|
}
|
|
|
|
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 "${rootDir}/libs"
|
|
}
|
|
// Copy debug binaries
|
|
copy {
|
|
from "${rootDir}/libs/debug/obj"
|
|
into "${rootDir}/libs/debug"
|
|
}
|
|
// Copy Release binaries
|
|
copy {
|
|
from "${rootDir}/libs/release/obj"
|
|
into "${rootDir}/libs/release"
|
|
}
|
|
// Remove empty directory
|
|
delete "${rootDir}/libs/debug/obj"
|
|
delete "${rootDir}/libs/release/obj"
|
|
|
|
// Copy AAR files. Notice that the aar is named after the folder of this script.
|
|
copy {
|
|
from "build/outputs/aar/support-release.aar"
|
|
into "${rootDir}/libs"
|
|
rename "support-release.aar", "fmt-release.aar"
|
|
}
|
|
copy {
|
|
from "build/outputs/aar/support-debug.aar"
|
|
into "${rootDir}/libs"
|
|
rename "support-debug.aar", "fmt-debug.aar"
|
|
}
|
|
}
|