1617a3babSopenharmony_ci# Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
2617a3babSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3617a3babSopenharmony_ci# you may not use this file except in compliance with the License.
4617a3babSopenharmony_ci# You may obtain a copy of the License at
5617a3babSopenharmony_ci#
6617a3babSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7617a3babSopenharmony_ci#
8617a3babSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9617a3babSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10617a3babSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11617a3babSopenharmony_ci# See the License for the specific language governing permissions and
12617a3babSopenharmony_ci# limitations under the License.
13617a3babSopenharmony_ci
14617a3babSopenharmony_ci# external glslang src SPIRV build
15617a3babSopenharmony_ci
16617a3babSopenharmony_ciimport("//build/ohos.gni")
17617a3babSopenharmony_ciimport("//third_party/vk-gl-cts/vk_gl_cts.gni")
18617a3babSopenharmony_ci
19617a3babSopenharmony_ciconfig("SPIRV_config") {
20617a3babSopenharmony_ci  cflags_cc = deqp_common_cflags_cc
21617a3babSopenharmony_ci
22617a3babSopenharmony_ci  cflags_cc -= [
23617a3babSopenharmony_ci    "-frtti",
24617a3babSopenharmony_ci    "-fexceptions",
25617a3babSopenharmony_ci  ]
26617a3babSopenharmony_ci  cflags_cc += [
27617a3babSopenharmony_ci    "-fPIC",
28617a3babSopenharmony_ci    "-std=c++17",
29617a3babSopenharmony_ci    "-Wno-reorder",
30617a3babSopenharmony_ci    "-fno-rtti",
31617a3babSopenharmony_ci    "-fno-exceptions",
32617a3babSopenharmony_ci    "-Wno-sign-compare",
33617a3babSopenharmony_ci    "-Wno-unused-parameter",
34617a3babSopenharmony_ci  ]
35617a3babSopenharmony_ci
36617a3babSopenharmony_ci  defines = deqp_common_defines
37617a3babSopenharmony_ci  defines -= [
38617a3babSopenharmony_ci    "DEQP_SUPPORT_DRM=0",
39617a3babSopenharmony_ci    "DEQP_TARGET_NAME=\"Default\"",
40617a3babSopenharmony_ci  ]
41617a3babSopenharmony_ci  defines += [
42617a3babSopenharmony_ci    "ENABLE_HLSL",
43617a3babSopenharmony_ci    "ENABLE_OPT=0",
44617a3babSopenharmony_ci    "GLSLANG_OSINCLUDE_UNIX",
45617a3babSopenharmony_ci  ]
46617a3babSopenharmony_ci}
47617a3babSopenharmony_ci
48617a3babSopenharmony_ci#lib SPIRV
49617a3babSopenharmony_ciohos_source_set("SPIRV_source") {
50617a3babSopenharmony_ci  sources = [
51617a3babSopenharmony_ci    "//third_party/glslang/SPIRV/CInterface/spirv_c_interface.cpp",
52617a3babSopenharmony_ci    "//third_party/glslang/SPIRV/GlslangToSpv.cpp",
53617a3babSopenharmony_ci    "//third_party/glslang/SPIRV/InReadableOrder.cpp",
54617a3babSopenharmony_ci    "//third_party/glslang/SPIRV/Logger.cpp",
55617a3babSopenharmony_ci    "//third_party/glslang/SPIRV/SpvBuilder.cpp",
56617a3babSopenharmony_ci    "//third_party/glslang/SPIRV/SpvPostProcess.cpp",
57617a3babSopenharmony_ci    "//third_party/glslang/SPIRV/SpvTools.cpp",
58617a3babSopenharmony_ci    "//third_party/glslang/SPIRV/disassemble.cpp",
59617a3babSopenharmony_ci    "//third_party/glslang/SPIRV/doc.cpp",
60617a3babSopenharmony_ci  ]
61617a3babSopenharmony_ci  include_dirs = [
62617a3babSopenharmony_ci    "//third_party/zlib/src",
63617a3babSopenharmony_ci    "//third_party/glslang",
64617a3babSopenharmony_ci    "//third_party/glslang/glslang/SPIRV",
65617a3babSopenharmony_ci    "//third_party/vk-gl-cts/build/include",
66617a3babSopenharmony_ci  ]
67617a3babSopenharmony_ci  include_dirs += deqp_common_include_dirs
68617a3babSopenharmony_ci
69617a3babSopenharmony_ci  deps = [
70617a3babSopenharmony_ci    #"//third_party/glslang/OGLCompilersDLL:libdeqp_OGLCompiler",
71617a3babSopenharmony_ci    "//third_party/glslang/glslang:libdeqp_GenericCodeGen",
72617a3babSopenharmony_ci    "//third_party/glslang/glslang:libdeqp_MachineIndependent",
73617a3babSopenharmony_ci    "//third_party/glslang/glslang:libdeqp_OSDependent",
74617a3babSopenharmony_ci  ]
75617a3babSopenharmony_ci  configs = [ ":SPIRV_config" ]
76617a3babSopenharmony_ci}
77617a3babSopenharmony_ci
78617a3babSopenharmony_ciohos_shared_library("libdeqp_spirv") {
79617a3babSopenharmony_ci  deps = [ ":SPIRV_source" ]
80617a3babSopenharmony_ci  part_name = "graphic_2d"
81617a3babSopenharmony_ci  subsystem_name = "graphic"
82617a3babSopenharmony_ci}
83617a3babSopenharmony_ci
84617a3babSopenharmony_ci#lib SPVRemapper
85617a3babSopenharmony_ciohos_source_set("SPVRemapper_source") {
86617a3babSopenharmony_ci  sources = [
87617a3babSopenharmony_ci    "//third_party/glslang/SPIRV/SPVRemapper.cpp",
88617a3babSopenharmony_ci    "//third_party/glslang/SPIRV/doc.cpp",
89617a3babSopenharmony_ci  ]
90617a3babSopenharmony_ci  include_dirs = [
91617a3babSopenharmony_ci    "//third_party/zlib/src",
92617a3babSopenharmony_ci    "//third_party/glslang",
93617a3babSopenharmony_ci    "//third_party/glslang/glslang/SPIRV",
94617a3babSopenharmony_ci    "//third_party/vk-gl-cts/build/include",
95617a3babSopenharmony_ci  ]
96617a3babSopenharmony_ci  include_dirs += deqp_common_include_dirs
97617a3babSopenharmony_ci
98617a3babSopenharmony_ci  deps = []
99617a3babSopenharmony_ci  configs = [ ":SPIRV_config" ]
100617a3babSopenharmony_ci}
101617a3babSopenharmony_ci
102617a3babSopenharmony_ciohos_shared_library("libdeqp_spvremapper") {
103617a3babSopenharmony_ci  deps = [ ":SPVRemapper_source" ]
104617a3babSopenharmony_ci  part_name = "graphic_2d"
105617a3babSopenharmony_ci  subsystem_name = "graphic"
106617a3babSopenharmony_ci}
107