blob: 9a8709a110b3bde5779a962588ee4c5cc95f36c6 [file] [log] [blame]
//
// Copyright (C) 2018 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package {
// http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// the below license kinds from "external_swiftshader_license":
// SPDX-license-identifier-Apache-2.0
// SPDX-license-identifier-BSD
default_applicable_licenses: ["external_swiftshader_license"],
}
cc_defaults {
name: "libswiftshadervk_llvm_defaults",
header_libs: [
"swiftshader_platform_headers",
],
srcs: [
"Reactor/CPUID.cpp",
"Reactor/Debug.cpp",
"Reactor/EmulatedIntrinsics.cpp",
"Reactor/ExecutableMemory.cpp",
"Reactor/LLVMJIT.cpp",
"Reactor/LLVMReactor.cpp",
"Reactor/OptimalIntrinsics.cpp",
"Reactor/Pragma.cpp",
"Reactor/Reactor.cpp",
],
cflags: [
"-DREACTOR_ANONYMOUS_MMAP_NAME=swiftshader_jit",
"-Wno-unused-parameter",
"-Wno-implicit-fallthrough",
],
static_libs: [
"libLLVM10_swiftshader",
],
shared_libs: [
"libcutils",
"liblog",
],
}
cc_library_static {
name: "libswiftshadervk_llvm",
vendor: true,
defaults: [ "libswiftshadervk_llvm_defaults" ],
}
cc_library_static {
name: "libswiftshadervk_llvm_debug",
vendor: true,
defaults: [ "libswiftshadervk_llvm_defaults" ],
}
genrule {
name: "commit_header",
out: ["commit.h"],
tool_files: ["commit_id.py"],
cmd: "$(location commit_id.py) gen $(genDir)/commit.h",
}
cc_defaults {
name: "libvk_swiftshader_defaults",
vendor: true,
defaults: [ "swiftshader_common" ],
cflags: [
"-D_GNU_SOURCE",
"-D__STDC_LIMIT_MACROS",
"-D__STDC_CONSTANT_MACROS",
"-D__STDC_FORMAT_MACROS",
"-DHAVE_GRALLOC1",
"-DHAVE_GRALLOC3",
"-DHAVE_GRALLOC4",
"-DNO_SANITIZE_FUNCTION=",
// FIXME: Use <android/api-level.h> instead?
"-DANDROID_PLATFORM_SDK_VERSION=10000",
"-Wno-implicit-fallthrough",
"-Wno-unused-parameter",
"-Wno-unused-local-typedef",
"-Wno-missing-field-initializers",
// Enable to output commit hash when SwiftShader is initialized
//"-DENABLE_BUILD_VERSION_OUTPUT",
],
cppflags: [
"-Wno-sign-promo",
"-Wno-non-virtual-dtor",
],
ldflags: [
// -Bsymbolic binds symbol references to their global definitions within
// a shared object, thereby preventing symbol preemption.
"-Wl,-Bsymbolic",
],
local_include_dirs: [ "Vulkan" ],
version_script: "Vulkan/android_vk_swiftshader.lds",
generated_headers: [ "commit_header" ],
target: {
android: {
relative_install_path: "hw",
header_libs: [
"swiftshader_platform_headers",
"vulkan_headers",
"hwvulkan_headers",
],
shared_libs: [
"android.hardware.graphics.mapper@3.0",
"android.hardware.graphics.mapper@4.0",
"libnativewindow",
"libhardware",
"libhidlbase",
"libcutils",
"libsync",
"liblog",
"libutils",
],
static_libs: [
"libarect",
],
},
},
}
cc_library_static {
name: "swiftshader_debug",
vendor_available: true,
cflags: [
"-DLOG_TAG=\"swiftshader\"",
],
srcs: [
"System/Debug.cpp",
],
export_include_dirs: [
".",
],
shared_libs: [
"liblog",
],
}
cc_defaults {
name: "libvk_swiftshader_common_defaults",
cflags: [
"-DLOG_TAG=\"swiftshader\"",
"-DSWIFTSHADER_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER",
"-DSWIFTSHADER_ENABLE_ASTC", // TODO(b/150130101)
//"-DSWIFTSHADER_DEVICE_MEMORY_REPORT",
],
srcs: [
"System/Build.cpp",
"System/Configurator.cpp",
"System/CPUID.cpp",
"System/GrallocAndroid.cpp",
"System/Half.cpp",
"System/Linux/MemFd.cpp",
"System/Math.cpp",
"System/Memory.cpp",
"System/Socket.cpp",
"System/Timer.cpp",
"Device/*.cpp",
"Pipeline/*.cpp",
"Vulkan/*.cpp",
"WSI/HeadlessSurfaceKHR.cpp",
"WSI/VkSurfaceKHR.cpp",
],
static_libs: [
"swiftshader_astc",
"swiftshader_debug",
"swiftshader_marl",
"swiftshader_spirv-tools",
],
include_dirs: [
"external/swiftshader/third_party/SPIRV-Headers/include",
"external/swiftshader/include",
],
}
cc_library_shared {
name: "vulkan.pastel",
static_libs: [
"libswiftshadervk_llvm_debug",
"libLLVM10_swiftshader",
],
defaults: [
"libvk_swiftshader_common_defaults",
"libvk_swiftshader_defaults"
],
}
cc_library_shared {
name: "vulkan.pastel.debug",
static_libs: [
"libswiftshadervk_llvm_debug",
"libLLVM10_swiftshader_debug",
],
cflags: [
"-UNDEBUG",
"-g",
"-O0",
"-DDEFAULT_THREAD_COUNT=1",
],
defaults: [
"libvk_swiftshader_common_defaults",
"libvk_swiftshader_defaults",
],
}