//
// 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.
//

cc_defaults {
    name: "libswiftshader",
    vendor: true,
    host_supported: true,

    defaults: [ "swiftshader_common" ],

    cflags: [
        "-D_GNU_SOURCE",
        "-D__STDC_LIMIT_MACROS",
        "-D__STDC_CONSTANT_MACROS",
        "-D__STDC_FORMAT_MACROS",
        "-DHAVE_GRALLOC1",
        "-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",
    ],

    cppflags: [
        "-Wno-sign-promo",
        "-Wno-non-virtual-dtor",
    ],

    local_include_dirs: [ "OpenGL" ],

    target: {
        android: {
            relative_install_path: "egl",
            header_libs: [
                "swiftshader_platform_headers",
                "libnativebase_headers",
            ],
            shared_libs: [
                "libnativewindow",
                "libhardware",
                "libcutils",
                "libsync",
                "liblog",
            ],
            static_libs: [
                "libarect",
            ],
        },

        host: {
            header_libs: [
                "swiftshader_host_headers",
                "swiftshader_platform_headers",
                "libnativebase_headers",
            ],

            // Pretend to build for Android
            cflags: [ "-D__ANDROID__", "-DANDROID_HOST_BUILD" ],

            allow_undefined_symbols: true,
            host_ldlibs: ["-ldl"],
        },
    },
}

cc_defaults {
    name: "libswiftshader_release",

    defaults: [ "libswiftshader" ],

    cflags: [
        "-fomit-frame-pointer",
        "-ffunction-sections",
        "-fdata-sections",
        "-DANGLE_DISABLE_TRACE",
    ],
}

cc_defaults {
    name: "libswiftshader_debug",

    defaults: [ "libswiftshader" ],

    cflags: [
        "-UNDEBUG",
        "-g",
        "-O0",
        "-DDEFAULT_THREAD_COUNT=1",
    ],
}

// Common libraries

cc_defaults {
    name: "libswiftshader_common_defaults",

    cflags: [
        "-DLOG_TAG=\"swiftshader\"",
    ],

    srcs: [
        "Common/CPUID.cpp",
        "Common/Configurator.cpp",
        "Common/DebugAndroid.cpp",
        "Common/GrallocAndroid.cpp",
        "Common/Half.cpp",
        "Common/Math.cpp",
        "Common/Memory.cpp",
        "Common/Resource.cpp",
        "Common/Socket.cpp",
        "Common/Thread.cpp",
        "Common/Timer.cpp",
	"Common/SharedLibrary.cpp",
        "Main/Config.cpp",
        "Main/FrameBuffer.cpp",
        "Main/FrameBufferAndroid.cpp",
        "Main/SwiftConfig.cpp",
        "Renderer/Blitter.cpp",
        "Renderer/Clipper.cpp",
        "Renderer/Color.cpp",
        "Renderer/Context.cpp",
        "Renderer/ETC_Decoder.cpp",
        "Renderer/Matrix.cpp",
        "Renderer/PixelProcessor.cpp",
        "Renderer/Plane.cpp",
        "Renderer/Point.cpp",
        "Renderer/QuadRasterizer.cpp",
        "Renderer/Renderer.cpp",
        "Renderer/Sampler.cpp",
        "Renderer/SetupProcessor.cpp",
        "Renderer/Surface.cpp",
        "Renderer/TextureStage.cpp",
        "Renderer/Vector.cpp",
        "Renderer/VertexProcessor.cpp",
        "Shader/Constants.cpp",
        "Shader/PixelPipeline.cpp",
        "Shader/PixelProgram.cpp",
        "Shader/PixelRoutine.cpp",
        "Shader/PixelShader.cpp",
        "Shader/SamplerCore.cpp",
        "Shader/SetupRoutine.cpp",
        "Shader/Shader.cpp",
        "Shader/ShaderCore.cpp",
        "Shader/VertexPipeline.cpp",
        "Shader/VertexProgram.cpp",
        "Shader/VertexRoutine.cpp",
        "Shader/VertexShader.cpp",
        "OpenGL/common/Image.cpp",
        "OpenGL/common/Object.cpp",
        "OpenGL/common/MatrixStack.cpp",
    ],

    target: {
        host: {
            exclude_srcs: [ "Common/DebugAndroid.cpp" ],
            srcs: [ "Common/Debug.cpp" ],
        },
    },
}

