1# Copyright (c) 2021-2022 Huawei Device 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 14set(INTRINSICS_STUB_INL ${PANDA_BINARY_ROOT}/compiler/generated/intrinsics_stub.inl) 15panda_gen_file( 16 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 17 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/intrinsics/intrinsics_stub.inl.erb 18 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 19 EXTRA_DEPENDENCIES plugin_options_merge 20 OUTPUTFILE ${INTRINSICS_STUB_INL} 21) 22 23set(INTRINSICS_STUB_INL_H ${PANDA_BINARY_ROOT}/compiler/generated/intrinsics_stub.inl.h) 24panda_gen_file( 25 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 26 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/intrinsics/intrinsics_stub.inl.h.erb 27 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 28 EXTRA_DEPENDENCIES plugin_options_merge 29 OUTPUTFILE ${INTRINSICS_STUB_INL_H} 30) 31 32set(INTRINSICS_CODEGEN_EXT_INL_H ${PANDA_BINARY_ROOT}/compiler/generated/intrinsics_codegen_ext.inl.h) 33panda_gen_file( 34 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 35 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/intrinsics/intrinsics_codegen_ext.inl.h.erb 36 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 37 EXTRA_DEPENDENCIES plugin_options_merge 38 OUTPUTFILE ${INTRINSICS_CODEGEN_EXT_INL_H} 39) 40 41set(INTRINSICS_IR_BUILD_STATIC_CALL_INL ${PANDA_BINARY_ROOT}/compiler/generated/intrinsics_ir_build_static_call.inl) 42panda_gen_file( 43 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 44 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/intrinsics/intrinsics_ir_build_static_call.inl.erb 45 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 46 EXTRA_DEPENDENCIES plugin_options_merge 47 OUTPUTFILE ${INTRINSICS_IR_BUILD_STATIC_CALL_INL} 48) 49 50set(INTRINSICS_IR_BUILD_VIRTUAL_CALL_INL ${PANDA_BINARY_ROOT}/compiler/generated/intrinsics_ir_build_virtual_call.inl) 51panda_gen_file( 52 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 53 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/intrinsics/intrinsics_ir_build_virtual_call.inl.erb 54 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 55 EXTRA_DEPENDENCIES plugin_options_merge 56 OUTPUTFILE ${INTRINSICS_IR_BUILD_VIRTUAL_CALL_INL} 57) 58 59set(INTRINSICS_IR_BUILD_INL_H ${PANDA_BINARY_ROOT}/compiler/generated/intrinsics_ir_build.inl.h) 60panda_gen_file( 61 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 62 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/intrinsics/intrinsics_ir_build.inl.h.erb 63 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 64 EXTRA_DEPENDENCIES plugin_options_merge 65 OUTPUTFILE ${INTRINSICS_IR_BUILD_INL_H} 66) 67 68set(INTRINSICS_CAN_ENCODE_INL ${PANDA_BINARY_ROOT}/compiler/generated/intrinsics_can_encode.inl) 69panda_gen_file( 70 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 71 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/intrinsics/intrinsics_can_encode.inl.erb 72 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 73 EXTRA_DEPENDENCIES plugin_options_merge 74 OUTPUTFILE ${INTRINSICS_CAN_ENCODE_INL} 75) 76 77set(IR_DYN_BASE_TYPES_H ${PANDA_BINARY_ROOT}/compiler/generated/ir-dyn-base-types.h) 78panda_gen_file( 79 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 80 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/ir-dyn-base-types.h.erb 81 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 82 EXTRA_DEPENDENCIES ${YAML_FILES} 83 OUTPUTFILE ${IR_DYN_BASE_TYPES_H} 84) 85 86add_custom_target(ir_dyn_base_types_h DEPENDS ${IR_DYN_BASE_TYPES_H}) 87 88set(SOURCE_LANGUAGES_H ${PANDA_BINARY_ROOT}/compiler/generated/source_languages.h) 89panda_gen_file( 90 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 91 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/source_languages.h.erb 92 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 93 EXTRA_DEPENDENCIES ${YAML_FILES} 94 OUTPUTFILE ${SOURCE_LANGUAGES_H} 95) 96 97add_custom_target(source_languages_h DEPENDS ${SOURCE_LANGUAGES_H}) 98 99set(CODEGEN_LANGUAGE_EXTENSIONS_H ${PANDA_BINARY_ROOT}/compiler/generated/codegen_language_extensions.h) 100panda_gen_file( 101 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 102 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/codegen_language_extensions.h.erb 103 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 104 EXTRA_DEPENDENCIES ${YAML_FILES} 105 OUTPUTFILE ${CODEGEN_LANGUAGE_EXTENSIONS_H} 106) 107 108set(COMPILER_INTERFACE_EXTENSIONS_H ${PANDA_BINARY_ROOT}/compiler/generated/compiler_interface_extensions.inl.h) 109panda_gen_file( 110 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 111 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/compiler_interface_extensions.inl.h.erb 112 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 113 EXTRA_DEPENDENCIES ${YAML_FILES} 114 OUTPUTFILE ${COMPILER_INTERFACE_EXTENSIONS_H} 115) 116 117set(INST_BUILDER_EXTENSIONS_H ${PANDA_BINARY_ROOT}/compiler/generated/inst_builder_extensions.inl.h) 118panda_gen_file( 119 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 120 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/inst_builder_extensions.inl.h.erb 121 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 122 EXTRA_DEPENDENCIES ${YAML_FILES} 123 OUTPUTFILE ${INST_BUILDER_EXTENSIONS_H} 124) 125 126set(INTRINSICS_EXTENSIONS_H ${PANDA_BINARY_ROOT}/compiler/generated/intrinsics_extensions.inl.h) 127panda_gen_file( 128 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 129 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/intrinsics_extensions.inl.h.erb 130 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 131 EXTRA_DEPENDENCIES ${YAML_FILES} 132 OUTPUTFILE ${INTRINSICS_EXTENSIONS_H} 133) 134 135set(INTRINSICS_INLINE_INL ${PANDA_BINARY_ROOT}/compiler/generated/intrinsics_inline.inl) 136panda_gen_file( 137 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 138 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/intrinsics/intrinsics_inline.inl.erb 139 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 140 EXTRA_DEPENDENCIES plugin_options_merge 141 OUTPUTFILE ${INTRINSICS_INLINE_INL} 142) 143 144set(INTRINSICS_TYPES_RESOLVING_INL_H ${PANDA_BINARY_ROOT}/compiler/generated/intrinsics_types_resolving.inl.h) 145panda_gen_file( 146 DATAFILE ${GEN_PLUGIN_OPTIONS_YAML} 147 TEMPLATE ${PANDA_ROOT}/compiler/optimizer/templates/intrinsics/intrinsics_types_resolving.inl.h.erb 148 REQUIRES ${PANDA_ROOT}/templates/plugin_options.rb 149 EXTRA_DEPENDENCIES plugin_options_merge 150 OUTPUTFILE ${INTRINSICS_TYPES_RESOLVING_INL_H} 151) 152 153add_custom_target(compiler_intrinsics DEPENDS 154 plugin_options_gen 155 ${INTRINSICS_STUB_INL} 156 ${INTRINSICS_STUB_INL_H} 157 ${INTRINSICS_CODEGEN_EXT_INL_H} 158 ${INTRINSICS_IR_BUILD_STATIC_CALL_INL} 159 ${INTRINSICS_IR_BUILD_VIRTUAL_CALL_INL} 160 ${INTRINSICS_IR_BUILD_INL_H} 161 ${INTRINSICS_CAN_ENCODE_INL} 162 ${IR_DYN_BASE_TYPES_H} 163 ${SOURCE_LANGUAGES_H} 164 ${CODEGEN_LANGUAGE_EXTENSIONS_H} 165 ${COMPILER_INTERFACE_EXTENSIONS_H} 166 ${INST_BUILDER_EXTENSIONS_H} 167 ${INTRINSICS_EXTENSIONS_H} 168 ${INTRINSICS_INLINE_INL} 169 ${INTRINSICS_TYPES_RESOLVING_INL_H} 170) 171 172add_dependencies(arkcompiler compiler_intrinsics) 173