OSDN Git Service

Disable surface and swapchain support for Android
[android-x86/external-swiftshader.git] / Android.mk
index 694e6a3..1cc9690 100644 (file)
 # limitations under the License.
 #
 
-LOCAL_PATH:= $(call my-dir)
+LOCAL_PATH := $(call my-dir)
+swiftshader_root := $(LOCAL_PATH)
 
-ifndef SWIFTSHADER_OPTIM
-SWIFTSHADER_OPTIM := release
+# Default LLVM version for SwiftShader's JIT compiler (Reactor).
+REACTOR_LLVM_VERSION ?= 7
+
+# Subzero is an alternative JIT compiler. It is smaller and generally slower.
+REACTOR_USE_SUBZERO := false
+
+ifeq ($(REACTOR_LLVM_VERSION),3)
+# Reactor with LLVM 3.0 doesn't support ARM.  Use Subzero as the Reactor JIT
+# back-end on ARM.
+ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm))
+REACTOR_USE_SUBZERO := true
+endif
+endif
+
+# Subzero and LLVM 7.0 require C++11.
+# Full C++11 support is only available from Marshmallow and up.
+ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
+# Fall back to LLVM 3.0.
+REACTOR_USE_SUBZERO := false
+REACTOR_LLVM_VERSION := 3
+endif
+
+# Check whether $(TARGET_ARCH) is supported.
+ifeq ($(REACTOR_LLVM_VERSION),3)
+ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm))
+swiftshader_unsupported_build := true
+endif
+endif
+
+ifeq ($(REACTOR_LLVM_VERSION),7)
+ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm arm64))
+swiftshader_unsupported_build := true
+endif
 endif
 
-ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64))
-ifneq ($(filter gce gce% calypso, $(TARGET_DEVICE))$(filter sdk_google_% google_sdk_%, $(TARGET_PRODUCT)),)
-include $(call all-makefiles-under,$(LOCAL_PATH))
+ifneq ($(swiftshader_unsupported_build),true)
+include $(swiftshader_root)/src/Android.mk
+include $(swiftshader_root)/tests/GLESUnitTests/Android.mk
+ifeq ($(REACTOR_LLVM_VERSION),3)
+include $(swiftshader_root)/third_party/LLVM/Android.mk
+else
+include $(swiftshader_root)/third_party/llvm-7.0/Android.mk
 endif
 endif