• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2022-2024 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
14get_target_property(COMPILER_YAML_FILES compiler_options_gen COMPILER_OPTIONS_YAML_FILES)
15string(REPLACE ";" "," COMPILER_YAML_FILES_STR "${COMPILER_YAML_FILES}")
16set(GEN_COMPILER_OPTIONS_YAML ${CMAKE_CURRENT_BINARY_DIR}/compiler_options_gen.yaml)
17add_custom_command(OUTPUT ${GEN_COMPILER_OPTIONS_YAML}
18    COMMENT "Merge yaml files: ${COMPILER_YAML_FILES_STR}"
19    COMMAND ${PANDA_ROOT}/templates/merge.rb -d "${COMPILER_YAML_FILES_STR}" -o "${GEN_COMPILER_OPTIONS_YAML}"
20    DEPENDS ${COMPILER_YAML_FILES}
21)
22add_custom_target(compiler_options_merge DEPENDS ${GEN_COMPILER_OPTIONS_YAML})
23
24set(COMPILER_OPTIONS_GEN_H ${CMAKE_CURRENT_BINARY_DIR}/compiler/generated/compiler_options_gen.h)
25panda_gen_file(
26    DATA ${GEN_COMPILER_OPTIONS_YAML}
27    TEMPLATE ${PANDA_ROOT}/templates/options/options.h.erb
28    OUTPUTFILE ${COMPILER_OPTIONS_GEN_H}
29    API ${PANDA_ROOT}/templates/common.rb
30)
31add_custom_target(compiler_options DEPENDS ${COMPILER_OPTIONS_GEN_H})
32add_dependencies(panda_gen_files compiler_options)
33