cc_defaults {
    name: "libswiftshader_llvm_defaults",

    defaults: [ "libswiftshader_common_defaults" ],

    srcs: [
        "Reactor/Reactor.cpp",
        "Reactor/LLVMReactor.cpp",
        "Reactor/Debug.cpp",
        "Reactor/CPUID.cpp",
        "Reactor/ExecutableMemory.cpp",
    ],

    cflags: [
        "-Wno-unused-parameter",
        "-Wno-implicit-fallthrough",
    ],

    static_libs: [
        "libLLVM7_swiftshader",
    ],
}

cc_defaults {
    name: "libswiftshadervk_llvm_defaults",

    srcs: [
        "Reactor/Reactor.cpp",
        "Reactor/LLVMReactor.cpp",
        "Reactor/Debug.cpp",
        "Reactor/CPUID.cpp",
        "Reactor/ExecutableMemory.cpp",
    ],

    cflags: [
        "-Wno-unused-parameter",
        "-Wno-implicit-fallthrough",
    ],

    static_libs: [
        "libLLVM7_swiftshader",
    ],

    shared_libs: [
        "libcutils",
    ],
}

cc_defaults {
    name: "libswiftshader_common",

    defaults: [ "libswiftshader_release", "libswiftshader_common_defaults" ],
}

cc_defaults {
    name: "libswiftshader_common_debug",

    srcs: [ "OpenGL/common/debug.cpp" ],

    defaults: [ "libswiftshader_debug", "libswiftshader_common_defaults" ],

    shared_libs: [
        "libutils",
    ],
}

cc_library_static {
    name: "libswiftshader_llvm",
    defaults: [ "libswiftshader_common", "libswiftshader_llvm_defaults" ],
}

cc_library_static {
    name: "libswiftshader_llvm_debug",
    defaults: [ "libswiftshader_common_debug", "libswiftshader_llvm_defaults" ],
}

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" ],
}

// compiler libraries

cc_defaults {
    name: "libswiftshader_compiler_defaults",

    defaults: [ "libswiftshader" ],

    cflags: [
        "-DLOG_TAG=\"swiftshader_compiler\"",
    ],

    srcs: [
        "OpenGL/compiler/preprocessor/DiagnosticsBase.cpp",
        "OpenGL/compiler/preprocessor/DirectiveHandlerBase.cpp",
        "OpenGL/compiler/preprocessor/DirectiveParser.cpp",
        "OpenGL/compiler/preprocessor/ExpressionParser.cpp",
        "OpenGL/compiler/preprocessor/Input.cpp",
        "OpenGL/compiler/preprocessor/Lexer.cpp",
        "OpenGL/compiler/preprocessor/Macro.cpp",
        "OpenGL/compiler/preprocessor/MacroExpander.cpp",
        "OpenGL/compiler/preprocessor/Preprocessor.cpp",
        "OpenGL/compiler/preprocessor/Token.cpp",
        "OpenGL/compiler/preprocessor/Tokenizer.cpp",
        "OpenGL/compiler/AnalyzeCallDepth.cpp",
        "OpenGL/compiler/Compiler.cpp",
        "OpenGL/compiler/debug.cpp",
        "OpenGL/compiler/Diagnostics.cpp",
        "OpenGL/compiler/DirectiveHandler.cpp",
        "OpenGL/compiler/glslang_lex.cpp",
        "OpenGL/compiler/glslang_tab.cpp",
        "OpenGL/compiler/InfoSink.cpp",
        "OpenGL/compiler/Initialize.cpp",
        "OpenGL/compiler/InitializeParseContext.cpp",
        "OpenGL/compiler/IntermTraverse.cpp",
        "OpenGL/compiler/Intermediate.cpp",
        "OpenGL/compiler/intermOut.cpp",
        "OpenGL/compiler/ossource_posix.cpp",
        "OpenGL/compiler/OutputASM.cpp",
        "OpenGL/compiler/parseConst.cpp",
        "OpenGL/compiler/ParseHelper.cpp",
        "OpenGL/compiler/PoolAlloc.cpp",
        "OpenGL/compiler/SymbolTable.cpp",
        "OpenGL/compiler/TranslatorASM.cpp",
        "OpenGL/compiler/util.cpp",
        "OpenGL/compiler/ValidateLimitations.cpp",
        "OpenGL/compiler/ValidateSwitch.cpp",
    ],
}

