1617a3babSopenharmony_ci# Copyright (C) 2020-2023 The Khronos Group Inc. 2617a3babSopenharmony_ci# 3617a3babSopenharmony_ci# All rights reserved. 4617a3babSopenharmony_ci# 5617a3babSopenharmony_ci# Redistribution and use in source and binary forms, with or without 6617a3babSopenharmony_ci# modification, are permitted provided that the following conditions 7617a3babSopenharmony_ci# are met: 8617a3babSopenharmony_ci# 9617a3babSopenharmony_ci# Redistributions of source code must retain the above copyright 10617a3babSopenharmony_ci# notice, this list of conditions and the following disclaimer. 11617a3babSopenharmony_ci# 12617a3babSopenharmony_ci# Redistributions in binary form must reproduce the above 13617a3babSopenharmony_ci# copyright notice, this list of conditions and the following 14617a3babSopenharmony_ci# disclaimer in the documentation and/or other materials provided 15617a3babSopenharmony_ci# with the distribution. 16617a3babSopenharmony_ci# 17617a3babSopenharmony_ci# Neither the name of The Khronos Group Inc. nor the names of its 18617a3babSopenharmony_ci# contributors may be used to endorse or promote products derived 19617a3babSopenharmony_ci# from this software without specific prior written permission. 20617a3babSopenharmony_ci# 21617a3babSopenharmony_ci# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22617a3babSopenharmony_ci# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23617a3babSopenharmony_ci# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24617a3babSopenharmony_ci# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25617a3babSopenharmony_ci# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26617a3babSopenharmony_ci# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27617a3babSopenharmony_ci# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28617a3babSopenharmony_ci# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29617a3babSopenharmony_ci# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30617a3babSopenharmony_ci# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31617a3babSopenharmony_ci# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32617a3babSopenharmony_ci# POSSIBILITY OF SUCH DAMAGE. 33617a3babSopenharmony_ci 34617a3babSopenharmony_ciLOCAL_PATH := $(call my-dir) 35617a3babSopenharmony_ci 36617a3babSopenharmony_ci# Generate glslang/build_info.h 37617a3babSopenharmony_ciGLSLANG_GENERATED_INCLUDEDIR:=$(TARGET_OUT)/include 38617a3babSopenharmony_ciGLSLANG_BUILD_INFO_H:=$(GLSLANG_GENERATED_INCLUDEDIR)/glslang/build_info.h 39617a3babSopenharmony_ci 40617a3babSopenharmony_cidefine gen_glslang_build_info_h 41617a3babSopenharmony_ci$(call generate-file-dir,$(GLSLANG_GENERATED_INCLUDEDIR)/dummy_filename) 42617a3babSopenharmony_ci$(GLSLANG_BUILD_INFO_H): \ 43617a3babSopenharmony_ci $(LOCAL_PATH)/build_info.py \ 44617a3babSopenharmony_ci $(LOCAL_PATH)/build_info.h.tmpl \ 45617a3babSopenharmony_ci $(LOCAL_PATH)/CHANGES.md 46617a3babSopenharmony_ci @$(HOST_PYTHON) $(LOCAL_PATH)/build_info.py \ 47617a3babSopenharmony_ci $(LOCAL_PATH) \ 48617a3babSopenharmony_ci -i $(LOCAL_PATH)/build_info.h.tmpl \ 49617a3babSopenharmony_ci -o $(GLSLANG_BUILD_INFO_H) 50617a3babSopenharmony_ci @echo "[$(TARGET_ARCH_ABI)] Generate : $(GLSLANG_BUILD_INFO_H) <= CHANGES.md" 51617a3babSopenharmony_ciendef 52617a3babSopenharmony_ci$(eval $(call gen_glslang_build_info_h)) 53617a3babSopenharmony_ci 54617a3babSopenharmony_ciGLSLANG_OS_FLAGS := -DGLSLANG_OSINCLUDE_UNIX 55617a3babSopenharmony_ci# AMD and NV extensions are turned on by default in upstream Glslang. 56617a3babSopenharmony_ciGLSLANG_DEFINES:= -DENABLE_HLSL $(GLSLANG_OS_FLAGS) 57617a3babSopenharmony_ci 58617a3babSopenharmony_ciinclude $(CLEAR_VARS) 59617a3babSopenharmony_ciLOCAL_MODULE:=OSDependent 60617a3babSopenharmony_ciLOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES) 61617a3babSopenharmony_ciLOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH) 62617a3babSopenharmony_ciLOCAL_SRC_FILES:=glslang/OSDependent/Unix/ossource.cpp 63617a3babSopenharmony_ciLOCAL_C_INCLUDES:=$(LOCAL_PATH) $(LOCAL_PATH)/glslang/OSDependent/Unix/ 64617a3babSopenharmony_ciLOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)/glslang/OSDependent/Unix/ 65617a3babSopenharmony_ciinclude $(BUILD_STATIC_LIBRARY) 66617a3babSopenharmony_ci 67617a3babSopenharmony_ciinclude $(CLEAR_VARS) 68617a3babSopenharmony_ciGLSLANG_OUT_PATH=$(if $(call host-path-is-absolute,$(TARGET_OUT)),$(TARGET_OUT),$(abspath $(TARGET_OUT))) 69617a3babSopenharmony_ci 70617a3babSopenharmony_ci# ShaderLang.cpp depends on the generated build_info.h 71617a3babSopenharmony_ci$(LOCAL_PATH)/glslang/MachineIndependent/ShaderLang.cpp: \ 72617a3babSopenharmony_ci $(GLSLANG_BUILD_INFO_H) 73617a3babSopenharmony_ci 74617a3babSopenharmony_ciLOCAL_MODULE:=glslang 75617a3babSopenharmony_ciLOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES) 76617a3babSopenharmony_ciLOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH) 77617a3babSopenharmony_ciLOCAL_SRC_FILES:= \ 78617a3babSopenharmony_ci glslang/CInterface/glslang_c_interface.cpp \ 79617a3babSopenharmony_ci glslang/GenericCodeGen/CodeGen.cpp \ 80617a3babSopenharmony_ci glslang/GenericCodeGen/Link.cpp \ 81617a3babSopenharmony_ci glslang/HLSL/hlslAttributes.cpp \ 82617a3babSopenharmony_ci glslang/HLSL/hlslGrammar.cpp \ 83617a3babSopenharmony_ci glslang/HLSL/hlslOpMap.cpp \ 84617a3babSopenharmony_ci glslang/HLSL/hlslParseables.cpp \ 85617a3babSopenharmony_ci glslang/HLSL/hlslParseHelper.cpp \ 86617a3babSopenharmony_ci glslang/HLSL/hlslScanContext.cpp \ 87617a3babSopenharmony_ci glslang/HLSL/hlslTokenStream.cpp \ 88617a3babSopenharmony_ci glslang/MachineIndependent/attribute.cpp \ 89617a3babSopenharmony_ci glslang/MachineIndependent/Constant.cpp \ 90617a3babSopenharmony_ci glslang/MachineIndependent/glslang_tab.cpp \ 91617a3babSopenharmony_ci glslang/MachineIndependent/InfoSink.cpp \ 92617a3babSopenharmony_ci glslang/MachineIndependent/Initialize.cpp \ 93617a3babSopenharmony_ci glslang/MachineIndependent/Intermediate.cpp \ 94617a3babSopenharmony_ci glslang/MachineIndependent/intermOut.cpp \ 95617a3babSopenharmony_ci glslang/MachineIndependent/IntermTraverse.cpp \ 96617a3babSopenharmony_ci glslang/MachineIndependent/iomapper.cpp \ 97617a3babSopenharmony_ci glslang/MachineIndependent/limits.cpp \ 98617a3babSopenharmony_ci glslang/MachineIndependent/linkValidate.cpp \ 99617a3babSopenharmony_ci glslang/MachineIndependent/parseConst.cpp \ 100617a3babSopenharmony_ci glslang/MachineIndependent/ParseContextBase.cpp \ 101617a3babSopenharmony_ci glslang/MachineIndependent/ParseHelper.cpp \ 102617a3babSopenharmony_ci glslang/MachineIndependent/PoolAlloc.cpp \ 103617a3babSopenharmony_ci glslang/MachineIndependent/propagateNoContraction.cpp \ 104617a3babSopenharmony_ci glslang/MachineIndependent/reflection.cpp \ 105617a3babSopenharmony_ci glslang/MachineIndependent/RemoveTree.cpp \ 106617a3babSopenharmony_ci glslang/MachineIndependent/Scan.cpp \ 107617a3babSopenharmony_ci glslang/MachineIndependent/ShaderLang.cpp \ 108617a3babSopenharmony_ci glslang/MachineIndependent/SpirvIntrinsics.cpp \ 109617a3babSopenharmony_ci glslang/MachineIndependent/SymbolTable.cpp \ 110617a3babSopenharmony_ci glslang/MachineIndependent/Versions.cpp \ 111617a3babSopenharmony_ci glslang/MachineIndependent/preprocessor/PpAtom.cpp \ 112617a3babSopenharmony_ci glslang/MachineIndependent/preprocessor/PpContext.cpp \ 113617a3babSopenharmony_ci glslang/MachineIndependent/preprocessor/Pp.cpp \ 114617a3babSopenharmony_ci glslang/MachineIndependent/preprocessor/PpScanner.cpp \ 115617a3babSopenharmony_ci glslang/MachineIndependent/preprocessor/PpTokens.cpp 116617a3babSopenharmony_ciLOCAL_C_INCLUDES:=$(LOCAL_PATH) \ 117617a3babSopenharmony_ci $(LOCAL_PATH)/glslang/MachineIndependent \ 118617a3babSopenharmony_ci $(GLSLANG_GENERATED_INCLUDEDIR) \ 119617a3babSopenharmony_ci $(GLSLANG_OUT_PATH) 120617a3babSopenharmony_ciLOCAL_STATIC_LIBRARIES:=OSDependent 121617a3babSopenharmony_ciinclude $(BUILD_STATIC_LIBRARY) 122617a3babSopenharmony_ci 123617a3babSopenharmony_ciinclude $(CLEAR_VARS) 124617a3babSopenharmony_ci 125617a3babSopenharmony_ci# GlslangToSpv.cpp depends on the generated build_info.h 126617a3babSopenharmony_ci$(LOCAL_PATH)/SPIRV/GlslangToSpv.cpp: \ 127617a3babSopenharmony_ci $(GLSLANG_BUILD_INFO_H) 128617a3babSopenharmony_ci 129617a3babSopenharmony_ciLOCAL_MODULE:=SPIRV 130617a3babSopenharmony_ciLOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti -Werror $(GLSLANG_DEFINES) 131617a3babSopenharmony_ciLOCAL_SRC_FILES:= \ 132617a3babSopenharmony_ci SPIRV/CInterface/spirv_c_interface.cpp \ 133617a3babSopenharmony_ci SPIRV/GlslangToSpv.cpp \ 134617a3babSopenharmony_ci SPIRV/InReadableOrder.cpp \ 135617a3babSopenharmony_ci SPIRV/Logger.cpp \ 136617a3babSopenharmony_ci SPIRV/SPVRemapper.cpp \ 137617a3babSopenharmony_ci SPIRV/SpvBuilder.cpp \ 138617a3babSopenharmony_ci SPIRV/SpvPostProcess.cpp \ 139617a3babSopenharmony_ci SPIRV/SpvTools.cpp \ 140617a3babSopenharmony_ci SPIRV/disassemble.cpp \ 141617a3babSopenharmony_ci SPIRV/doc.cpp 142617a3babSopenharmony_ciLOCAL_C_INCLUDES:=$(LOCAL_PATH) \ 143617a3babSopenharmony_ci $(LOCAL_PATH)/glslang/SPIRV \ 144617a3babSopenharmony_ci $(GLSLANG_GENERATED_INCLUDEDIR) 145617a3babSopenharmony_ciLOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)/glslang/SPIRV 146617a3babSopenharmony_ciLOCAL_STATIC_LIBRARIES:=glslang 147617a3babSopenharmony_ciinclude $(BUILD_STATIC_LIBRARY) 148