diff options
author | sjoblom65 <anders.sjoblom@gmail.com> | 2020-01-24 17:55:34 -0500 |
---|---|---|
committer | Wouter van Oortmerssen <aardappel@gmail.com> | 2020-01-24 14:55:34 -0800 |
commit | 47026ea6ba0e3ea8c4f4ab47de880cb5665ee1b6 (patch) | |
tree | f9101bbe1ba10ba14f17d52f9a89a3ea9520c262 /CMakeLists.txt | |
parent | 3f677f241417e5797c1b786010616e63d6de5d55 (diff) | |
download | flatbuffers-47026ea6ba0e3ea8c4f4ab47de880cb5665ee1b6.tar.gz flatbuffers-47026ea6ba0e3ea8c4f4ab47de880cb5665ee1b6.tar.bz2 flatbuffers-47026ea6ba0e3ea8c4f4ab47de880cb5665ee1b6.zip |
Added the code to embed the binary schema to the source (--bfbs-gen-embed). (#5701)
* Added the code to embed the binary schema to the source.
This is pulled forward from a old PR #5162 that will be closed.
* Update idl_gen_cpp.cpp
Added a small comment to trigger a new build. The build was failing in a strange location and doesn't look like it has anything to do with the code.
* Moved the EscapeAndWrapBuffer to util.cpp and did some formating.
* One more camelCases removed and renamed some variables.
* wrapped_line_xxx should have been passed as a const reference in the first place.
* Moved the bfbs embed sample to it's own file.
* Missed moving the namespace back.
* Moved the embedded bfbs to test.cpp instead of using a sample.
* Missed adding the generation of embedded bfbs to the build.
* See if this makes the build happier.
* Fixed a in-compatable cpp output of the generated header.
* Did some changes to reflect the code review comments.
1. Update the EscapeAndWrapBuffer to BufferToHexText and fixed a variable name.
2. Moved the include of the embedded binary schema to all the other includes.
* Moved some code to inline the instead of using a local variable.
* Moved the BufferToHexText back to be a inline function in util.h
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a1c7c00e..00c409ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,6 +149,8 @@ set(FlatBuffers_Tests_SRCS ${CMAKE_CURRENT_BINARY_DIR}/tests/native_type_test_generated.h # file generate by running compiler on tests/monster_extra.fbs ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_extra_generated.h + # file generate by running compiler on tests/monster_test.fbs + ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_bfbs_generated.h ) set(FlatBuffers_Tests_CPP17_SRCS @@ -409,6 +411,31 @@ function(compile_flatbuffers_schema_to_binary SRC_FBS) register_generated_output(${GEN_BINARY_SCHEMA}) endfunction() +function(compile_flatbuffers_schema_to_embedded_binary SRC_FBS OPT) + if(FLATBUFFERS_BUILD_LEGACY) + set(OPT ${OPT};--cpp-std c++0x) + else() + # --cpp-std is defined by flatc default settings. + endif() + message(STATUS "`${SRC_FBS}`: add generation of C++ embedded binary schema code with '${OPT}'") + get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH) + string(REGEX REPLACE "\\.fbs$" "_bfbs_generated.h" GEN_BFBS_HEADER ${SRC_FBS}) + # For details about flags see generate_code.bat(sh) + add_custom_command( + OUTPUT ${GEN_BFBS_HEADER} + COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" + --cpp --gen-mutable --gen-object-api --reflect-names + --cpp-ptr-type flatbuffers::unique_ptr # Used to test with C++98 STLs + ${OPT} + --bfbs-comments --bfbs-builtins --bfbs-gen-embed + -I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test" + -o "${SRC_FBS_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" + DEPENDS flatc + COMMENT "Run generation: '${GEN_BFBS_HEADER}'") + register_generated_output(${GEN_BFBS_HEADER}) +endfunction() + if(FLATBUFFERS_BUILD_TESTS) file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/tests" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/samples" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") @@ -422,6 +449,7 @@ if(FLATBUFFERS_BUILD_TESTS) compile_flatbuffers_schema_to_cpp_opt(tests/native_type_test.fbs "") compile_flatbuffers_schema_to_cpp_opt(tests/arrays_test.fbs "--scoped-enums;--gen-compare") compile_flatbuffers_schema_to_binary(tests/arrays_test.fbs) + compile_flatbuffers_schema_to_embedded_binary(tests/monster_test.fbs "--no-includes;--gen-compare") if(NOT (MSVC AND (MSVC_VERSION LESS 1900))) compile_flatbuffers_schema_to_cpp(tests/monster_extra.fbs) # Test floating-point NAN/INF. endif() |