1# Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14# deqp external vkutil build
15
16import("//build/ohos.gni")
17import("//third_party/vk-gl-cts/vk_gl_cts.gni")
18
19config("deqp_vkutil_config") {
20  cflags_cc = deqp_common_cflags_cc
21  defines = deqp_common_defines
22  defines += [
23    "_XOPEN_SOURCE=600",
24    "VK_USE_PLATFORM_OHOS_OPENHARMONY",
25    "DISABLE_SHADERCACHE_IPC",
26  ]
27}
28
29ohos_source_set("deqp_vkutilnoshader_source") {
30  sources = [
31    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkAllocationCallbackUtil.cpp",
32    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkApiVersion.cpp",
33    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkAppParamsUtil.cpp",
34    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkBarrierUtil.cpp",
35    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkBinaryRegistry.cpp",
36    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkBufferWithMemory.cpp",
37    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkBuilderUtil.cpp",
38    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkCmdUtil.cpp",
39    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkComputePipelineConstructionUtil.cpp",
40    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkDebugReportUtil.cpp",
41    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkDefs.cpp",
42    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkDeviceFeatures.cpp",
43    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkDeviceProperties.cpp",
44    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkDeviceUtil.cpp",
45    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkImageUtil.cpp",
46    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkImageWithMemory.cpp",
47    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkMd5Sum.hpp",
48    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkMemUtil.cpp",
49    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkNullDriver.cpp",
50    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkObjUtil.cpp",
51    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkPipelineConstructionUtil.cpp",
52    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkPlatform.cpp",
53    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkQueryUtil.cpp",
54    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp",
55    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkRef.cpp",
56    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkRefUtil.cpp",
57    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkRenderDocUtil.cpp",
58    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkResourceInterface.cpp",
59    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkSafetyCriticalUtil.cpp",
60    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkShaderObjectUtil.cpp",
61    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkShaderProgram.cpp",
62    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkStrUtil.cpp",
63    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkTypeUtil.cpp",
64    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkWsiPlatform.cpp",
65    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkWsiUtil.cpp",
66    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkYCbCrImageWithMemory.cpp",
67  ]
68
69  include_dirs = deqp_common_include_dirs
70  include_dirs += [
71    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan",
72
73    #"//third_party/vk-gl-cts/build/external/vulkancts/framework/vulkan",
74    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/generated/vulkan",
75    "//third_party/glslang",
76    "//third_party/spirv-tools/include",
77    "//third_party/spirv-tools/source",
78  ]
79
80  deps = [
81    # "//third_party/glslang/OGLCompilersDLL:libdeqp_OGLCompiler",
82    "//third_party/glslang/SPIRV:libdeqp_spirv",
83    "//third_party/glslang/SPIRV:libdeqp_spvremapper",
84    "//third_party/glslang/glslang:libdeqp_GenericCodeGen",
85    "//third_party/glslang/glslang:libdeqp_MachineIndependent",
86    "//third_party/glslang/glslang:libdeqp_OSDependent",
87
88    #":gen_framework_c",
89    "//third_party/glslang/glslang:libdeqp_glslang",
90
91    #"//third_party/glslang/hlsl:libdeqp_hlsl",
92    "//third_party/spirv-tools:libdeqp_spirvtools",
93    "//third_party/spirv-tools/source/link:libdeqp_spirvtools-link",
94    "//third_party/spirv-tools/source/opt:libdeqp_spirvtools-opt",
95    "//third_party/spirv-tools/source/reduce:libdeqp_spirvtools-reduce",
96    "//third_party/spirv-tools/source/val:libdeqp_spirvtools-val",
97    "//third_party/vk-gl-cts/framework/common:libdeqp_tcutil",
98    "//third_party/vk-gl-cts/framework/delibs/depool:libdeqp_depool",
99    "//third_party/vk-gl-cts/framework/opengl:libdeqp_glutil",
100    "//third_party/vk-gl-cts/framework/xexml:libdeqp_xexml",
101    "//third_party/zlib:libz",
102  ]
103  part_name = "acts"
104  subsystem_name = "xts"
105  configs = [ ":deqp_vkutil_config" ]
106}
107
108ohos_static_library("libdeqp_vkutilnoshader") {
109  deps = [ ":deqp_vkutilnoshader_source" ]
110  part_name = "acts"
111  subsystem_name = "xts"
112}
113
114action("gen_ext_deps") {
115  script = "//third_party/vk-gl-cts/external/vulkancts/scripts/ohos_gen_ext_deps.py -o ../../../external/vulkancts/framework/vulkan/generated/vulkan"
116  outputs = [ "$target_out_dir/gen_ext_deps.log" ]
117
118  out_path = rebase_path(
119          "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/generated/vulkan")
120  args = [ "$out_path" ]
121}
122
123action("gen_framework") {
124  script = "//third_party/vk-gl-cts/external/vulkancts/scripts/ohos_gen_framework.py -o ../../../external/vulkancts/framework/vulkan/generated/vulkan"
125  outputs = [ "$target_out_dir/gen_framework.log" ]
126
127  out_path = rebase_path(
128          "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/generated/vulkan")
129  args = [ "$out_path" ]
130  deps = [ ":gen_ext_deps" ]
131}
132
133action("gen_framework_c") {
134  script = "//third_party/vk-gl-cts/external/vulkancts/scripts/ohos_gen_framework_c.py -o ../../../external/vulkancts/framework/vulkan/generated/vulkan"
135  outputs = [ "$target_out_dir/gen_framework_c.log" ]
136
137  out_path = rebase_path(
138          #"//third_party/vk-gl-cts/build/external/vulkancts/framework/vulkan")
139          "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/generated/vulkan")
140  args = [ "$out_path" ]
141  deps = [ ":gen_framework" ]
142}
143
144ohos_source_set("deqp_vkutil_source") {
145  sources = [
146    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkPrograms.cpp",
147    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkShaderToSpirV.cpp",
148    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkSpirVAsm.cpp",
149    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/vkSpirVProgram.cpp",
150  ]
151  include_dirs = deqp_common_include_dirs
152  include_dirs += [
153    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan",
154
155    #"//third_party/vk-gl-cts/build/external/vulkancts/framework/vulkan",
156    "//third_party/vk-gl-cts/external/vulkancts/framework/vulkan/generated/vulkan",
157    "//third_party/glslang",
158    "//third_party/spirv-tools/include",
159  ]
160
161  deps = [
162    ":libdeqp_vkutilnoshader",
163
164    # "//third_party/glslang/OGLCompilersDLL:libdeqp_OGLCompiler",
165    "//third_party/glslang/SPIRV:libdeqp_spirv",
166    "//third_party/glslang/SPIRV:libdeqp_spvremapper",
167    "//third_party/glslang/glslang:libdeqp_GenericCodeGen",
168    "//third_party/glslang/glslang:libdeqp_MachineIndependent",
169    "//third_party/glslang/glslang:libdeqp_OSDependent",
170    "//third_party/glslang/glslang:libdeqp_glslang",
171
172    #"//third_party/glslang/hlsl:libdeqp_hlsl",
173    "//third_party/spirv-tools:libdeqp_spirvtools",
174    "//third_party/spirv-tools/source/link:libdeqp_spirvtools-link",
175    "//third_party/spirv-tools/source/opt:libdeqp_spirvtools-opt",
176    "//third_party/spirv-tools/source/reduce:libdeqp_spirvtools-reduce",
177    "//third_party/spirv-tools/source/val:libdeqp_spirvtools-val",
178    "//third_party/vk-gl-cts/framework/common:libdeqp_tcutil",
179    "//third_party/vk-gl-cts/framework/opengl:libdeqp_glutil",
180    "//third_party/zlib:libz",
181  ]
182  part_name = "acts"
183  subsystem_name = "xts"
184  configs = [ ":deqp_vkutil_config" ]
185}
186ohos_static_library("libdeqp_vkutil") {
187  deps = [ ":deqp_vkutil_source" ]
188  part_name = "acts"
189  subsystem_name = "xts"
190}
191