file( GLOB_RECURSE FLATBUFFER_SOURCES "*.fbs" ) foreach (FLATBUFFER_SOURCE IN LISTS ${FLATBUFFER_SOURCES}) cmake_path( GET ${FLATBUFFER_SOURCE} FILENAME FLATBUFFER_SOURCE_NAME ) string( CONCAT FLATBUFFER_GENERATED_SOURCE_NAME ${FLATBUFFER_SOURCE_NAME} "_generated" ) cmake_path( REPLACE_EXTENSION ${FLATBUFFER_GENERATED_SOURCE_NAME} ".h" OUTPUT_VARIABLE FLATBUFFER_GENERATED_HEADER ) list(APPEND FLATBUFFER_GENERATED_HEADERS ${FLATBUFFER_GENERATED_HEADER}) endforeach () add_custom_target( flatbuffer_headers COMMENT "Generating flatbuffer headers" DEPENDS ${FLATBUFFER_SOURCES} BYPRODUCTS ${FLATBUFFER_GENERATED_HEADERS} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND flatc --cpp --cpp-std "c++17" ${FLATBUFFER_SOURCES} VERBATIM )