cc_library_static {
    name: "libswiftshader_compiler",

    defaults: [ "libswiftshader_release", "libswiftshader_compiler_defaults" ],
}

cc_library_static {
    name: "libswiftshader_compiler_debug",

    defaults: [ "libswiftshader_debug", "libswiftshader_compiler_defaults" ],
}

// libEGL libraries

cc_defaults {
    name: "swiftshader_client_libraries",

    defaults: [ "libswiftshader_release" ],
    static_libs: [
        "libswiftshader_llvm",
        "libLLVM7_swiftshader",
    ],
}

cc_defaults {
    name: "swiftshader_client_libraries_debug",

    defaults: [ "libswiftshader_debug" ],
    static_libs: [
        "libswiftshader_llvm_debug",
        "libLLVM7_swiftshader",
    ],
}

cc_defaults {
    name: "libEGL_swiftshader_defaults",

    defaults: [ "libswiftshader" ],

    cflags: [
        "-DLOG_TAG=\"libEGL_swiftshader\"",
        "-DEGLAPI=",
        "-DEGL_EGLEXT_PROTOTYPES",
        "-Wno-format",
    ],

    srcs: [
       "OpenGL/libEGL/Config.cpp",
       "OpenGL/libEGL/Display.cpp",
       "OpenGL/libEGL/Surface.cpp",
       "OpenGL/libEGL/libEGL.cpp",
       "OpenGL/libEGL/main.cpp",
    ],

    version_script: "OpenGL/libEGL/libEGL.lds",
}

cc_library_shared {
    name: "libEGL_swiftshader",

    defaults: [
        "libEGL_swiftshader_defaults",
        "swiftshader_client_libraries",
    ],
}

cc_library_shared {
    name: "libEGL_swiftshader_debug",

    defaults: [
        "libEGL_swiftshader_defaults",
        "swiftshader_client_libraries_debug",
    ],
}

// libGLESv1_CM libraries

cc_defaults {
    name: "libGLESv1_CM_swiftshader_defaults",

    defaults: [ "libswiftshader" ],

    cflags: [
        "-DLOG_TAG=\"libGLES_CM_swiftshader\"",
        "-DEGLAPI=",
        "-DGL_API=",
        "-DGL_APICALL=",
        "-DGL_GLEXT_PROTOTYPES",
        "-Wno-format",
    ],

    srcs: [
        "OpenGL/libGLES_CM/Buffer.cpp",
        "OpenGL/libGLES_CM/Context.cpp",
        "OpenGL/libGLES_CM/Device.cpp",
        "OpenGL/libGLES_CM/Framebuffer.cpp",
        "OpenGL/libGLES_CM/IndexDataManager.cpp",
        "OpenGL/libGLES_CM/libGLES_CM.cpp",
        "OpenGL/libGLES_CM/main.cpp",
        "OpenGL/libGLES_CM/Renderbuffer.cpp",
        "OpenGL/libGLES_CM/ResourceManager.cpp",
        "OpenGL/libGLES_CM/Texture.cpp",
        "OpenGL/libGLES_CM/utilities.cpp",
        "OpenGL/libGLES_CM/VertexDataManager.cpp",
    ],

    version_script: "OpenGL/libGLES_CM/libGLES_CM.lds",
}

cc_library_shared {
    name: "libGLESv1_CM_swiftshader",

    defaults: [
        "libGLESv1_CM_swiftshader_defaults",
        "swiftshader_client_libraries",
    ],
}

cc_library_shared {
    name: "libGLESv1_CM_swiftshader_debug",

    defaults: [
        "libGLESv1_CM_swiftshader_defaults",
        "swiftshader_client_libraries_debug",
    ],
}

// libGLESv2 libraries

