VirtualBox

source: vbox/trunk/src/VBox/Additions/3D/mesa/mesa-24.0.2/android/Android.mk@ 105254

最後變更 在這個檔案從105254是 103996,由 vboxsync 提交於 12 月 前

Additions/3D/mesa: export mesa-24.0.2 to OSE. bugref:10606

  • 屬性 svn:eol-style 設為 native
檔案大小: 6.7 KB
 
1# Mesa 3-D graphics library
2#
3# Copyright (C) 2021 GlobalLogic Ukraine
4# Copyright (C) 2021 Roman Stratiienko ([email protected])
5#
6# Permission is hereby granted, free of charge, to any person obtaining a
7# copy of this software and associated documentation files (the "Software"),
8# to deal in the Software without restriction, including without limitation
9# the rights to use, copy, modify, merge, publish, distribute, sublicense,
10# and/or sell copies of the Software, and to permit persons to whom the
11# Software is furnished to do so, subject to the following conditions:
12#
13# The above copyright notice and this permission notice shall be included
14# in all copies or substantial portions of the Software.
15#
16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22# DEALINGS IN THE SOFTWARE.
23
24ifneq ($(filter true, $(BOARD_MESA3D_USES_MESON_BUILD)),)
25
26LOCAL_PATH := $(call my-dir)
27MESA3D_TOP := $(dir $(LOCAL_PATH))
28
29LIBDRM_VERSION = $(shell cat external/libdrm/meson.build | grep -o "\<version\>\s*:\s*'\w*\.\w*\.\w*'" | grep -o "\w*\.\w*\.\w*" | head -1)
30
31MESA_VK_LIB_SUFFIX_amd := radeon
32MESA_VK_LIB_SUFFIX_intel := intel
33MESA_VK_LIB_SUFFIX_intel_hasvk := intel_hasvk
34MESA_VK_LIB_SUFFIX_freedreno := freedreno
35MESA_VK_LIB_SUFFIX_broadcom := broadcom
36MESA_VK_LIB_SUFFIX_panfrost := panfrost
37MESA_VK_LIB_SUFFIX_virtio := virtio
38MESA_VK_LIB_SUFFIX_swrast := lvp
39
40include $(CLEAR_VARS)
41
42LOCAL_SHARED_LIBRARIES := libc libdl libdrm libm liblog libcutils libz libc++ libnativewindow libsync libhardware
43LOCAL_STATIC_LIBRARIES := libexpat libarect libelf
44LOCAL_HEADER_LIBRARIES := libnativebase_headers hwvulkan_headers
45MESON_GEN_PKGCONFIGS := cutils expat hardware libdrm:$(LIBDRM_VERSION) nativewindow sync zlib:1.2.11 libelf
46LOCAL_CFLAGS += $(BOARD_MESA3D_CFLAGS)
47
48ifneq ($(filter swrast,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),)
49ifeq ($(BOARD_MESA3D_FORCE_SOFTPIPE),)
50MESON_GEN_LLVM_STUB := true
51endif
52endif
53
54ifneq ($(filter zink,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
55LOCAL_SHARED_LIBRARIES += libvulkan
56MESON_GEN_PKGCONFIGS += vulkan
57endif
58
59ifneq ($(filter iris,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
60LOCAL_SHARED_LIBRARIES += libdrm_intel
61MESON_GEN_PKGCONFIGS += libdrm_intel:$(LIBDRM_VERSION)
62endif
63
64ifneq ($(filter radeonsi,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
65ifneq ($(MESON_GEN_LLVM_STUB),)
66LOCAL_CFLAGS += -DFORCE_BUILD_AMDGPU # instructs LLVM to declare LLVMInitializeAMDGPU* functions
67# The flag is required for the Android-x86 LLVM port that follows the AOSP LLVM porting rules
68# https://osdn.net/projects/android-x86/scm/git/external-llvm-project
69endif
70endif
71
72ifneq ($(filter radeonsi amd,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),)
73LOCAL_SHARED_LIBRARIES += libdrm_amdgpu
74MESON_GEN_PKGCONFIGS += libdrm_amdgpu:$(LIBDRM_VERSION)
75endif
76
77ifneq ($(filter radeonsi r300 r600,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
78LOCAL_SHARED_LIBRARIES += libdrm_radeon
79MESON_GEN_PKGCONFIGS += libdrm_radeon:$(LIBDRM_VERSION)
80endif
81
82ifneq ($(filter nouveau,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
83LOCAL_SHARED_LIBRARIES += libdrm_nouveau
84MESON_GEN_PKGCONFIGS += libdrm_nouveau:$(LIBDRM_VERSION)
85endif
86
87ifneq ($(filter d3d12,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
88LOCAL_HEADER_LIBRARIES += DirectX-Headers
89LOCAL_STATIC_LIBRARIES += DirectX-Guids
90MESON_GEN_PKGCONFIGS += DirectX-Headers
91endif
92
93ifneq ($(MESON_GEN_LLVM_STUB),)
94MESON_LLVM_VERSION := 12.0.0
95LOCAL_SHARED_LIBRARIES += libLLVM12
96endif
97
98ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 30; echo $$?), 0)
99LOCAL_SHARED_LIBRARIES += \
100 [email protected] \
101 libgralloctypes \
102 libhidlbase \
103 libutils
104
105MESON_GEN_PKGCONFIGS += android.hardware.graphics.mapper:4.0
106endif
107
108__MY_SHARED_LIBRARIES := $(LOCAL_SHARED_LIBRARIES)
109
110ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 30; echo $$?), 0)
111MESA_LIBGBM_NAME := libgbm_mesa
112else
113MESA_LIBGBM_NAME := libgbm
114endif
115
116ifeq ($(TARGET_IS_64_BIT),true)
117LOCAL_MULTILIB := 64
118else
119LOCAL_MULTILIB := 32
120endif
121include $(LOCAL_PATH)/mesa3d_cross.mk
122
123ifdef TARGET_2ND_ARCH
124LOCAL_MULTILIB := 32
125include $(LOCAL_PATH)/mesa3d_cross.mk
126endif
127
128#-------------------------------------------------------------------------------
129
130# $1: name
131# $2: symlink suffix
132# $3: subdir
133# $4: source prebuilt
134# $5: export headers
135define mesa3d-lib
136include $(CLEAR_VARS)
137LOCAL_MODULE_CLASS := SHARED_LIBRARIES
138LOCAL_MODULE := $1
139LOCAL_VENDOR_MODULE := true
140LOCAL_MODULE_RELATIVE_PATH := $3
141LOCAL_PREBUILT_MODULE_FILE := $($4)
142LOCAL_MULTILIB := first
143LOCAL_CHECK_ELF_FILES := false
144LOCAL_MODULE_SUFFIX := .so
145LOCAL_MODULE_SYMLINKS := $1$2
146LOCAL_SHARED_LIBRARIES := $(__MY_SHARED_LIBRARIES)
147LOCAL_EXPORT_C_INCLUDE_DIRS := $5
148include $(BUILD_PREBUILT)
149
150ifdef TARGET_2ND_ARCH
151include $(CLEAR_VARS)
152LOCAL_MODULE_CLASS := SHARED_LIBRARIES
153LOCAL_MODULE := $1
154LOCAL_VENDOR_MODULE := true
155LOCAL_MODULE_RELATIVE_PATH := $3
156LOCAL_PREBUILT_MODULE_FILE := $(2ND_$4)
157LOCAL_MULTILIB := 32
158LOCAL_CHECK_ELF_FILES := false
159LOCAL_MODULE_SUFFIX := .so
160LOCAL_MODULE_SYMLINKS := $1$2
161LOCAL_SHARED_LIBRARIES := $(__MY_SHARED_LIBRARIES)
162LOCAL_EXPORT_C_INCLUDE_DIRS := $5
163include $(BUILD_PREBUILT)
164endif
165endef
166
167ifneq ($(strip $(BOARD_MESA3D_GALLIUM_DRIVERS)),)
168# Module 'libgallium_dri', produces '/vendor/lib{64}/dri/libgallium_dri.so'
169# This module also trigger DRI symlinks creation process
170$(eval $(call mesa3d-lib,libgallium_dri,.so.0,dri,MESA3D_GALLIUM_DRI_BIN))
171# Module 'libglapi', produces '/vendor/lib{64}/libglapi.so'
172$(eval $(call mesa3d-lib,libglapi,.so.0,,MESA3D_LIBGLAPI_BIN))
173
174# Module 'libEGL_mesa', produces '/vendor/lib{64}/egl/libEGL_mesa.so'
175$(eval $(call mesa3d-lib,libEGL_mesa,.so.1,egl,MESA3D_LIBEGL_BIN))
176# Module 'libGLESv1_CM_mesa', produces '/vendor/lib{64}/egl/libGLESv1_CM_mesa.so'
177$(eval $(call mesa3d-lib,libGLESv1_CM_mesa,.so.1,egl,MESA3D_LIBGLESV1_BIN))
178# Module 'libGLESv2_mesa', produces '/vendor/lib{64}/egl/libGLESv2_mesa.so'
179$(eval $(call mesa3d-lib,libGLESv2_mesa,.so.2,egl,MESA3D_LIBGLESV2_BIN))
180endif
181
182# Modules 'vulkan.{driver_name}', produces '/vendor/lib{64}/hw/vulkan.{driver_name}.so' HAL
183$(foreach driver,$(BOARD_MESA3D_VULKAN_DRIVERS), \
184 $(eval $(call mesa3d-lib,vulkan.$(MESA_VK_LIB_SUFFIX_$(driver)),.so.0,hw,MESA3D_VULKAN_$(driver)_BIN)))
185
186ifneq ($(filter true, $(BOARD_MESA3D_BUILD_LIBGBM)),)
187# Modules 'libgbm', produces '/vendor/lib{64}/libgbm.so'
188$(eval $(call mesa3d-lib,$(MESA_LIBGBM_NAME),.so.1,,MESA3D_LIBGBM_BIN,$(MESA3D_TOP)/src/gbm/main))
189endif
190
191#-------------------------------------------------------------------------------
192
193endif
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette