r17c is the last Android NDK to include stlport and gnustl.
We want to continue to support these deprecated STLs until we have
confidence few enough customers are using them.
armeabi support was removed from the Android NDK so we should no
longer build it. Since this fixes the Android build failures this
commit also re-enables Travis Android builds.
While re-enabling Android builds, some recent changes broke C++98
support so this fixes those issues as well which include:
- Conditionally compiling use of move constructors, operators and
std::move.
- Changing sample to use flatbuffers::unique_ptr rather than
std::unique_ptr.
Finally, added the special "default_ptr_type" value for the
"cpp_ptr_type" attribute. This expands to the value passed to
the "--cpp-ptr-type" argument of flatc.
The travis script was only failing if the last Android build fails.
This changes the script to report a failure if any of the Android
projects fail to build.
* Added internal - limited - implementation of flatbuffers::unique_ptr
for STLs that don't ship with std::unique_ptr. In C++11 and beyond
this is just an alias for std::unique_ptr.
* Aliased used type traits structs is_scalar is_floating_point is_unsigned
into flatbuffers namespace so they can be replaced in C++98 implementations.
Right now these point at stlport's TR1 implementations.
* Wrapped vector::data() in vector_data().
* Wrapped vector::emplace_back() in vector_emplace_back().
* Wrapper string::back() in string_back().
* Added variants of FlatBufferBuilder::CreateVector() and
FlatBufferBuilder::CreateVectorOfStructs() that allow the use of plain
function pointers.
Generated code has also been modified to use plain functions to build objects
rather than std::function() so all generated code will work in C++98
applications.
* Added flexbuffers::Builder::Vector(), flexbuffers::Builder::TypedVector()
and flexbuffers::Builder::Map() methods that allow the use of plain function
pointers.
* Changed Parser to internally use plain function pointers when parsing table
and vector delimiters.
* Added specializations of NumToString() for 64-bit types that aren't supported
by stringstream in stlport.
* Overloaded numeric_limits for 64-bit types not supported by stlport.
* Replaced build_apk.sh (which was broken by deprecation of the
"android" tool in the Android SDK) with build.gradle and the
appropriate gradle wrapper to build an APK.
* Switched Android build to build against all STL variants.
* Updated travis configuration to build Android test and sample.
Tested:
* Verified all tests continue to work on Linux, OSX and Android.
* Verified Travis build is green.
Change-Id: I9e634363793f85b9f141d21454b10686020a2065
Also, added missing build scripts for flatc on Windows and fixed
numerous issues in the flatbuffers/android/jni/include.mk makefile.
Tested:
Verified dependent project (motive) can generate flatbuffers headers
with these changes on Android.
Bug: 25780616
Change-Id: I73f0dec8f7a6a7eb4e71951a8f1cd3e0d343a9ff
local-source-file-path does not expand to correct file paths in
some circumstances so some users override it. Therefore
flatbuffers_header_build_rules has been modified to generate rules
that expand LOCAL_SRC_FILES values with flatbuffers_header_build_rules.
Also, this overrides local-source-file-path to allow nest projects
to build when NDK_OUT is set.
Tested:
Verified a dependent project continues to build.
Bug: 25673744
Change-Id: Ic90186fe96d6e4533f9f3b7ca9ef78084de08a7e
When $(MAKE) is expanded via a macro "make" doesn't know whether
$(MAKE) refers to an instance of the make app and therefore doesn't
pass job server arguments down. This change adds the + prefix to the
command in the receipe in order to indicate $(MAKE) is another instance of
make.
Tested:
Verified flatc builds in parallel from Android builds.
Change-Id: I9f2f4f9680b818fdda7420a75a8bfa995b4644db
* Added the ability to create a build target for generated headers.
* Made it possible for generated header targets to depend upon each
other or arbitrary build targets.
Tested:
Verified some pretty complex libraries with numerous flatbuffer schema
dependencies build using this macro on Linux with the NDK.
Bug: 25188384
Change-Id: I846855a50808e58c34cdf7086e93e7ea0df69e0d
Also, removed the flag from the Android makefile.
Tested:
Verified flatc builds successfully on Linux and regenerated the docs.
Change-Id: I7140daa10b7cb9a29b5ffd63c6b20489e72a5899
Added FLATBUFFERS_BUILD_TESTS option which can be used to disable
the build of flatbuffers tests and samples.
Tested:
Verified tests and samples are no longer built on Linux when
FLATBUFFERS_BUILD_TESTS=OFF.
Change-Id: Ic23ab827849ba2c4481de9ca86adc1ab8e6b828c
Given the command
flatc -o . -c test.fbs
it would generate header file
.test_generated.h
rather than
./test_generated.h
This fixes this issue.
Tested:
Manually verified that flatc generates the correct output files given output
paths ending with and without '/' on Linux and Windows.
Bug: 16464827
Change-Id: I854cb881286f22690f1885f942cf3fd2fc59ca8d