ci: Support Android x86_64 and optimize build caching. (#7045)
* android: Support x86_64 devices. * ci: Improve ccache hits and stats. * ci: Compress Android artifacts. * ci: Re-enable PCH and set ccache sloppiness appropriately.
This commit is contained in:
		| @@ -2,20 +2,24 @@ | ||||
| // Licensed under GPLv2 or any later version | ||||
| // Refer to the license.txt file included. | ||||
|  | ||||
| import android.databinding.tool.ext.capitalizeUS | ||||
|  | ||||
| plugins { | ||||
|     id("com.android.application") | ||||
|     id("org.jetbrains.kotlin.android") | ||||
|     id("de.undercouch.download") version "5.5.0" | ||||
| } | ||||
|  | ||||
| import android.databinding.tool.ext.capitalizeUS | ||||
| import de.undercouch.gradle.tasks.download.Download | ||||
|  | ||||
| /** | ||||
|  * Use the number of seconds/10 since Jan 1 2016 as the versionCode. | ||||
|  * This lets us upload a new build at most every 10 seconds for the | ||||
|  * next 680 years. | ||||
|  */ | ||||
| val autoVersion = (((System.currentTimeMillis() / 1000) - 1451606400) / 10).toInt() | ||||
| val abiFilter = listOf("arm64-v8a"/*, "x86", "x86_64"*/) | ||||
| val abiFilter = listOf("arm64-v8a", "x86_64") | ||||
|  | ||||
| val downloadedJniLibsPath = "${buildDir}/downloadedJniLibs" | ||||
|  | ||||
| @Suppress("UnstableApiUsage") | ||||
| android { | ||||
| @@ -131,6 +135,13 @@ android { | ||||
|             path = file("../../../CMakeLists.txt") | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     sourceSets { | ||||
|         named("main") { | ||||
|             // Set up path for downloaded native libraries | ||||
|             jniLibs.srcDir(downloadedJniLibsPath) | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| dependencies { | ||||
| @@ -158,6 +169,30 @@ dependencies { | ||||
|     implementation("com.android.billingclient:billing:2.0.3") | ||||
| } | ||||
|  | ||||
| // Download Vulkan Validation Layers from the KhronosGroup GitHub. | ||||
| val downloadVulkanValidationLayers = tasks.register<Download>("downloadVulkanValidationLayers") { | ||||
|     src("https://github.com/KhronosGroup/Vulkan-ValidationLayers/releases/download/sdk-1.3.261.1/android-binaries-sdk-1.3.261.1-android.zip") | ||||
|     dest(file("${buildDir}/tmp/Vulkan-ValidationLayers.zip")) | ||||
|     onlyIfModified(true) | ||||
| } | ||||
|  | ||||
| // Extract Vulkan Validation Layers into the downloaded native libraries directory. | ||||
| val unzipVulkanValidationLayers = tasks.register<Copy>("unzipVulkanValidationLayers") { | ||||
|     dependsOn(downloadVulkanValidationLayers) | ||||
|     from(zipTree(downloadVulkanValidationLayers.get().dest)) { | ||||
|         // Exclude the top level directory in the zip as it violates the expected jniLibs directory structure. | ||||
|         eachFile { | ||||
|             relativePath = RelativePath(true, *relativePath.segments.drop(1).toTypedArray()) | ||||
|         } | ||||
|         includeEmptyDirs = false | ||||
|     } | ||||
|     into(downloadedJniLibsPath) | ||||
| } | ||||
|  | ||||
| tasks.named("preBuild") { | ||||
|     dependsOn(unzipVulkanValidationLayers) | ||||
| } | ||||
|  | ||||
| fun getGitVersion(): String { | ||||
|     var versionName = "0.0" | ||||
|  | ||||
|   | ||||
| @@ -34,7 +34,11 @@ add_library(citra-android SHARED | ||||
|     ndk_motion.h | ||||
| ) | ||||
|  | ||||
| target_link_libraries(citra-android PRIVATE audio_core citra_common citra_core input_common network adrenotools) | ||||
| target_link_libraries(citra-android PRIVATE audio_core citra_common citra_core input_common network) | ||||
| target_link_libraries(citra-android PRIVATE android camera2ndk EGL glad inih jnigraphics log mediandk yuv) | ||||
|  | ||||
| if ("arm64" IN_LIST ARCHITECTURE) | ||||
|     target_link_libraries(citra-android PRIVATE adrenotools) | ||||
| endif() | ||||
|  | ||||
| set(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} citra-android) | ||||
|   | ||||
| @@ -10,8 +10,12 @@ | ||||
| #include <android/native_window_jni.h> | ||||
|  | ||||
| #include "audio_core/dsp_interface.h" | ||||
| #include "common/aarch64/cpu_detect.h" | ||||
| #include "common/arch.h" | ||||
| #if CITRA_ARCH(arm64) | ||||
| #include "common/aarch64/cpu_detect.h" | ||||
| #elif CITRA_ARCH(x86_64) | ||||
| #include "common/x64/cpu_detect.h" | ||||
| #endif | ||||
| #include "common/common_paths.h" | ||||
| #include "common/dynamic_library/dynamic_library.h" | ||||
| #include "common/file_util.h" | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user
	 Steveice10
					Steveice10