From 311d2dfb6840a10ca076beb57274bbeee7fa8b45 Mon Sep 17 00:00:00 2001 From: Hyeongseok Oh Date: Thu, 8 Feb 2024 17:53:35 +0900 Subject: [PATCH] [infra] Introduce FlatBuffers 23.5.26 cmake (#12617) This commit introduces FlatBuffers 23.5.26 cmake package config. This commit includes FlatBuffers 2.0 cmake versioning to prepare migration. ONE-DCO-1.0-Signed-off-by: Hyeongseok Oh --- .../FlatBuffersSourceConfig.cmake | 22 ++++++++++ .../FlatBuffersSourceConfigVersion.cmake | 10 +++++ .../FlatBuffersConfig.cmake | 0 .../FlatBuffersConfigVersion.cmake | 10 +++++ .../FlatBuffersConfig.cmake | 41 +++++++++++++++++++ .../FlatBuffersConfigVersion.cmake | 10 +++++ .../cmake/packages/TensorFlowGpuConfig.cmake | 2 +- .../TensorFlowLiteConfig.cmake | 2 +- runtime/libs/circle-schema/CMakeLists.txt | 2 +- runtime/onert/core/CMakeLists.txt | 2 +- tests/custom_op/CMakeLists.txt | 2 +- 11 files changed, 98 insertions(+), 5 deletions(-) create mode 100644 infra/cmake/packages/FlatBuffersSource-23.5.26/FlatBuffersSourceConfig.cmake create mode 100644 infra/cmake/packages/FlatBuffersSource-23.5.26/FlatBuffersSourceConfigVersion.cmake rename infra/nnfw/cmake/packages/{ => FlatBuffers-2.0}/FlatBuffersConfig.cmake (100%) create mode 100644 infra/nnfw/cmake/packages/FlatBuffers-2.0/FlatBuffersConfigVersion.cmake create mode 100644 infra/nnfw/cmake/packages/FlatBuffers-23.5.26/FlatBuffersConfig.cmake create mode 100644 infra/nnfw/cmake/packages/FlatBuffers-23.5.26/FlatBuffersConfigVersion.cmake diff --git a/infra/cmake/packages/FlatBuffersSource-23.5.26/FlatBuffersSourceConfig.cmake b/infra/cmake/packages/FlatBuffersSource-23.5.26/FlatBuffersSourceConfig.cmake new file mode 100644 index 00000000000..9725f3cf856 --- /dev/null +++ b/infra/cmake/packages/FlatBuffersSource-23.5.26/FlatBuffersSourceConfig.cmake @@ -0,0 +1,22 @@ +function(_FlatBuffersSource_import) + if(NOT DOWNLOAD_FLATBUFFERS) + set(FlatBuffersSource_FOUND FALSE PARENT_SCOPE) + return() + endif(NOT DOWNLOAD_FLATBUFFERS) + + nnas_include(ExternalSourceTools) + nnas_include(OptionTools) + + envoption(EXTERNAL_DOWNLOAD_SERVER "https://github.com") + envoption(FLATBUFFERS_23_5_26_URL ${EXTERNAL_DOWNLOAD_SERVER}/google/flatbuffers/archive/v23.5.26.tar.gz) + ExternalSource_Download(FLATBUFFERS + DIRNAME FLATBUFFERS-23.5.26 + CHECKSUM MD5=2ef00eaaa86ab5e9ad5eafe09c2e7b60 + URL ${FLATBUFFERS_23_5_26_URL} + ) + + set(FlatBuffersSource_DIR ${FLATBUFFERS_SOURCE_DIR} PARENT_SCOPE) + set(FlatBuffersSource_FOUND TRUE PARENT_SCOPE) +endfunction(_FlatBuffersSource_import) + +_FlatBuffersSource_import() diff --git a/infra/cmake/packages/FlatBuffersSource-23.5.26/FlatBuffersSourceConfigVersion.cmake b/infra/cmake/packages/FlatBuffersSource-23.5.26/FlatBuffersSourceConfigVersion.cmake new file mode 100644 index 00000000000..f8b165ca145 --- /dev/null +++ b/infra/cmake/packages/FlatBuffersSource-23.5.26/FlatBuffersSourceConfigVersion.cmake @@ -0,0 +1,10 @@ +set(PACKAGE_VERSION "23.5.26") +set(PACKAGE_VERSION_EXACT FALSE) +set(PACKAGE_VERSION_COMPATIBLE FALSE) +set(PACKAGE_VERSION_UNSUITABLE TRUE) + +if(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + set(PACKAGE_VERSION_UNSUITABLE FALSE) +endif(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION) diff --git a/infra/nnfw/cmake/packages/FlatBuffersConfig.cmake b/infra/nnfw/cmake/packages/FlatBuffers-2.0/FlatBuffersConfig.cmake similarity index 100% rename from infra/nnfw/cmake/packages/FlatBuffersConfig.cmake rename to infra/nnfw/cmake/packages/FlatBuffers-2.0/FlatBuffersConfig.cmake diff --git a/infra/nnfw/cmake/packages/FlatBuffers-2.0/FlatBuffersConfigVersion.cmake b/infra/nnfw/cmake/packages/FlatBuffers-2.0/FlatBuffersConfigVersion.cmake new file mode 100644 index 00000000000..e4a87a7d540 --- /dev/null +++ b/infra/nnfw/cmake/packages/FlatBuffers-2.0/FlatBuffersConfigVersion.cmake @@ -0,0 +1,10 @@ +set(PACKAGE_VERSION "2.0") +set(PACKAGE_VERSION_EXACT FALSE) +set(PACKAGE_VERSION_COMPATIBLE FALSE) +set(PACKAGE_VERSION_UNSUITABLE TRUE) + +if(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + set(PACKAGE_VERSION_UNSUITABLE FALSE) +endif(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION) diff --git a/infra/nnfw/cmake/packages/FlatBuffers-23.5.26/FlatBuffersConfig.cmake b/infra/nnfw/cmake/packages/FlatBuffers-23.5.26/FlatBuffersConfig.cmake new file mode 100644 index 00000000000..eefa2033ebe --- /dev/null +++ b/infra/nnfw/cmake/packages/FlatBuffers-23.5.26/FlatBuffersConfig.cmake @@ -0,0 +1,41 @@ +function(_FlatBuffers_import) + + find_package(Flatbuffers QUIET) + if(Flatbuffers_FOUND) + set(FlatBuffers_FOUND TRUE PARENT_SCOPE) + return() + endif(Flatbuffers_FOUND) + + nnas_find_package(FlatBuffersSource EXACT 23.5.26 QUIET) + + if(NOT FlatBuffersSource_FOUND) + set(FlatBuffers_FOUND FALSE PARENT_SCOPE) + return() + endif(NOT FlatBuffersSource_FOUND) + + # From FlatBuffers's CMakeLists.txt + list(APPEND FlatBuffers_Library_SRCS "${FlatBuffersSource_DIR}/src/annotated_binary_text_gen.cpp") + list(APPEND FlatBuffers_Library_SRCS "${FlatBuffersSource_DIR}/src/bfbs_gen_lua.cpp") + list(APPEND FlatBuffers_Library_SRCS "${FlatBuffersSource_DIR}/src/bfbs_gen_nim.cpp") + list(APPEND FlatBuffers_Library_SRCS "${FlatBuffersSource_DIR}/src/binary_annotator.cpp") + list(APPEND FlatBuffers_Library_SRCS "${FlatBuffersSource_DIR}/src/code_generators.cpp") + list(APPEND FlatBuffers_Library_SRCS "${FlatBuffersSource_DIR}/src/flatc.cpp") + list(APPEND FlatBuffers_Library_SRCS "${FlatBuffersSource_DIR}/src/idl_gen_fbs.cpp") + list(APPEND FlatBuffers_Library_SRCS "${FlatBuffersSource_DIR}/src/idl_gen_text.cpp") + list(APPEND FlatBuffers_Library_SRCS "${FlatBuffersSource_DIR}/src/idl_parser.cpp") + list(APPEND FlatBuffers_Library_SRCS "${FlatBuffersSource_DIR}/src/reflection.cpp") + list(APPEND FlatBuffers_Library_SRCS "${FlatBuffersSource_DIR}/src/util.cpp") + + if(NOT TARGET flatbuffers::flatbuffers-23.5.26) + add_library(flatbuffers-23.5.26 ${FlatBuffers_Library_SRCS}) + target_include_directories(flatbuffers-23.5.26 PUBLIC "${FlatBuffersSource_DIR}/include") + set_property(TARGET flatbuffers-23.5.26 PROPERTY POSITION_INDEPENDENT_CODE ON) + target_compile_options(flatbuffers-23.5.26 PUBLIC $<$:-Wno-sign-compare>) + + add_library(flatbuffers::flatbuffers-23.5.26 ALIAS flatbuffers-23.5.26) + endif(NOT TARGET flatbuffers::flatbuffers-23.5.26) + + set(FlatBuffers_FOUND TRUE PARENT_SCOPE) + endfunction(_FlatBuffers_import) + + _FlatBuffers_import() diff --git a/infra/nnfw/cmake/packages/FlatBuffers-23.5.26/FlatBuffersConfigVersion.cmake b/infra/nnfw/cmake/packages/FlatBuffers-23.5.26/FlatBuffersConfigVersion.cmake new file mode 100644 index 00000000000..f8b165ca145 --- /dev/null +++ b/infra/nnfw/cmake/packages/FlatBuffers-23.5.26/FlatBuffersConfigVersion.cmake @@ -0,0 +1,10 @@ +set(PACKAGE_VERSION "23.5.26") +set(PACKAGE_VERSION_EXACT FALSE) +set(PACKAGE_VERSION_COMPATIBLE FALSE) +set(PACKAGE_VERSION_UNSUITABLE TRUE) + +if(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + set(PACKAGE_VERSION_UNSUITABLE FALSE) +endif(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION) diff --git a/infra/nnfw/cmake/packages/TensorFlowGpuConfig.cmake b/infra/nnfw/cmake/packages/TensorFlowGpuConfig.cmake index f36e98f5475..a75e0f2cd4e 100644 --- a/infra/nnfw/cmake/packages/TensorFlowGpuConfig.cmake +++ b/infra/nnfw/cmake/packages/TensorFlowGpuConfig.cmake @@ -38,7 +38,7 @@ function(_Build_TfliteGpuDelagate_) nnas_find_package(Egl_HeadersSource QUIET) return_unless(Egl_HeadersSource_FOUND) - nnfw_find_package(FlatBuffers QUIET) + nnfw_find_package(FlatBuffers EXACT 2.0 QUIET) return_unless(FlatBuffers_FOUND) if(NOT TARGET TensorFlowGpu) diff --git a/infra/nnfw/cmake/packages/TensorFlowLite-2.8.0/TensorFlowLiteConfig.cmake b/infra/nnfw/cmake/packages/TensorFlowLite-2.8.0/TensorFlowLiteConfig.cmake index 60f7f54509f..ecc50f272a0 100644 --- a/infra/nnfw/cmake/packages/TensorFlowLite-2.8.0/TensorFlowLiteConfig.cmake +++ b/infra/nnfw/cmake/packages/TensorFlowLite-2.8.0/TensorFlowLiteConfig.cmake @@ -26,7 +26,7 @@ if(BUILD_TENSORFLOW_LITE) return_unless(Eigen_FOUND) nnas_find_package(Farmhash QUIET) return_unless(Farmhash_FOUND) - nnfw_find_package(FlatBuffers QUIET) + nnfw_find_package(FlatBuffers EXACT 2.0 QUIET) return_unless(FlatBuffers_FOUND) nnas_find_package(TensorFlowGEMMLowpSource EXACT 2.8.0 QUIET) return_unless(TensorFlowGEMMLowpSource_FOUND) diff --git a/runtime/libs/circle-schema/CMakeLists.txt b/runtime/libs/circle-schema/CMakeLists.txt index 208103f1c65..20f17548e9b 100644 --- a/runtime/libs/circle-schema/CMakeLists.txt +++ b/runtime/libs/circle-schema/CMakeLists.txt @@ -1,6 +1,6 @@ add_library(circle_schema INTERFACE) -nnfw_find_package(FlatBuffers REQUIRED) +nnfw_find_package(FlatBuffers EXACT 2.0 REQUIRED) target_link_libraries(circle_schema INTERFACE flatbuffers::flatbuffers) diff --git a/runtime/onert/core/CMakeLists.txt b/runtime/onert/core/CMakeLists.txt index 7ff171b27ca..60c1bda036d 100644 --- a/runtime/onert/core/CMakeLists.txt +++ b/runtime/onert/core/CMakeLists.txt @@ -19,7 +19,7 @@ set_target_properties(onert_core PROPERTIES POSITION_INDEPENDENT_CODE ON) target_include_directories(onert_core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) # Flatbuffer for loader -nnfw_find_package(FlatBuffers REQUIRED) +nnfw_find_package(FlatBuffers EXACT 2.0 REQUIRED) target_link_libraries(onert_core PRIVATE flatbuffers::flatbuffers) target_link_libraries(onert_core PRIVATE circle_schema) diff --git a/tests/custom_op/CMakeLists.txt b/tests/custom_op/CMakeLists.txt index 9b46a138691..84d682a9ab6 100644 --- a/tests/custom_op/CMakeLists.txt +++ b/tests/custom_op/CMakeLists.txt @@ -2,7 +2,7 @@ if(NOT BUILD_ONERT) return() endif(NOT BUILD_ONERT) -nnfw_find_package(FlatBuffers QUIET) +nnfw_find_package(FlatBuffers EXACT 2.0 QUIET) if(NOT FlatBuffers_FOUND) message(STATUS "Skip build custom operation test: cannot find flatbuffers") return()