# FindFlatBuffers # -------- # Find the FlatBuffers schema headers # # This will define the following target: # # flatbuffers::flatbuffers - The flatbuffers headers find_package(FlatC REQUIRED) if(NOT TARGET flatbuffers::flatbuffers) if(ENABLE_INTERNAL_FLATBUFFERS) include(cmake/scripts/common/ModuleHelpers.cmake) set(MODULE_LC flatbuffers) # Duplicate URL may exist from FindFlatC.cmake # unset otherwise it thinks we are providing a local file location and incorrect concatenation happens unset(FLATBUFFERS_URL) SETUP_BUILD_VARS() # Override build type detection and always build as release set(FLATBUFFERS_BUILD_TYPE Release) set(CMAKE_ARGS -DFLATBUFFERS_CODE_COVERAGE=OFF -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=ON -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATC=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF -DFLATBUFFERS_BUILD_GRPCTEST=OFF -DFLATBUFFERS_BUILD_SHAREDLIB=OFF "${EXTRA_ARGS}") set(BUILD_BYPRODUCTS ${DEPENDS_PATH}/include/flatbuffers/flatbuffers.h) BUILD_DEP_TARGET() else() find_path(FLATBUFFERS_INCLUDE_DIR NAMES flatbuffers/flatbuffers.h HINTS ${DEPENDS_PATH}/include ${${CORE_PLATFORM_LC}_SEARCH_CONFIG} NO_CACHE) endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(FlatBuffers REQUIRED_VARS FLATBUFFERS_INCLUDE_DIR VERSION_VAR FLATBUFFERS_VER) add_library(flatbuffers::flatbuffers INTERFACE IMPORTED) set_target_properties(flatbuffers::flatbuffers PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${FLATBUFFERS_INCLUDE_DIR}") add_dependencies(flatbuffers::flatbuffers flatbuffers::flatc) if(TARGET flatbuffers) add_dependencies(flatbuffers::flatbuffers flatbuffers) endif() set_property(GLOBAL APPEND PROPERTY INTERNAL_DEPS_PROP flatbuffers::flatbuffers) endif()