cc_defaults {
    name: "libGLESv2_swiftshader_defaults",

    defaults: [ "libswiftshader" ],

    cflags: [
        "-DLOG_TAG=\"libGLESv2_swiftshader\"",
        "-DEGLAPI=",
        "-DGL_API=",
        "-DGL_APICALL=",
        "-DGL_GLEXT_PROTOTYPES",
        "-Wno-format",
    ],

    srcs: [
        "OpenGL/libGLESv2/Buffer.cpp",
        "OpenGL/libGLESv2/Context.cpp",
        "OpenGL/libGLESv2/Device.cpp",
        "OpenGL/libGLESv2/Fence.cpp",
        "OpenGL/libGLESv2/Framebuffer.cpp",
        "OpenGL/libGLESv2/IndexDataManager.cpp",
        "OpenGL/libGLESv2/libGLESv2.cpp",
        "OpenGL/libGLESv2/libGLESv3.cpp",
        "OpenGL/libGLESv2/main.cpp",
        "OpenGL/libGLESv2/entry_points.cpp",
        "OpenGL/libGLESv2/Program.cpp",
        "OpenGL/libGLESv2/Query.cpp",
        "OpenGL/libGLESv2/Renderbuffer.cpp",
        "OpenGL/libGLESv2/ResourceManager.cpp",
        "OpenGL/libGLESv2/Shader.cpp",
        "OpenGL/libGLESv2/Texture.cpp",
        "OpenGL/libGLESv2/TransformFeedback.cpp",
        "OpenGL/libGLESv2/utilities.cpp",
        "OpenGL/libGLESv2/VertexArray.cpp",
        "OpenGL/libGLESv2/VertexDataManager.cpp",
    ],

    version_script: "OpenGL/libGLESv2/libGLESv2.lds",
}

cc_library_shared {
    name: "libGLESv2_swiftshader",

    defaults: [
        "libGLESv2_swiftshader_defaults",
        "swiftshader_client_libraries",
    ],

    static_libs: [ "libswiftshader_compiler" ],
}

cc_library_shared {
    name: "libGLESv2_swiftshader_debug",

    defaults: [
        "libGLESv2_swiftshader_defaults",
        "swiftshader_client_libraries_debug",
    ],

    static_libs: [ "libswiftshader_compiler_debug" ],
}


// Vulkan

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",
        "-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",
    ],

    local_include_dirs: [ "Vulkan" ],

    version_script: "Vulkan/vk_swiftshader.lds",

    generated_headers: [ "commit_header" ],

    target: {
        android: {
            relative_install_path: "hw",
            header_libs: [
                "swiftshader_platform_headers",
                "vulkan_headers",
                "hwvulkan_headers",
            ],
            shared_libs: [
                "libnativewindow",
                "libhardware",
                "libcutils",
                "libsync",
                "liblog",
            ],
            static_libs: [
                "libarect",
            ],
        },
    },
}

cc_defaults {
    name: "libvk_swiftshader_common_defaults",

    cflags: [
        "-DLOG_TAG=\"swiftshader\"",
        "-DSWIFTSHADER_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER",
    ],

    srcs: [
        "System/Build.cpp",
        "System/CPUID.cpp",
        "System/Configurator.cpp",
        "System/Half.cpp",
        "System/Linux/MemFd.cpp",
        "System/Math.cpp",
        "System/Memory.cpp",
        "System/Socket.cpp",
        "System/Timer.cpp",
        "System/DebugAndroid.cpp",
        "System/GrallocAndroid.cpp",
        "Device/*.cpp",
        "Pipeline/*.cpp",
        "Vulkan/*.cpp",
    ],

    static_libs: [
        "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",
        "libLLVM7_swiftshader",
    ],

    defaults: [
        "libvk_swiftshader_common_defaults",
        "libvk_swiftshader_defaults"
    ],
}

cc_library_shared {
    name: "vulkan.pastel.debug",

    static_libs: [
        "libswiftshadervk_llvm_debug",
        "libLLVM7_swiftshader",
    ],

    cflags: [
        "-UNDEBUG",
        "-g",
        "-O0",
        "-DDEFAULT_THREAD_COUNT=1",
    ],

    defaults: [
        "libvk_swiftshader_common_defaults",
        "libvk_swiftshader_defaults",
    ],
}
