set(_chir_flatbuffer_sources)
if(NOT CANGJIE_CJPM_BUILD_TYPE)
if(DEFINED CANGJIE_SCHEMA_DIR)
set(CHIR_SCHEMA_SRC ${CANGJIE_SCHEMA_DIR}/PackageFormat.fbs)
else()
set(CHIR_SCHEMA_SRC ${CMAKE_SOURCE_DIR}/../cangjie_compiler/schema/PackageFormat.fbs)
endif()
if(NOT EXISTS ${CHIR_SCHEMA_SRC})
message(FATAL_ERROR "CHIR PackageFormat.fbs not found: ${CHIR_SCHEMA_SRC}")
endif()
get_filename_component(FILENAME ${CHIR_SCHEMA_SRC} NAME_WE)
set(CHIR_FB_GEN_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/GenerateFlatbuffers.cmake)
set(CHIR_FB_GEN_ARGS
-DCHIR_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
-DCHIR_BUILD_DIR=${CMAKE_BINARY_DIR}
-DCHIR_REPO_DIR=${CMAKE_SOURCE_DIR}
-DCHIR_SCHEMA_SRC=${CHIR_SCHEMA_SRC})
set(_chir_flatbuffer_sources
flatbuffer_object.cj
decode.cj
table.cj
builder.cj
constants.cj
exception.cj
${FILENAME}_generated.cj)
set(CHIR_FLATC_SOURCE_FILES
${CMAKE_CURRENT_SOURCE_DIR}/flatbuffer_object.cj
${CMAKE_CURRENT_SOURCE_DIR}/decode.cj
${CMAKE_CURRENT_SOURCE_DIR}/table.cj
${CMAKE_CURRENT_SOURCE_DIR}/builder.cj
${CMAKE_CURRENT_SOURCE_DIR}/constants.cj
${CMAKE_CURRENT_SOURCE_DIR}/exception.cj
${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}_generated.cj)
add_custom_command(
OUTPUT ${CHIR_FLATC_SOURCE_FILES}
COMMAND ${CMAKE_COMMAND} ${CHIR_FB_GEN_ARGS} -P ${CHIR_FB_GEN_SCRIPT}
DEPENDS flatbuffers ${CHIR_SCHEMA_SRC} ${CHIR_FB_GEN_SCRIPT}
${CMAKE_CURRENT_SOURCE_DIR}/patch_table.py
COMMENT "generate cangjie flatbuffers files for chir"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_custom_target(CHIR_FLATC_OUTPUTS ALL DEPENDS ${CHIR_FLATC_SOURCE_FILES})
if(EXISTS "${CMAKE_BINARY_DIR}/bin/flatc")
execute_process(
COMMAND ${CMAKE_COMMAND} ${CHIR_FB_GEN_ARGS} -P ${CHIR_FB_GEN_SCRIPT}
RESULT_VARIABLE _chir_gen_result)
if(NOT _chir_gen_result EQUAL 0)
message(FATAL_ERROR "CHIR flatbuffers configure-time generation failed")
endif()
endif()
set(CHIR_FLATC_SOURCE_FILES ${CHIR_FLATC_SOURCE_FILES} PARENT_SCOPE)
endif()
set(_chir_srcs ${_chir_flatbuffer_sources})
file(GLOB _chir_glob CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/*.cj")
foreach(_chir_file ${_chir_glob})
get_filename_component(_chir_basename ${_chir_file} NAME)
if(NOT _chir_basename IN_LIST _chir_flatbuffer_sources)
list(APPEND _chir_srcs ${_chir_basename})
endif()
endforeach()
set(CHIR_SRCS ${_chir_srcs} CACHE INTERNAL "")
add_subdirectory(to_string_macro)