Files
edgetx-gx12/radio/src/storage/yaml/CMakeLists.txt
T

83 lines
3.1 KiB
CMake

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
set(SRC ${SRC} storage/yaml/yaml_tree_walker.cpp
storage/yaml/yaml_parser.cpp
storage/yaml/yaml_bits.cpp
storage/yaml/yaml_datastructs.cpp)
if(STORAGE_MODELSLIST)
set(SRC ${SRC} storage/yaml/yaml_modelslist.cpp)
endif()
# Warning: this file must be kept in sync with 'yaml_datastructs.cpp'
# in the same directory.
if(PCB STREQUAL X12S)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x12s.cpp)
elseif(PCB STREQUAL X10)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x10.cpp)
elseif(PCB STREQUAL NV14)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_nv14.cpp)
elseif(PCB STREQUAL X7)
if(PCBREV STREQUAL T12)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_t12.cpp)
elseif(PCBREV STREQUAL TLITE)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_tlite.cpp)
elseif(PCBREV STREQUAL TX12)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_tx12.cpp)
elseif(PCBREV STREQUAL ZORRO)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_zorro.cpp)
elseif(PCBREV STREQUAL T8)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_t8.cpp)
elseif(PCBREV STREQUAL TPRO)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_tpro.cpp)
else()
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x7.cpp)
endif()
elseif(PCB STREQUAL X9LITE)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x9lite.cpp)
elseif(PCB STREQUAL X9LITES)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x9lites.cpp)
elseif(PCB STREQUAL XLITE)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_xlite.cpp)
elseif(PCB STREQUAL XLITES)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_xlites.cpp)
elseif(PCB STREQUAL X9E)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x9e.cpp)
elseif((PCB STREQUAL X9D) OR (PCB STREQUAL X9D+))
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_x9d.cpp)
else()
message(FATAL_ERROR "PCB '${PCB}' is not supported by YAML storage")
endif()
set(YAML_GEN ${RADIO_DIRECTORY}/util/generate_yaml.py)
set(YAML_GEN_TEMPLATE ${RADIO_DIRECTORY}/util/yaml_parser.tmpl)
SET(YAML_NODES "\"RadioData,ModelData,PartialModel\"")
set(YAML_GEN_ARGS myeeprom.h ${YAML_GEN_TEMPLATE} ${YAML_NODES} -DYAML_GENERATOR)
get_property(flags DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY COMPILE_DEFINITIONS)
foreach(flag ${flags})
#message(STATUS "dir='${dir}'")
set(YAML_GEN_ARGS ${YAML_GEN_ARGS} -D${flag})
endforeach()
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
foreach(dir ${dirs})
#message(STATUS "dir='${dir}'")
set(YAML_GEN_ARGS ${YAML_GEN_ARGS} -I${dir})
endforeach()
set(YAML_GEN_ARGS ${YAML_GEN_ARGS} -DRTOS_COOS -Wno-inconsistent-missing-override)
#message(STATUS "YAML_GEN_ARGS=${YAML_GEN_ARGS}")
add_custom_target(yaml_data
WORKING_DIRECTORY ${RADIO_DIRECTORY}/src
COMMAND ${PYTHON_EXECUTABLE} ${YAML_GEN} ${YAML_GEN_ARGS} > ${YAML_GEN_OUTPUT}
DEPENDS ${RADIO_DIRECTORY}/src/datastructs.h
${RADIO_DIRECTORY}/src/dataconstants.h
${RADIO_DIRECTORY}/src/myeeprom.h
${RADIO_DIRECTORY}/util/generate_yaml.py
)