It is useful to be able to call CreateSharedString with a string_view.
A string_view can be implicitly converted from a std::string or a const
char*. This means if string_view is available, we can use it instead of
both other functions and get all 3.
* Add --require-explicit-ids to require explicit ids
We just got bit by a well intentioned developer forgetting that field
order by default is the field index. 3 people missed it in review.
I'm looking at ways to make it harder to mess up. We are requesting
that developers explicitly id all fields in tables. Automatic (opt in
for others) enforcement of this will help the effort succeed. This
patch adds a command line flag which lets the user require ids on all
fields in tables.
* Added docs to Compiler.md as well
* Add Builder and Table typedefs
This gives us a way to use templates to go from a builder to a table
and back again without having to pass both types in.
* Fix tests/cpp17/generated_cpp17/monster_test_generated.h
* Add support for compatible_with and restricted_to
These attributes have been available in Bazel for years. Pass them
through so the flatbuffer rules can be used with them. They let you
constrain which target platform is used.
While we are here, fix gen_reflections to work with bazel.
* Add docs
* Stop building for Windows until the build passes
ERROR: D:/b/bk-windows-java8-bd0z/bazel/flatbuffers/BUILD:123:1: Couldn't build file _objs/flatbuffers_test/test.obj: undeclared inclusion(s) in rule '//:flatbuffers_test':
this rule is missing dependency declarations for the following files included by 'tests/test.cpp':
'tests/monster_test_generated.h'
'tests/monster_extra_generated.h'
The files in tests are being found instead of the generated files since
Windows doesn't have any sandboxing. For now, let's disable the rules
and come back to it.
* Fix buildifier warnings
Clean up docstrings and add a module docstring.
* Add flatbuffer_cc library support
* Update flags so all the tests pass
Tests now all pass!
* Modify the tests to use the generated code
This should be a simple serialize/deserialize test of the new generated
code to make sure the bazel rules are doing something sane.
* Use generated monster_test.fb in testing/test.cpp
cmake drops it's generated code in tests/monster_test_generated.h
Instead of checking that in, let's generate it with bazel.
* Make grpc tests depend on monster_test_generated.h
* Remove redundant cmake dependency
This should address @aardappel's feedback.
* Run flatc for Android as well
This will fix the last travis.ci failure
* Add generated output folder and fix flags
* Move flatbuffers_header_build_rules to the library that uses it
* Use --cpp-ptr-type to fix android
Android was the only target using the STL emulation layer. It needed
the --cpp-ptr-type flatbuffers::unique_ptr flag to work. Add it!
* Roll back changes to use autogenerated monster_test_generated.
Flip tests/test.cpp to use the autogenerated file as well.
Tests for third_party code are run out of the main workspace. This
isn't an issue when the main workspace is the
com_github_google_flatbuffers workspace, but is an issue when you are
running the tests from another repository.
To reproduce, use "git_repository" to add flatbuffers to a project and
then run:
bazel test @com_github_google_flatbuffers//:flatbuffers_test