|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- set(flatbuffers_CXXFLAGS "-D_FORTIFY_SOURCE=2 -O2")
- set(flatbuffers_CFLAGS "-D_FORTIFY_SOURCE=2 -O2")
- if(WIN32)
- set(flatbuffers_USE_STATIC_LIBS ON)
- endif()
-
- if(ENABLE_GITEE)
- set(REQ_URL "https://gitee.com/mirrors/flatbuffers/repository/archive/v1.11.0.tar.gz")
- set(MD5 "4051dc865063ffa724c4264dea8dbbe9")
- else()
- set(REQ_URL "https://github.com/google/flatbuffers/archive/v1.11.0.tar.gz")
- set(MD5 "02c64880acb89dbd57eebacfd67200d8")
- endif()
-
- mindspore_add_pkg(flatbuffers
- VER 1.11.0
- LIBS flatbuffers
- EXE flatc
- URL ${REQ_URL}
- MD5 ${MD5}
- CMAKE_OPTION -DFLATBUFFERS_BUILD_TESTS=OFF -DCMAKE_INSTALL_LIBDIR=lib)
-
- include_directories(${flatbuffers_INC})
- add_library(mindspore::flatbuffers ALIAS flatbuffers::flatbuffers)
- add_executable(mindspore::flatc ALIAS flatbuffers::flatc)
- function(ms_build_flatbuffers source_schema_files
- source_schema_dirs
- custom_target_name
- generated_output_dir)
-
- set(total_schema_dirs "")
- set(total_generated_files "")
- set(FLATC mindspore::flatc)
- foreach(schema_dir ${source_schema_dirs})
- set(total_schema_dirs -I ${schema_dir} ${total_schema_dirs})
- endforeach()
-
- foreach(schema ${source_schema_files})
- get_filename_component(filename ${schema} NAME_WE)
- if(NOT ${generated_output_dir} STREQUAL "")
- set(generated_file ${generated_output_dir}/${filename}_generated.h)
- add_custom_command(
- OUTPUT ${generated_file}
- COMMAND ${FLATC} --gen-mutable
- --reflect-names --gen-object-api -o ${generated_output_dir}
- ${total_schema_dirs}
- -c -b --reflect-types ${schema}
- DEPENDS ${FLATC} ${schema}
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
- COMMENT "Running C++ flatbuffers compiler on ${schema}" VERBATIM)
- list(APPEND total_generated_files ${generated_file})
- endif()
- endforeach()
-
- add_custom_target(${custom_target_name} ALL
- DEPENDS ${total_generated_files})
-
- if(NOT ${generated_output_dir} STREQUAL "")
- include_directories(${generated_output_dir})
- set_property(TARGET ${custom_target_name}
- PROPERTY GENERATED_OUTPUT_DIR
- ${generated_output_dir})
- endif()
- endfunction()
-
- function(ms_build_flatbuffers_lite
- source_schema_files source_schema_dirs custom_target_name generated_output_dir if_inner)
-
- set(total_schema_dirs "")
- set(total_generated_files "")
- set(FLATC mindspore::flatc)
- foreach(schema_dir ${source_schema_dirs})
- set(total_schema_dirs -I ${schema_dir} ${total_schema_dirs})
- endforeach()
-
- foreach(schema IN LISTS ${source_schema_files})
- get_filename_component(filename ${schema} NAME_WE)
- if(NOT ${generated_output_dir} STREQUAL "")
- set(generated_file ${generated_output_dir}/${filename}_generated.h)
- if(if_inner MATCHES "inner")
- add_custom_command(
- OUTPUT ${generated_file}
- COMMAND ${FLATC} --gen-mutable
- --reflect-names --gen-object-api -o ${generated_output_dir}
- ${total_schema_dirs}
- -c -b --reflect-types ${schema}
- DEPENDS ${FLATC} ${schema}
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
- COMMENT "Running C++ flatbuffers compiler on ${schema}" VERBATIM)
- else()
- add_custom_command(
- OUTPUT ${generated_file}
- COMMAND ${FLATC} -o ${generated_output_dir}
- ${total_schema_dirs}
- -c -b ${schema}
- DEPENDS ${FLATC} ${schema}
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
- COMMENT "Running C++ flatbuffers compiler on ${schema}" VERBATIM)
- endif()
- list(APPEND total_generated_files ${generated_file})
- endif()
- endforeach()
-
- add_custom_target(${custom_target_name} ALL
- DEPENDS ${total_generated_files})
-
- if(NOT ${generated_output_dir} STREQUAL "")
- include_directories(${generated_output_dir})
- set_property(TARGET ${custom_target_name}
- PROPERTY GENERATED_OUTPUT_DIR
- ${generated_output_dir})
- endif()
- endfunction()
|