Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bb80bec37 |
@@ -1,41 +0,0 @@
|
|||||||
:: Copyright 2018 Google Inc. All rights reserved.
|
|
||||||
::
|
|
||||||
:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
:: you may not use this file except in compliance with the License.
|
|
||||||
:: You may obtain a copy of the License at
|
|
||||||
::
|
|
||||||
:: http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
::
|
|
||||||
:: Unless required by applicable law or agreed to in writing, software
|
|
||||||
:: distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
:: See the License for the specific language governing permissions and
|
|
||||||
:: limitations under the License.
|
|
||||||
set buildtype=Release
|
|
||||||
if "%1"=="-b" set buildtype=%2
|
|
||||||
|
|
||||||
cd tests
|
|
||||||
call generate_code.bat -b %buildtype% || goto FAIL
|
|
||||||
|
|
||||||
:: TODO: Release and Debug builds produce differences here for some reason.
|
|
||||||
git checkout HEAD -- monster_test.bfbs
|
|
||||||
git checkout HEAD -- arrays_test.bfbs
|
|
||||||
|
|
||||||
git -c core.autocrlf=true diff --exit-code --quiet || goto :DIFFFOUND
|
|
||||||
goto SUCCESS
|
|
||||||
|
|
||||||
:DIFFFOUND
|
|
||||||
@echo "" >&2
|
|
||||||
@echo "ERROR: ********************************************************" >&2
|
|
||||||
@echo "ERROR: The following differences were found after running the" >&2
|
|
||||||
@echo "ERROR: tests/generate_code.sh script. Maybe you forgot to run" >&2
|
|
||||||
@echo "ERROR: it after making changes in a generator or schema?" >&2
|
|
||||||
@echo "ERROR: ********************************************************" >&2
|
|
||||||
@echo "" >&2
|
|
||||||
@git -c core.autocrlf=true --no-pager diff --binary
|
|
||||||
|
|
||||||
:FAIL
|
|
||||||
set EXITCODE=1
|
|
||||||
:SUCCESS
|
|
||||||
cd ..
|
|
||||||
EXIT /B %EXITCODE%
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
---
|
|
||||||
buildifier: latest
|
|
||||||
platforms:
|
|
||||||
ubuntu1604:
|
|
||||||
build_targets:
|
|
||||||
- "..."
|
|
||||||
test_targets:
|
|
||||||
- "..."
|
|
||||||
ubuntu1804:
|
|
||||||
build_targets:
|
|
||||||
- "..."
|
|
||||||
test_targets:
|
|
||||||
- "..."
|
|
||||||
macos:
|
|
||||||
build_targets:
|
|
||||||
- "..."
|
|
||||||
test_targets:
|
|
||||||
- "..."
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
Language: Cpp
|
|
||||||
BasedOnStyle: Google
|
|
||||||
DerivePointerAlignment: false
|
|
||||||
PointerAlignment: Right
|
|
||||||
IndentPPDirectives: AfterHash
|
|
||||||
Cpp11BracedListStyle: false
|
|
||||||
AlwaysBreakTemplateDeclarations: false
|
|
||||||
AllowShortCaseLabelsOnASingleLine: true
|
|
||||||
SpaceAfterTemplateKeyword: false
|
|
||||||
AllowShortBlocksOnASingleLine: true
|
|
||||||
...
|
|
||||||
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
root = true
|
|
||||||
# Don't set line endings to avoid conflict with core.autocrlf flag.
|
|
||||||
# Line endings on checkout/checkin are controlled by .gitattributes file.
|
|
||||||
[*]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
insert_final_newline = true
|
|
||||||
13
.eslintrc.js
@@ -1,13 +0,0 @@
|
|||||||
/* eslint-env node */
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
root: true,
|
|
||||||
parser: '@typescript-eslint/parser',
|
|
||||||
plugins: [
|
|
||||||
'@typescript-eslint',
|
|
||||||
],
|
|
||||||
extends: [
|
|
||||||
'eslint:recommended',
|
|
||||||
'plugin:@typescript-eslint/recommended',
|
|
||||||
]
|
|
||||||
};
|
|
||||||
1
.gitattributes
vendored
Normal file → Executable file
@@ -1,2 +1 @@
|
|||||||
# Set the default behavior, in case people don't have core.autocrlf set.
|
|
||||||
* text=auto
|
* text=auto
|
||||||
|
|||||||
12
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,12 +0,0 @@
|
|||||||
Thank you for submitting an issue!
|
|
||||||
|
|
||||||
Please make sure you include the names of the affected language(s), compiler version(s), operating system version(s), and FlatBuffers version(s) in your issue title.
|
|
||||||
|
|
||||||
This helps us get the correct maintainers to look at your issue. Here are examples of good titles:
|
|
||||||
|
|
||||||
- Crash when accessing FlatBuffer [C++, gcc 4.8, OS X, master]
|
|
||||||
- Flatc converts a protobuf 'bytes' field to 'string' in fbs schema file [all languages, FlatBuffers 1.4]
|
|
||||||
|
|
||||||
Include other details as appropriate.
|
|
||||||
|
|
||||||
Thanks!
|
|
||||||
20
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,20 +0,0 @@
|
|||||||
Thank you for submitting a PR!
|
|
||||||
|
|
||||||
Please delete this standard text once you've created your own description.
|
|
||||||
|
|
||||||
Make sure you include the names of the affected language(s) in your PR title.
|
|
||||||
This helps us get the correct maintainers to look at your issue.
|
|
||||||
|
|
||||||
If you make changes to any of the code generators, be sure to run
|
|
||||||
`cd tests && bash generate_code.sh` (or equivalent .bat) and include the generated
|
|
||||||
code changes in the PR. This allows us to better see the effect of the PR.
|
|
||||||
|
|
||||||
If your PR includes C++ code, please adhere to the Google C++ Style Guide,
|
|
||||||
and don't forget we try to support older compilers (e.g. VS2010, GCC 4.6.3),
|
|
||||||
so only some C++11 support is available.
|
|
||||||
|
|
||||||
For any C++ changes, please make sure to run `sh src/clang-format-git.sh`
|
|
||||||
|
|
||||||
Include other details as appropriate.
|
|
||||||
|
|
||||||
Thanks!
|
|
||||||
96
.github/labeler.yml
vendored
@@ -1,96 +0,0 @@
|
|||||||
# Configuration for Auto Labeler during pull request
|
|
||||||
#
|
|
||||||
# See https://github.com/actions/labeler for file format
|
|
||||||
# and https://github.com/google/flatbuffers/labels for a list of valid labels
|
|
||||||
#
|
|
||||||
# See .github/workflows/label.yml for Github Action workflow script
|
|
||||||
|
|
||||||
c#:
|
|
||||||
- '**/*.cs'
|
|
||||||
- net/**/*
|
|
||||||
- tests/FlatBuffers.Test/**/*
|
|
||||||
- tests/FlatBuffers.Benchmarks/**/*
|
|
||||||
- src/idl_gen_csharp.cpp
|
|
||||||
|
|
||||||
swift:
|
|
||||||
- '**/*.swift'
|
|
||||||
- swift/**/*
|
|
||||||
- tests/FlatBuffers.GRPC.Swift/**/*
|
|
||||||
- tests/FlatBuffers.Benchmarks.swift/**/*
|
|
||||||
- tests/FlatBuffers.Test.Swift/**/*
|
|
||||||
- src/idl_gen_swift.cpp
|
|
||||||
|
|
||||||
javascript:
|
|
||||||
- '**/*.js'
|
|
||||||
- src/idl_gen_ts.cpp
|
|
||||||
|
|
||||||
typescript:
|
|
||||||
- '**/*.ts'
|
|
||||||
- src/idl_gen_ts.cpp
|
|
||||||
- grpc/flatbuffers-js-grpc/**/*.ts
|
|
||||||
|
|
||||||
golang:
|
|
||||||
- '**/*.go'
|
|
||||||
- src/idl_gen_go.cpp
|
|
||||||
|
|
||||||
python:
|
|
||||||
- '**/*.py'
|
|
||||||
- src/idl_gen_python.cpp
|
|
||||||
|
|
||||||
java:
|
|
||||||
- '**/*.java'
|
|
||||||
- src/idl_gen_java.cpp
|
|
||||||
|
|
||||||
kotlin:
|
|
||||||
- '**/*.kt'
|
|
||||||
- src/idl_gen_kotlin.cpp
|
|
||||||
|
|
||||||
lua:
|
|
||||||
- '**/*.lua'
|
|
||||||
- lua/**/*
|
|
||||||
- src/idl_gen_lua.cpp
|
|
||||||
|
|
||||||
lobster:
|
|
||||||
- '**/*.lobster'
|
|
||||||
- src/idl_gen_lobster.cpp
|
|
||||||
|
|
||||||
php:
|
|
||||||
- '**/*.php'
|
|
||||||
- src/idl_gen_php.cpp
|
|
||||||
|
|
||||||
rust:
|
|
||||||
- '**/*.rs'
|
|
||||||
- rust/**/*
|
|
||||||
- src/idl_gen_rust.cpp
|
|
||||||
|
|
||||||
dart:
|
|
||||||
- '**/*.dart'
|
|
||||||
- src/idl_gen_dart.cpp
|
|
||||||
|
|
||||||
c++:
|
|
||||||
- '**/*.cc'
|
|
||||||
- '**/*.cpp'
|
|
||||||
- '**/*.h'
|
|
||||||
|
|
||||||
json:
|
|
||||||
- '**/*.json'
|
|
||||||
- src/idl_gen_json_schema.cpp
|
|
||||||
|
|
||||||
codegen:
|
|
||||||
- src/**/*
|
|
||||||
|
|
||||||
documentation:
|
|
||||||
- docs/**/*
|
|
||||||
- '**/*.md'
|
|
||||||
|
|
||||||
CI:
|
|
||||||
- '.github/**/*'
|
|
||||||
- '.appveyor/**/*'
|
|
||||||
- '.travis/**/*'
|
|
||||||
- '.bazelci/**/*'
|
|
||||||
- .travis.yml
|
|
||||||
- appveyor.yml
|
|
||||||
|
|
||||||
grpc:
|
|
||||||
- grpc/**/*
|
|
||||||
- src/idl_gen_grpc.cpp
|
|
||||||
229
.github/workflows/build.yml
vendored
@@ -1,229 +0,0 @@
|
|||||||
name: CI
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-linux:
|
|
||||||
name: Build Linux
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
cxx: [g++-9, clang++-9]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: cmake
|
|
||||||
run: CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release .
|
|
||||||
- name: build
|
|
||||||
run: make -j4
|
|
||||||
- name: test
|
|
||||||
run: ./flattests
|
|
||||||
- name: upload build artifacts
|
|
||||||
uses: actions/upload-artifact@v1
|
|
||||||
with:
|
|
||||||
name: Linux flatc binary ${{ matrix.cxx }}
|
|
||||||
path: flatc
|
|
||||||
|
|
||||||
build-windows:
|
|
||||||
name: Build Windows
|
|
||||||
runs-on: windows-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: Add msbuild to PATH
|
|
||||||
uses: microsoft/setup-msbuild@v1.0.2
|
|
||||||
- name: cmake
|
|
||||||
run: cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_CPP17=ON .
|
|
||||||
- name: build
|
|
||||||
run: msbuild.exe FlatBuffers.sln /p:Configuration=Release /p:Platform=x64
|
|
||||||
- name: test
|
|
||||||
run: Release\flattests.exe
|
|
||||||
- name: upload build artifacts
|
|
||||||
uses: actions/upload-artifact@v1
|
|
||||||
with:
|
|
||||||
name: Windows flatc binary
|
|
||||||
path: Release\flatc.exe
|
|
||||||
|
|
||||||
build-windows-2017:
|
|
||||||
name: Build Windows 2017
|
|
||||||
runs-on: windows-2016
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: Add msbuild to PATH
|
|
||||||
uses: microsoft/setup-msbuild@v1.0.2
|
|
||||||
- name: cmake
|
|
||||||
run: cmake -G "Visual Studio 15 2017" -A x64 -DCMAKE_BUILD_TYPE=Release .
|
|
||||||
- name: build
|
|
||||||
run: msbuild.exe FlatBuffers.sln /p:Configuration=Release /p:Platform=x64
|
|
||||||
- name: test
|
|
||||||
run: Release\flattests.exe
|
|
||||||
|
|
||||||
build-mac:
|
|
||||||
name: Build Mac
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: cmake
|
|
||||||
run: cmake -G "Xcode" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_FLATC_EXECUTABLE=_build/Release/flatc .
|
|
||||||
- name: build
|
|
||||||
# NOTE: we need this _build dir to not have xcodebuild's default ./build dir clash with the BUILD file.
|
|
||||||
run: xcodebuild -toolchain clang -configuration Release -target flattests SYMROOT=$(PWD)/_build
|
|
||||||
- name: test
|
|
||||||
run: _build/Release/flattests
|
|
||||||
- name: upload build artifacts
|
|
||||||
uses: actions/upload-artifact@v1
|
|
||||||
with:
|
|
||||||
name: Mac flatc binary
|
|
||||||
path: _build/Release/flatc
|
|
||||||
|
|
||||||
build-android:
|
|
||||||
name: Build Android (on Linux)
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: set up JDK 1.8
|
|
||||||
uses: actions/setup-java@v1
|
|
||||||
with:
|
|
||||||
java-version: 1.8
|
|
||||||
- name: set up flatc
|
|
||||||
run: |
|
|
||||||
cmake -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF .
|
|
||||||
make
|
|
||||||
echo "${PWD}" >> $GITHUB_PATH
|
|
||||||
- name: build
|
|
||||||
working-directory: android
|
|
||||||
run: bash ./gradlew clean build
|
|
||||||
|
|
||||||
build-generator:
|
|
||||||
name: Check Generated Code
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
cxx: [g++-9, clang++-9]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: cmake
|
|
||||||
run: CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" -DFLATBUFFERS_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release . && make -j4
|
|
||||||
- name: Generate
|
|
||||||
run: bash scripts/check-generate-code.sh && bash scripts/check-grpc-generated-code.sh
|
|
||||||
|
|
||||||
build-java:
|
|
||||||
name: Build Java
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: test
|
|
||||||
working-directory: tests
|
|
||||||
run: bash JavaTest.sh
|
|
||||||
|
|
||||||
build-kotlin:
|
|
||||||
name: Build Kotlin
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v1
|
|
||||||
- name: Build
|
|
||||||
working-directory: kotlin
|
|
||||||
run: ./gradlew clean build allTests
|
|
||||||
- name: Run Benchmark
|
|
||||||
working-directory: kotlin
|
|
||||||
run: ./gradlew benchmark
|
|
||||||
- name: Generate Benchmark Report
|
|
||||||
working-directory: kotlin
|
|
||||||
run: |
|
|
||||||
./gradlew jmhReport;
|
|
||||||
mv benchmark/build/reports/benchmarks/main/* benchmark_latest
|
|
||||||
- name: Archive benchmark report
|
|
||||||
uses: actions/upload-artifact@v1
|
|
||||||
with:
|
|
||||||
name: Kotlin Benchmark Report
|
|
||||||
path: kotlin/benchmark_latest
|
|
||||||
|
|
||||||
build-rust:
|
|
||||||
name: Build Rust
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: test
|
|
||||||
working-directory: tests
|
|
||||||
run: bash RustTest.sh
|
|
||||||
|
|
||||||
#build-js:
|
|
||||||
# name: Build JS
|
|
||||||
# runs-on: ubuntu-latest
|
|
||||||
# steps:
|
|
||||||
# - uses: actions/checkout@v1
|
|
||||||
# - name: flatc
|
|
||||||
# # FIXME: make test script not rely on flatc
|
|
||||||
# run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF . && make -j4
|
|
||||||
# - name: test
|
|
||||||
# working-directory: tests
|
|
||||||
# run: bash JavaScriptTest.sh
|
|
||||||
|
|
||||||
build-python:
|
|
||||||
name: Build Python
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: test
|
|
||||||
working-directory: tests
|
|
||||||
run: bash PythonTest.sh
|
|
||||||
|
|
||||||
build-go:
|
|
||||||
name: Build Go
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: flatc
|
|
||||||
# FIXME: make test script not rely on flatc
|
|
||||||
run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF . && make -j4
|
|
||||||
- name: test
|
|
||||||
working-directory: tests
|
|
||||||
run: bash GoTest.sh
|
|
||||||
|
|
||||||
#build-csharp:
|
|
||||||
# name: Build CSharp
|
|
||||||
# runs-on: ubuntu-latest
|
|
||||||
# steps:
|
|
||||||
# - uses: actions/checkout@v1
|
|
||||||
# - name: test
|
|
||||||
# working-directory: tests/FlatBuffers.Test
|
|
||||||
# run: bash NetTest.sh
|
|
||||||
|
|
||||||
#build-php:
|
|
||||||
# name: Build PHP
|
|
||||||
# runs-on: ubuntu-latest
|
|
||||||
# steps:
|
|
||||||
# - uses: actions/checkout@v1
|
|
||||||
# - name: flatc
|
|
||||||
# # FIXME: make test script not rely on flatc
|
|
||||||
# run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF . && make -j4
|
|
||||||
# - name: test
|
|
||||||
# working-directory: tests
|
|
||||||
# run: |
|
|
||||||
# php phpTest.php
|
|
||||||
# sh phpUnionVectorTest.sh
|
|
||||||
|
|
||||||
build-swift:
|
|
||||||
name: Build Swift
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: test
|
|
||||||
working-directory: tests/FlatBuffers.Test.Swift
|
|
||||||
run: sh SwiftTest.sh
|
|
||||||
|
|
||||||
build-ts:
|
|
||||||
name: Build TS
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- name: compile
|
|
||||||
run: npm run compile
|
|
||||||
- name: test
|
|
||||||
working-directory: tests
|
|
||||||
run: sh TypeScriptTest.sh
|
|
||||||
19
.github/workflows/label.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
# This workflow will triage pull requests and apply a label based on the
|
|
||||||
# paths that are modified in the pull request.
|
|
||||||
#
|
|
||||||
# To use this workflow, you will need to set up a .github/labeler.yml
|
|
||||||
# file with configuration. For more information, see:
|
|
||||||
# https://github.com/actions/labeler
|
|
||||||
|
|
||||||
name: Labeler
|
|
||||||
on: [pull_request_target]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
label:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/labeler@main
|
|
||||||
with:
|
|
||||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
||||||
20
.github/workflows/stale.yml
vendored
@@ -1,20 +0,0 @@
|
|||||||
name: Mark stale issues and pull requests
|
|
||||||
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: "30 20 * * *"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
stale:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/stale@v3
|
|
||||||
with:
|
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
stale-pr-message: 'This pull request is stale because it has been open 6 months with no activity. Please comment or this will be closed in 14 days.'
|
|
||||||
stale-issue-message: 'This issue is stale because it has been open 6 months with no activity. Please comment or this will be closed in 14 days.'
|
|
||||||
days-before-stale: 182 # 6 months
|
|
||||||
days-before-close: 14
|
|
||||||
operations-per-run: 1500
|
|
||||||
109
.gitignore
vendored
Normal file → Executable file
@@ -1,45 +1,27 @@
|
|||||||
*_wire.txt
|
*_wire.txt
|
||||||
*_wire.bin
|
*_wire.bin
|
||||||
.DS_Store
|
.DS_Store
|
||||||
**/.build
|
|
||||||
build
|
|
||||||
**/Packages
|
|
||||||
/*.xcodeproj
|
|
||||||
**/xcuserdata/
|
|
||||||
**/xcshareddata/
|
|
||||||
**/.swiftpm/
|
|
||||||
*.o
|
*.o
|
||||||
*.o.d
|
*.o.d
|
||||||
*.class
|
*.class
|
||||||
*.a
|
*.a
|
||||||
*.swp
|
|
||||||
*~
|
*~
|
||||||
*.vcxproj
|
*.vcxproj
|
||||||
*.vcxproj.filters
|
*.vcxproj.filters
|
||||||
*.vcxproj.user
|
*.vcxproj.user
|
||||||
*.sln
|
*.sln
|
||||||
*.suo
|
*.suo
|
||||||
*.opendb
|
|
||||||
*.keystore
|
*.keystore
|
||||||
**/.vs/**
|
|
||||||
**/bin/**
|
**/bin/**
|
||||||
!tests/rust_usage_test/bin/**
|
|
||||||
**/gen/**
|
**/gen/**
|
||||||
**/libs/**
|
**/libs/**
|
||||||
**/obj/**
|
**/obj/**
|
||||||
**/*.dir/**
|
**/*.dir/**
|
||||||
**/CMakeFiles/**
|
**/CMakeFiles/**
|
||||||
**/cmake_install.cmake
|
**/cmake_install.cmake
|
||||||
**/install_manifest.txt
|
|
||||||
**/CMakeCache.txt
|
**/CMakeCache.txt
|
||||||
**/CMakeTestfile.cmake
|
|
||||||
**/CPackConfig.cmake
|
|
||||||
**/CPackSourceConfig.cmake
|
|
||||||
**/compile_commands.json
|
|
||||||
**/Debug/**
|
**/Debug/**
|
||||||
**/Release/**
|
**/Release/**
|
||||||
**/RelWithDebInfo/**
|
|
||||||
**/x64/ #build artifacts from VS
|
|
||||||
build.xml
|
build.xml
|
||||||
local.properties
|
local.properties
|
||||||
project.properties
|
project.properties
|
||||||
@@ -47,97 +29,8 @@ proguard-project.txt
|
|||||||
linklint_results
|
linklint_results
|
||||||
Makefile
|
Makefile
|
||||||
flatc
|
flatc
|
||||||
flatc.exe
|
|
||||||
flathash
|
|
||||||
flathash.exe
|
|
||||||
flattests
|
flattests
|
||||||
flattests.exe
|
|
||||||
flatsamplebinary
|
flatsamplebinary
|
||||||
flatsamplebinary.exe
|
|
||||||
flatsampletext
|
flatsampletext
|
||||||
flatsampletext.exe
|
|
||||||
flatsamplebfbs
|
|
||||||
flatsamplebfbs.exe
|
|
||||||
grpctest
|
|
||||||
grpctest.exe
|
|
||||||
snapshot.sh
|
snapshot.sh
|
||||||
tags
|
|
||||||
tests/dart_gen
|
|
||||||
tests/go_gen
|
|
||||||
tests/monsterdata_java_wire.mon
|
|
||||||
tests/monsterdata_java_wire_sp.mon
|
|
||||||
tests/monsterdata_go_wire.mon
|
|
||||||
tests/monsterdata_javascript_wire.mon
|
|
||||||
tests/monsterdata_lobster_wire.mon
|
|
||||||
tests/monsterdata_rust_wire.mon
|
|
||||||
tests/php/
|
|
||||||
CMakeLists.txt.user
|
|
||||||
CMakeScripts/**
|
|
||||||
CTestTestfile.cmake
|
|
||||||
FlatbuffersConfigVersion.cmake
|
|
||||||
FlatBuffers.cbp
|
|
||||||
build/Xcode/FlatBuffers.xcodeproj/project.xcworkspace/**
|
|
||||||
build/Xcode/FlatBuffers.xcodeproj/xcuserdata/**
|
|
||||||
FlatBuffers.xcodeproj/
|
|
||||||
java/.idea
|
|
||||||
java/*.iml
|
|
||||||
.idea
|
|
||||||
*.iml
|
|
||||||
target
|
|
||||||
**/*.pyc
|
|
||||||
build/VS2010/FlatBuffers.sdf
|
|
||||||
build/VS2010/FlatBuffers.opensdf
|
|
||||||
build/VS2010/ipch/**/*.ipch
|
|
||||||
*.so
|
|
||||||
Testing/Temporary
|
|
||||||
.cproject
|
|
||||||
.settings/
|
|
||||||
.project
|
|
||||||
net/**/obj
|
|
||||||
node_modules/
|
|
||||||
android/.externalNativeBuild/
|
|
||||||
android/.gradle/
|
|
||||||
android/build/
|
|
||||||
samples/android/.externalNativeBuild/
|
|
||||||
samples/android/.gradle/
|
|
||||||
samples/android/build/
|
|
||||||
js/flatbuffers.mjs
|
|
||||||
/bazel-bin
|
|
||||||
/bazel-flatbuffers
|
|
||||||
/bazel-genfiles
|
|
||||||
/bazel-out
|
|
||||||
/bazel-testlogs
|
|
||||||
.ninja_deps
|
|
||||||
.ninja_log
|
|
||||||
build.ninja
|
|
||||||
rules.ninja
|
|
||||||
.vscode
|
|
||||||
dart/.pub/
|
|
||||||
dart/.packages
|
|
||||||
dart/pubspec.lock
|
|
||||||
dart/.dart_tool/
|
|
||||||
dart/build/
|
|
||||||
dart/doc/api/
|
|
||||||
Cargo.lock
|
|
||||||
.corpus**
|
|
||||||
.seed**
|
|
||||||
.crash**
|
|
||||||
grpc/google/
|
|
||||||
**/Package.resolved
|
|
||||||
.clangd/**
|
|
||||||
package-lock.json
|
|
||||||
/*.ilk
|
|
||||||
/*.pdb
|
|
||||||
.clwb
|
|
||||||
js/**/*.js
|
|
||||||
js/**/*.d.ts
|
|
||||||
mjs/**/*.js
|
|
||||||
mjs/**/*.d.ts
|
|
||||||
yarn-error.log
|
|
||||||
.cache/
|
|
||||||
/flatbuffers.lib
|
|
||||||
.cmake/
|
|
||||||
**/dist
|
|
||||||
**/vendor
|
|
||||||
**/go.sum
|
|
||||||
flatbuffers.pc
|
|
||||||
|
|||||||
217
.travis.yml
@@ -1,217 +0,0 @@
|
|||||||
env:
|
|
||||||
global:
|
|
||||||
# Set at the root level as this is ignored when set under matrix.env.
|
|
||||||
- GCC_VERSION="4.9"
|
|
||||||
# Fail on first error if UBSAN or ASAN enabled for a target
|
|
||||||
- UBSAN_OPTIONS=halt_on_error=1
|
|
||||||
- ASAN_OPTIONS=halt_on_error=1
|
|
||||||
# Travis machines have 2 cores
|
|
||||||
- JOBS=2
|
|
||||||
- MAKEFLAGS="-j 2"
|
|
||||||
|
|
||||||
conan-linux: &conan-linux
|
|
||||||
os: linux
|
|
||||||
dist: xenial
|
|
||||||
language: python
|
|
||||||
python: "3.7"
|
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
install:
|
|
||||||
- ./conan/travis/install.sh
|
|
||||||
script:
|
|
||||||
- ./conan/travis/build.sh
|
|
||||||
if: tag IS present
|
|
||||||
|
|
||||||
conan-linux-master: &conan-linux-master
|
|
||||||
os: linux
|
|
||||||
dist: xenial
|
|
||||||
language: python
|
|
||||||
python: "3.7"
|
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
install:
|
|
||||||
- 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash ./conan/travis/install.sh; fi'
|
|
||||||
script:
|
|
||||||
- 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash ./conan/travis/build.sh; fi'
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
|
|
||||||
conan-osx: &conan-osx
|
|
||||||
os: osx
|
|
||||||
language: generic
|
|
||||||
install:
|
|
||||||
- ./conan/travis/install.sh
|
|
||||||
script:
|
|
||||||
- ./conan/travis/build.sh
|
|
||||||
if: tag IS present
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
#- language: python
|
|
||||||
# python: "2.7"
|
|
||||||
# install:
|
|
||||||
# - "pip install wheel twine"
|
|
||||||
# script:
|
|
||||||
# - "cd python/"
|
|
||||||
# - 'VERSION="$TRAVIS_TAG" python setup.py sdist bdist_wheel'
|
|
||||||
# - "cd ../"
|
|
||||||
# deploy:
|
|
||||||
# # Checkpointed release builds.
|
|
||||||
# - provider: script
|
|
||||||
# script: .travis/deploy-python.sh
|
|
||||||
# skip_cleanup: true
|
|
||||||
# on:
|
|
||||||
# tags: true
|
|
||||||
# # all_branches must be set with tags: true. See below post:
|
|
||||||
# # https://stackoverflow.com/a/27775257/1076585
|
|
||||||
# all_branches: true
|
|
||||||
# # Produce a new build for the cutting edge when master changes.
|
|
||||||
# - provider: script
|
|
||||||
# script: .travis/deploy-python.sh
|
|
||||||
# skip_cleanup: true
|
|
||||||
# on:
|
|
||||||
# branch: master
|
|
||||||
- language: cpp
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- docker-ce
|
|
||||||
script:
|
|
||||||
- bash .travis/build-and-run-docker-test-containers.sh
|
|
||||||
|
|
||||||
- language: cpp
|
|
||||||
os:
|
|
||||||
- linux
|
|
||||||
|
|
||||||
compiler:
|
|
||||||
- gcc
|
|
||||||
|
|
||||||
env:
|
|
||||||
matrix:
|
|
||||||
- BUILD_TYPE=Debug
|
|
||||||
- BUILD_TYPE=Release
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
|
|
||||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get update -qq; fi
|
|
||||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq g++-$GCC_VERSION; fi
|
|
||||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq gcc-$GCC_VERSION; fi
|
|
||||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which g++-$GCC_VERSION) /usr/bin/g++; fi
|
|
||||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which gcc-$GCC_VERSION) /usr/bin/gcc; fi
|
|
||||||
|
|
||||||
script:
|
|
||||||
- pip install cmake
|
|
||||||
- bash .travis/check-sources.sh
|
|
||||||
- bash grpc/build_grpc.sh
|
|
||||||
- cmake .
|
|
||||||
-DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
||||||
-DFLATBUFFERS_BUILD_GRPCTEST=ON
|
|
||||||
-DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install
|
|
||||||
-DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf
|
|
||||||
-DFLATBUFFERS_CODE_SANITIZE=ON
|
|
||||||
- cmake --build . --target all --clean-first -- -j${JOBS}
|
|
||||||
- LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure
|
|
||||||
- bash scripts/check-generate-code.sh
|
|
||||||
|
|
||||||
- language: cpp
|
|
||||||
os: osx
|
|
||||||
osx_image: xcode9.3
|
|
||||||
env:
|
|
||||||
matrix:
|
|
||||||
- BUILD_TYPE=Debug
|
|
||||||
- BUILD_TYPE=Release
|
|
||||||
|
|
||||||
script:
|
|
||||||
- pip install --user cmake
|
|
||||||
- mkdir ~/cmake_path
|
|
||||||
- ln -s $(find ~/Library/Python -name cmake -type f | head -n 1) ~/cmake_path/cmake
|
|
||||||
- ln -s $(find ~/Library/Python -name ctest -type f | head -n 1) ~/cmake_path/ctest
|
|
||||||
- export PATH=~/cmake_path:${PATH}
|
|
||||||
- bash grpc/build_grpc.sh
|
|
||||||
- cmake .
|
|
||||||
-DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
||||||
-DFLATBUFFERS_BUILD_GRPCTEST=ON
|
|
||||||
-DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install
|
|
||||||
-DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf
|
|
||||||
-DFLATBUFFERS_CODE_SANITIZE=ON
|
|
||||||
- cmake --build . -- -j${JOBS}
|
|
||||||
- DYLD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure
|
|
||||||
- bash scripts/check-generate-code.sh
|
|
||||||
|
|
||||||
- <<: *conan-linux-master
|
|
||||||
env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/gcc8
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_GCC_VERSIONS=4.9 CONAN_DOCKER_IMAGE=conanio/gcc49
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_GCC_VERSIONS=5 CONAN_DOCKER_IMAGE=conanio/gcc5
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_GCC_VERSIONS=6 CONAN_DOCKER_IMAGE=conanio/gcc6
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_GCC_VERSIONS=7 CONAN_DOCKER_IMAGE=conanio/gcc7
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/gcc8
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_GCC_VERSIONS=9 CONAN_DOCKER_IMAGE=conanio/gcc9
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_CLANG_VERSIONS=3.9 CONAN_DOCKER_IMAGE=conanio/clang39
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_CLANG_VERSIONS=4.0 CONAN_DOCKER_IMAGE=conanio/clang40
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_CLANG_VERSIONS=5.0 CONAN_DOCKER_IMAGE=conanio/clang50
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_CLANG_VERSIONS=6.0 CONAN_DOCKER_IMAGE=conanio/clang60
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_CLANG_VERSIONS=7.0 CONAN_DOCKER_IMAGE=conanio/clang7
|
|
||||||
- <<: *conan-linux
|
|
||||||
env: CONAN_CLANG_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/clang8
|
|
||||||
- <<: *conan-osx
|
|
||||||
osx_image: xcode7.3
|
|
||||||
env: CONAN_APPLE_CLANG_VERSIONS=7.3
|
|
||||||
- <<: *conan-osx
|
|
||||||
osx_image: xcode8.3
|
|
||||||
env: CONAN_APPLE_CLANG_VERSIONS=8.1
|
|
||||||
- <<: *conan-osx
|
|
||||||
osx_image: xcode9
|
|
||||||
env: CONAN_APPLE_CLANG_VERSIONS=9.0
|
|
||||||
- <<: *conan-osx
|
|
||||||
osx_image: xcode9.4
|
|
||||||
env: CONAN_APPLE_CLANG_VERSIONS=9.1
|
|
||||||
- <<: *conan-osx
|
|
||||||
osx_image: xcode10.2
|
|
||||||
env: CONAN_APPLE_CLANG_VERSIONS=10.0
|
|
||||||
|
|
||||||
- language: android
|
|
||||||
sudo: true
|
|
||||||
dist: trusty
|
|
||||||
android:
|
|
||||||
components:
|
|
||||||
- tools
|
|
||||||
- platform-tools
|
|
||||||
- extra-android-m2repository
|
|
||||||
licenses:
|
|
||||||
- 'android-sdk-preview-license-52d11cd2'
|
|
||||||
- 'android-sdk-license-.+'
|
|
||||||
- 'google-gdk-license-.+'
|
|
||||||
compiler:
|
|
||||||
- gcc
|
|
||||||
before_install:
|
|
||||||
- echo y | sdkmanager "platforms;android-30"
|
|
||||||
- echo y | sdkmanager "build-tools;30.0.2"
|
|
||||||
- echo y | sdkmanager "ndk-bundle"
|
|
||||||
- echo y | sdkmanager "cmake;3.6.4111459"
|
|
||||||
script:
|
|
||||||
- cmake -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF .; make; export PATH="$PATH:${PWD}"
|
|
||||||
- cd android; ./gradlew clean build
|
|
||||||
|
|
||||||
- language: generic
|
|
||||||
if: type IN (pull_request)
|
|
||||||
os: linux
|
|
||||||
install:
|
|
||||||
- bash .travis/format_install.sh
|
|
||||||
|
|
||||||
script:
|
|
||||||
- bash .travis/format_check.sh
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Copyright 2018 Google Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
set -e
|
|
||||||
|
|
||||||
docker build -t build_cpp_image -f tests/docker/Dockerfile.testing.cpp.debian_buster .
|
|
||||||
# Run tests with sanitizers (--cap-add SYS_PTRACE), both GCC and Clang.
|
|
||||||
cpp_test_args="--cap-add SYS_PTRACE build_cpp_image sh ./tests/docker/cpp_test.run.sh Debug"
|
|
||||||
docker run --rm $cpp_test_args
|
|
||||||
docker run --rm --env CC=/usr/bin/clang --env CXX=/usr/bin/clang++ $cpp_test_args
|
|
||||||
# Build flatc on debian once to speed up the test loop below.
|
|
||||||
docker run --name flatc_container build_cpp_image sh ./tests/docker/build_flatc.run.sh Debug
|
|
||||||
# All dependent dockers refer to 'flatc_debian_stretch'.
|
|
||||||
docker cp flatc_container:/flatbuffers/flatc flatc_debian_stretch
|
|
||||||
|
|
||||||
for f in $(ls tests/docker/languages | sort)
|
|
||||||
do
|
|
||||||
# docker pull sometimes fails for unknown reasons, probably travisci-related. this retries the pull we need a few times.
|
|
||||||
REQUIRED_BASE_IMAGE=$(cat tests/docker/languages/${f} | head -n 1 | awk ' { print $2 } ')
|
|
||||||
|
|
||||||
set +e
|
|
||||||
n=0
|
|
||||||
until [ $n -ge 5 ]
|
|
||||||
do
|
|
||||||
docker pull $REQUIRED_BASE_IMAGE && break
|
|
||||||
n=$[$n+1]
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
set -e
|
|
||||||
|
|
||||||
docker build -t $(echo ${f} | cut -f 3- -d .) -f tests/docker/languages/${f} .
|
|
||||||
echo "TEST OK: ${f}"
|
|
||||||
done
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Copyright 2018 Google Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ -n "$1" ]; then
|
|
||||||
scan_dir="$1"
|
|
||||||
else
|
|
||||||
scan_dir="$( pwd )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
py_checker="$0.py"
|
|
||||||
|
|
||||||
echo "scan root directory = '$scan_dir'"
|
|
||||||
python3 --version
|
|
||||||
# Scan recursively and search all *.cpp and *.h files using regex patterns.
|
|
||||||
# Assume that script running from a root of Flatbuffers working dir.
|
|
||||||
python3 $py_checker "ascii" "$scan_dir/include" "\.h$"
|
|
||||||
python3 $py_checker "ascii" "$scan_dir/src" "\.cpp$"
|
|
||||||
python3 $py_checker "ascii" "$scan_dir/tests" "\.h$"
|
|
||||||
python3 $py_checker "utf-8" "$scan_dir/tests" "\.cpp$"
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
import os
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
def check_encoding(encoding, scan_dir, regex_pattern):
|
|
||||||
fname = None
|
|
||||||
try:
|
|
||||||
assert encoding in ['ascii', 'utf-8'], "unexpected encoding"
|
|
||||||
cmp = re.compile(regex_pattern)
|
|
||||||
for root, dirs, files in os.walk(scan_dir):
|
|
||||||
fname = root
|
|
||||||
cmp_list = [f for f in files if cmp.search(f) is not None]
|
|
||||||
for f in cmp_list:
|
|
||||||
fname = os.path.join(root, f)
|
|
||||||
with open(fname, mode='rb') as test_file:
|
|
||||||
btext = test_file.read()
|
|
||||||
# check encoding
|
|
||||||
btext.decode(encoding=encoding, errors="strict")
|
|
||||||
if encoding == "utf-8" and btext.startswith(b'\xEF\xBB\xBF'):
|
|
||||||
raise ValueError("unexpected BOM in file")
|
|
||||||
# check LF line endings
|
|
||||||
LF = btext.count(b'\n')
|
|
||||||
CR = btext.count(b'\r')
|
|
||||||
if CR!=0:
|
|
||||||
raise ValueError("invalid line endings: LF({})/CR({})".format(LF, CR))
|
|
||||||
except Exception as err:
|
|
||||||
print("ERROR with [{}]: {}".format(fname, err))
|
|
||||||
return -1
|
|
||||||
else:
|
|
||||||
return 0
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
# python check-sources.sh.py 'ascii' '.' '.*\.(cpp|h)$'
|
|
||||||
res = check_encoding(sys.argv[1], sys.argv[2], sys.argv[3])
|
|
||||||
sys.exit(0 if res == 0 else -1)
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
PROD_REPOSITORY="https://upload.pypi.org/legacy/"
|
|
||||||
TEST_REPOSITORY="https://test.pypi.org/legacy/"
|
|
||||||
|
|
||||||
twine upload \
|
|
||||||
--username "$PYPI_USERNAME" \
|
|
||||||
--password "$PYPI_PASSWORD" \
|
|
||||||
--repository-url "$PROD_REPOSITORY" \
|
|
||||||
"$DIR/../python/dist/"*
|
|
||||||
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Copyright 2021 Google Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# HACKY solution to make nodejs work.
|
|
||||||
source ~/.nvm/nvm.sh
|
|
||||||
nvm alias default node
|
|
||||||
nvm use default
|
|
||||||
|
|
||||||
sh src/clang-format-git.sh
|
|
||||||
|
|
||||||
# Check formatting for go lang
|
|
||||||
|
|
||||||
cd go
|
|
||||||
gofmt -w .
|
|
||||||
cd ..
|
|
||||||
cd grpc/examples/go
|
|
||||||
sh format.sh
|
|
||||||
cd ../../..
|
|
||||||
|
|
||||||
node_modules/.bin/eslint ts/** --ext .ts --quiet --fix
|
|
||||||
|
|
||||||
#PYTHON IS DISABLED UNTIL WE CREATE A .pylintrc FILE FOR IT
|
|
||||||
pylint python/** --disable=all
|
|
||||||
|
|
||||||
swiftformat --config swift.swiftformat .
|
|
||||||
|
|
||||||
|
|
||||||
if ! git diff --quiet; then
|
|
||||||
echo >&2
|
|
||||||
echo "ERROR: ********************************************************" >&2
|
|
||||||
echo "ERROR: The following differences were found after running" >&2
|
|
||||||
echo "ERROR: .travis/format_check.sh script. Maybe you forgot to format" >&2
|
|
||||||
echo "ERROR: the code after making changes? please check Formatters.md" >&2
|
|
||||||
echo "ERROR: ********************************************************" >&2
|
|
||||||
echo >&2
|
|
||||||
git diff --binary --exit-code
|
|
||||||
fi
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Copyright 2020 Google Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
# install devtools
|
|
||||||
install_languages() {
|
|
||||||
sudo apt update
|
|
||||||
|
|
||||||
# Install nodeJS and yarn
|
|
||||||
wget https://raw.githubusercontent.com/creationix/nvm/v0.31.0/nvm.sh -O ~/.nvm/nvm.sh
|
|
||||||
source ~/.nvm/nvm.sh
|
|
||||||
nvm install node
|
|
||||||
node --version
|
|
||||||
curl -o- -L https://yarnpkg.com/install.sh | bash
|
|
||||||
export PATH="$HOME/.yarn/bin:$PATH"
|
|
||||||
yarn config set prefix ~/.yarn -g
|
|
||||||
export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
|
|
||||||
|
|
||||||
# Install swift
|
|
||||||
sudo apt-get install \
|
|
||||||
binutils \
|
|
||||||
git \
|
|
||||||
libc6-dev \
|
|
||||||
libcurl3 \
|
|
||||||
libedit2 \
|
|
||||||
libgcc-5-dev \
|
|
||||||
libpython2.7 \
|
|
||||||
libsqlite3-0 \
|
|
||||||
libstdc++-5-dev \
|
|
||||||
libxml2 \
|
|
||||||
pkg-config \
|
|
||||||
tzdata \
|
|
||||||
zlib1g-dev
|
|
||||||
|
|
||||||
SWIFT_URL=https://swift.org/builds/swift-5.3.1-release/ubuntu1604/swift-5.3.1-RELEASE/swift-5.3.1-RELEASE-ubuntu16.04.tar.gz
|
|
||||||
curl -fSsL "$SWIFT_URL" -o swift.tar.gz
|
|
||||||
|
|
||||||
mkdir ~/swiftbuild
|
|
||||||
tar -xvzf swift.tar.gz -C ~/swiftbuild
|
|
||||||
|
|
||||||
export PATH="~/swiftbuild/swift-5.3.1-RELEASE-ubuntu16.04/usr/bin:$PATH"
|
|
||||||
|
|
||||||
|
|
||||||
mkdir ~/gobuild
|
|
||||||
wget -c https://golang.org/dl/go1.15.2.linux-amd64.tar.gz
|
|
||||||
tar -xvzf go1.15.2.linux-amd64.tar.gz -C ~/gobuild
|
|
||||||
|
|
||||||
export PATH="~/gobuild/go/bin:$PATH"
|
|
||||||
|
|
||||||
swift --version
|
|
||||||
go version
|
|
||||||
yarn -v
|
|
||||||
node -v
|
|
||||||
}
|
|
||||||
|
|
||||||
install_formatters() {
|
|
||||||
# installing swift formatter
|
|
||||||
git clone --depth 1 --branch 0.47.4 https://github.com/nicklockwood/SwiftFormat.git
|
|
||||||
cd SwiftFormat
|
|
||||||
swift build -c release
|
|
||||||
sudo cp .build/release/swiftformat /usr/local/bin/swiftformat
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
which yarn
|
|
||||||
which node
|
|
||||||
yarn -v
|
|
||||||
node -v
|
|
||||||
|
|
||||||
yarn install
|
|
||||||
pip install pylint
|
|
||||||
}
|
|
||||||
|
|
||||||
install_languages
|
|
||||||
export PATH="~/swift/swift/usr/bin:$PATH"
|
|
||||||
install_formatters
|
|
||||||
79
BUILD.bazel
@@ -1,79 +0,0 @@
|
|||||||
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
|
|
||||||
|
|
||||||
licenses(["notice"])
|
|
||||||
|
|
||||||
package(
|
|
||||||
default_visibility = ["//visibility:public"],
|
|
||||||
)
|
|
||||||
|
|
||||||
exports_files([
|
|
||||||
"LICENSE",
|
|
||||||
])
|
|
||||||
|
|
||||||
# Public flatc library to compile flatbuffer files at runtime.
|
|
||||||
cc_library(
|
|
||||||
name = "flatbuffers",
|
|
||||||
hdrs = ["//:public_headers"],
|
|
||||||
linkstatic = 1,
|
|
||||||
strip_include_prefix = "/include",
|
|
||||||
deps = ["//src:flatbuffers"],
|
|
||||||
)
|
|
||||||
|
|
||||||
# Public C++ headers for the Flatbuffers library.
|
|
||||||
filegroup(
|
|
||||||
name = "public_headers",
|
|
||||||
srcs = [
|
|
||||||
"include/flatbuffers/base.h",
|
|
||||||
"include/flatbuffers/code_generators.h",
|
|
||||||
"include/flatbuffers/flatbuffers.h",
|
|
||||||
"include/flatbuffers/flexbuffers.h",
|
|
||||||
"include/flatbuffers/grpc.h",
|
|
||||||
"include/flatbuffers/hash.h",
|
|
||||||
"include/flatbuffers/idl.h",
|
|
||||||
"include/flatbuffers/minireflect.h",
|
|
||||||
"include/flatbuffers/reflection.h",
|
|
||||||
"include/flatbuffers/reflection_generated.h",
|
|
||||||
"include/flatbuffers/registry.h",
|
|
||||||
"include/flatbuffers/stl_emulation.h",
|
|
||||||
"include/flatbuffers/util.h",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
# Public flatc compiler library.
|
|
||||||
cc_library(
|
|
||||||
name = "flatc_library",
|
|
||||||
linkstatic = 1,
|
|
||||||
deps = [
|
|
||||||
"//src:flatc_library",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
# Public flatc compiler.
|
|
||||||
cc_binary(
|
|
||||||
name = "flatc",
|
|
||||||
deps = [
|
|
||||||
"//src:flatc",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
filegroup(
|
|
||||||
name = "flatc_headers",
|
|
||||||
srcs = [
|
|
||||||
"include/flatbuffers/flatc.h",
|
|
||||||
],
|
|
||||||
visibility = ["//:__subpackages__"],
|
|
||||||
)
|
|
||||||
|
|
||||||
# Library used by flatbuffer_cc_library rules.
|
|
||||||
cc_library(
|
|
||||||
name = "runtime_cc",
|
|
||||||
hdrs = [
|
|
||||||
"include/flatbuffers/base.h",
|
|
||||||
"include/flatbuffers/flatbuffers.h",
|
|
||||||
"include/flatbuffers/flexbuffers.h",
|
|
||||||
"include/flatbuffers/stl_emulation.h",
|
|
||||||
"include/flatbuffers/util.h",
|
|
||||||
],
|
|
||||||
linkstatic = 1,
|
|
||||||
strip_include_prefix = "/include",
|
|
||||||
)
|
|
||||||
@@ -1,403 +0,0 @@
|
|||||||
# Copyright 2015 Google Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# General function to create FlatBuffer build rules for the given list of
|
|
||||||
# schemas.
|
|
||||||
#
|
|
||||||
# flatbuffers_schemas: A list of flatbuffer schema files to process.
|
|
||||||
#
|
|
||||||
# schema_include_dirs: A list of schema file include directories, which will be
|
|
||||||
# passed to flatc via the -I parameter.
|
|
||||||
#
|
|
||||||
# custom_target_name: The generated files will be added as dependencies for a
|
|
||||||
# new custom target with this name. You should add that target as a dependency
|
|
||||||
# for your main target to ensure these files are built. You can also retrieve
|
|
||||||
# various properties from this target, such as GENERATED_INCLUDES_DIR,
|
|
||||||
# BINARY_SCHEMAS_DIR, and COPY_TEXT_SCHEMAS_DIR.
|
|
||||||
#
|
|
||||||
# additional_dependencies: A list of additional dependencies that you'd like
|
|
||||||
# all generated files to depend on. Pass in a blank string if you have none.
|
|
||||||
#
|
|
||||||
# generated_includes_dir: Where to generate the C++ header files for these
|
|
||||||
# schemas. The generated includes directory will automatically be added to
|
|
||||||
# CMake's include directories, and will be where generated header files are
|
|
||||||
# placed. This parameter is optional; pass in empty string if you don't want to
|
|
||||||
# generate include files for these schemas.
|
|
||||||
#
|
|
||||||
# binary_schemas_dir: If you specify an optional binary schema directory, binary
|
|
||||||
# schemas will be generated for these schemas as well, and placed into the given
|
|
||||||
# directory.
|
|
||||||
#
|
|
||||||
# copy_text_schemas_dir: If you want all text schemas (including schemas from
|
|
||||||
# all schema include directories) copied into a directory (for example, if you
|
|
||||||
# need them within your project to build JSON files), you can specify that
|
|
||||||
# folder here. All text schemas will be copied to that folder.
|
|
||||||
#
|
|
||||||
# IMPORTANT: Make sure you quote all list arguments you pass to this function!
|
|
||||||
# Otherwise CMake will only pass in the first element.
|
|
||||||
# Example: build_flatbuffers("${fb_files}" "${include_dirs}" target_name ...)
|
|
||||||
function(build_flatbuffers flatbuffers_schemas
|
|
||||||
schema_include_dirs
|
|
||||||
custom_target_name
|
|
||||||
additional_dependencies
|
|
||||||
generated_includes_dir
|
|
||||||
binary_schemas_dir
|
|
||||||
copy_text_schemas_dir)
|
|
||||||
|
|
||||||
# Test if including from FindFlatBuffers
|
|
||||||
if(FLATBUFFERS_FLATC_EXECUTABLE)
|
|
||||||
set(FLATC_TARGET "")
|
|
||||||
set(FLATC ${FLATBUFFERS_FLATC_EXECUTABLE})
|
|
||||||
else()
|
|
||||||
set(FLATC_TARGET flatc)
|
|
||||||
set(FLATC flatc)
|
|
||||||
endif()
|
|
||||||
set(FLATC_SCHEMA_ARGS --gen-mutable)
|
|
||||||
if(FLATBUFFERS_FLATC_SCHEMA_EXTRA_ARGS)
|
|
||||||
set(FLATC_SCHEMA_ARGS
|
|
||||||
${FLATBUFFERS_FLATC_SCHEMA_EXTRA_ARGS}
|
|
||||||
${FLATC_SCHEMA_ARGS}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(working_dir "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
||||||
|
|
||||||
set(schema_glob "*.fbs")
|
|
||||||
# Generate the include files parameters.
|
|
||||||
set(include_params "")
|
|
||||||
set(all_generated_files "")
|
|
||||||
foreach (include_dir ${schema_include_dirs})
|
|
||||||
set(include_params -I ${include_dir} ${include_params})
|
|
||||||
if (NOT ${copy_text_schemas_dir} STREQUAL "")
|
|
||||||
# Copy text schemas from dependent folders.
|
|
||||||
file(GLOB_RECURSE dependent_schemas ${include_dir}/${schema_glob})
|
|
||||||
foreach (dependent_schema ${dependent_schemas})
|
|
||||||
file(COPY ${dependent_schema} DESTINATION ${copy_text_schemas_dir})
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
foreach(schema ${flatbuffers_schemas})
|
|
||||||
get_filename_component(filename ${schema} NAME_WE)
|
|
||||||
# For each schema, do the things we requested.
|
|
||||||
if (NOT ${generated_includes_dir} STREQUAL "")
|
|
||||||
set(generated_include ${generated_includes_dir}/${filename}_generated.h)
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${generated_include}
|
|
||||||
COMMAND ${FLATC} ${FLATC_ARGS}
|
|
||||||
-o ${generated_includes_dir}
|
|
||||||
${include_params}
|
|
||||||
-c ${schema}
|
|
||||||
DEPENDS ${FLATC_TARGET} ${schema} ${additional_dependencies}
|
|
||||||
WORKING_DIRECTORY "${working_dir}")
|
|
||||||
list(APPEND all_generated_files ${generated_include})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT ${binary_schemas_dir} STREQUAL "")
|
|
||||||
set(binary_schema ${binary_schemas_dir}/${filename}.bfbs)
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${binary_schema}
|
|
||||||
COMMAND ${FLATC} -b --schema
|
|
||||||
-o ${binary_schemas_dir}
|
|
||||||
${include_params}
|
|
||||||
${schema}
|
|
||||||
DEPENDS ${FLATC_TARGET} ${schema} ${additional_dependencies}
|
|
||||||
WORKING_DIRECTORY "${working_dir}")
|
|
||||||
list(APPEND all_generated_files ${binary_schema})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT ${copy_text_schemas_dir} STREQUAL "")
|
|
||||||
file(COPY ${schema} DESTINATION ${copy_text_schemas_dir})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# Create a custom target that depends on all the generated files.
|
|
||||||
# This is the target that you can depend on to trigger all these
|
|
||||||
# to be built.
|
|
||||||
add_custom_target(${custom_target_name}
|
|
||||||
DEPENDS ${all_generated_files} ${additional_dependencies})
|
|
||||||
|
|
||||||
# Register the include directory we are using.
|
|
||||||
if (NOT ${generated_includes_dir} STREQUAL "")
|
|
||||||
include_directories(${generated_includes_dir})
|
|
||||||
set_property(TARGET ${custom_target_name}
|
|
||||||
PROPERTY GENERATED_INCLUDES_DIR
|
|
||||||
${generated_includes_dir})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Register the binary schemas dir we are using.
|
|
||||||
if (NOT ${binary_schemas_dir} STREQUAL "")
|
|
||||||
set_property(TARGET ${custom_target_name}
|
|
||||||
PROPERTY BINARY_SCHEMAS_DIR
|
|
||||||
${binary_schemas_dir})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Register the text schema copy dir we are using.
|
|
||||||
if (NOT ${copy_text_schemas_dir} STREQUAL "")
|
|
||||||
set_property(TARGET ${custom_target_name}
|
|
||||||
PROPERTY COPY_TEXT_SCHEMAS_DIR
|
|
||||||
${copy_text_schemas_dir})
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Creates a target that can be linked against that generates flatbuffer headers.
|
|
||||||
#
|
|
||||||
# This function takes a target name and a list of schemas. You can also specify
|
|
||||||
# other flagc flags using the FLAGS option to change the behavior of the flatc
|
|
||||||
# tool.
|
|
||||||
#
|
|
||||||
# Arguments:
|
|
||||||
# TARGET: The name of the target to generate.
|
|
||||||
# SCHEMAS: The list of schema files to generate code for.
|
|
||||||
# BINARY_SCHEMAS_DIR: Optional. The directory in which to generate binary
|
|
||||||
# schemas. Binary schemas will only be generated if a path is provided.
|
|
||||||
# INCLUDE: Optional. Search for includes in the specified paths. (Use this
|
|
||||||
# instead of "-I <path>" and the FLAGS option so that CMake is aware of
|
|
||||||
# the directories that need to be searched).
|
|
||||||
# INCLUDE_PREFIX: Optional. The directory in which to place the generated
|
|
||||||
# files. Use this instead of the --include-prefix option.
|
|
||||||
# FLAGS: Optional. A list of any additional flags that you would like to pass
|
|
||||||
# to flatc.
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
#
|
|
||||||
# flatbuffers_generate_headers(
|
|
||||||
# TARGET my_generated_headers_target
|
|
||||||
# INCLUDE_PREFIX ${MY_INCLUDE_PREFIX}"
|
|
||||||
# SCHEMAS ${MY_SCHEMA_FILES}
|
|
||||||
# BINARY_SCHEMAS_DIR "${MY_BINARY_SCHEMA_DIRECTORY}"
|
|
||||||
# FLAGS --gen-object-api)
|
|
||||||
#
|
|
||||||
# target_link_libraries(MyExecutableTarget
|
|
||||||
# PRIVATE my_generated_headers_target
|
|
||||||
# )
|
|
||||||
function(flatbuffers_generate_headers)
|
|
||||||
# Parse function arguments.
|
|
||||||
set(options)
|
|
||||||
set(one_value_args
|
|
||||||
"TARGET"
|
|
||||||
"INCLUDE_PREFIX"
|
|
||||||
"BINARY_SCHEMAS_DIR")
|
|
||||||
set(multi_value_args
|
|
||||||
"SCHEMAS"
|
|
||||||
"INCLUDE"
|
|
||||||
"FLAGS")
|
|
||||||
cmake_parse_arguments(
|
|
||||||
PARSE_ARGV 0
|
|
||||||
FLATBUFFERS_GENERATE_HEADERS
|
|
||||||
"${options}"
|
|
||||||
"${one_value_args}"
|
|
||||||
"${multi_value_args}")
|
|
||||||
|
|
||||||
# Test if including from FindFlatBuffers
|
|
||||||
if(FLATBUFFERS_FLATC_EXECUTABLE)
|
|
||||||
set(FLATC_TARGET "")
|
|
||||||
set(FLATC ${FLATBUFFERS_FLATC_EXECUTABLE})
|
|
||||||
else()
|
|
||||||
set(FLATC_TARGET flatc)
|
|
||||||
set(FLATC flatc)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(working_dir "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
||||||
|
|
||||||
# Generate the include files parameters.
|
|
||||||
set(include_params "")
|
|
||||||
foreach (include_dir ${FLATBUFFERS_GENERATE_HEADERS_INCLUDE})
|
|
||||||
set(include_params -I ${include_dir} ${include_params})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# Create a directory to place the generated code.
|
|
||||||
set(generated_target_dir "${CMAKE_CURRENT_BINARY_DIR}/${FLATBUFFERS_GENERATE_HEADERS_TARGET}")
|
|
||||||
set(generated_include_dir "${generated_target_dir}")
|
|
||||||
if (NOT ${FLATBUFFERS_GENERATE_HEADERS_INCLUDE_PREFIX} STREQUAL "")
|
|
||||||
set(generated_include_dir "${generated_include_dir}/${FLATBUFFERS_GENERATE_HEADERS_INCLUDE_PREFIX}")
|
|
||||||
list(APPEND FLATBUFFERS_GENERATE_HEADERS_FLAGS
|
|
||||||
"--include-prefix" ${FLATBUFFERS_GENERATE_HEADERS_INCLUDE_PREFIX})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Create rules to generate the code for each schema.
|
|
||||||
foreach(schema ${FLATBUFFERS_GENERATE_HEADERS_SCHEMAS})
|
|
||||||
get_filename_component(filename ${schema} NAME_WE)
|
|
||||||
set(generated_include "${generated_include_dir}/${filename}_generated.h")
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${generated_include}
|
|
||||||
COMMAND ${FLATC} ${FLATC_ARGS}
|
|
||||||
-o ${generated_include_dir}
|
|
||||||
${include_params}
|
|
||||||
-c ${schema}
|
|
||||||
${FLATBUFFERS_GENERATE_HEADERS_FLAGS}
|
|
||||||
DEPENDS ${FLATC_TARGET} ${schema}
|
|
||||||
WORKING_DIRECTORY "${working_dir}")
|
|
||||||
list(APPEND all_generated_header_files ${generated_include})
|
|
||||||
|
|
||||||
# Geneate the binary flatbuffers schemas if instructed to.
|
|
||||||
if (NOT ${FLATBUFFERS_GENERATE_HEADERS_BINARY_SCHEMAS_DIR} STREQUAL "")
|
|
||||||
set(binary_schema
|
|
||||||
"${FLATBUFFERS_GENERATE_HEADERS_BINARY_SCHEMAS_DIR}/${filename}.bfbs")
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${binary_schema}
|
|
||||||
COMMAND ${FLATC} -b --schema
|
|
||||||
-o ${FLATBUFFERS_GENERATE_HEADERS_BINARY_SCHEMAS_DIR}
|
|
||||||
${include_params}
|
|
||||||
${schema}
|
|
||||||
DEPENDS ${FLATC_TARGET} ${schema}
|
|
||||||
WORKING_DIRECTORY "${working_dir}")
|
|
||||||
list(APPEND all_generated_binary_files ${binary_schema})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# Set up interface library
|
|
||||||
add_library(${FLATBUFFERS_GENERATE_HEADERS_TARGET} INTERFACE)
|
|
||||||
target_sources(
|
|
||||||
${FLATBUFFERS_GENERATE_HEADERS_TARGET}
|
|
||||||
INTERFACE
|
|
||||||
${all_generated_header_files}
|
|
||||||
${all_generated_binary_files}
|
|
||||||
${FLATBUFFERS_GENERATE_HEADERS_SCHEMAS})
|
|
||||||
add_dependencies(
|
|
||||||
${FLATBUFFERS_GENERATE_HEADERS_TARGET}
|
|
||||||
${FLATC}
|
|
||||||
${FLATBUFFERS_GENERATE_HEADERS_SCHEMAS})
|
|
||||||
target_include_directories(
|
|
||||||
${FLATBUFFERS_GENERATE_HEADERS_TARGET}
|
|
||||||
INTERFACE ${generated_target_dir})
|
|
||||||
|
|
||||||
# Organize file layout for IDEs.
|
|
||||||
source_group(
|
|
||||||
TREE "${generated_target_dir}"
|
|
||||||
PREFIX "Flatbuffers/Generated/Headers Files"
|
|
||||||
FILES ${all_generated_header_files})
|
|
||||||
source_group(
|
|
||||||
TREE ${working_dir}
|
|
||||||
PREFIX "Flatbuffers/Schemas"
|
|
||||||
FILES ${FLATBUFFERS_GENERATE_HEADERS_SCHEMAS})
|
|
||||||
if (NOT ${FLATBUFFERS_GENERATE_HEADERS_BINARY_SCHEMAS_DIR} STREQUAL "")
|
|
||||||
source_group(
|
|
||||||
TREE "${FLATBUFFERS_GENERATE_HEADERS_BINARY_SCHEMAS_DIR}"
|
|
||||||
PREFIX "Flatbuffers/Generated/Binary Schemas"
|
|
||||||
FILES ${all_generated_binary_files})
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Creates a target that can be linked against that generates flatbuffer binaries
|
|
||||||
# from json files.
|
|
||||||
#
|
|
||||||
# This function takes a target name and a list of schemas and Json files. You
|
|
||||||
# can also specify other flagc flags and options to change the behavior of the
|
|
||||||
# flatc compiler.
|
|
||||||
#
|
|
||||||
# Adding this target to your executable ensurses that the flatbuffer binaries
|
|
||||||
# are compiled before your executable is run.
|
|
||||||
#
|
|
||||||
# Arguments:
|
|
||||||
# TARGET: The name of the target to generate.
|
|
||||||
# JSON_FILES: The list of json files to compile to flatbuffers binaries.
|
|
||||||
# SCHEMA: The flatbuffers schema of the Json files to be compiled.
|
|
||||||
# INCLUDE: Optional. Search for includes in the specified paths. (Use this
|
|
||||||
# instead of "-I <path>" and the FLAGS option so that CMake is aware of
|
|
||||||
# the directories that need to be searched).
|
|
||||||
# OUTPUT_DIR: The directly where the generated flatbuffers binaries should be
|
|
||||||
# placed.
|
|
||||||
# FLAGS: Optional. A list of any additional flags that you would like to pass
|
|
||||||
# to flatc.
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
#
|
|
||||||
# flatbuffers_generate_binary_files(
|
|
||||||
# TARGET my_binary_data
|
|
||||||
# SCHEMA "${MY_SCHEMA_DIR}/my_example_schema.fbs"
|
|
||||||
# JSON_FILES ${MY_JSON_FILES}
|
|
||||||
# OUTPUT_DIR "${MY_BINARY_DATA_DIRECTORY}"
|
|
||||||
# FLAGS --strict-json)
|
|
||||||
#
|
|
||||||
# target_link_libraries(MyExecutableTarget
|
|
||||||
# PRIVATE my_binary_data
|
|
||||||
# )
|
|
||||||
function(flatbuffers_generate_binary_files)
|
|
||||||
# Parse function arguments.
|
|
||||||
set(options)
|
|
||||||
set(one_value_args
|
|
||||||
"TARGET"
|
|
||||||
"SCHEMA"
|
|
||||||
"OUTPUT_DIR")
|
|
||||||
set(multi_value_args
|
|
||||||
"JSON_FILES"
|
|
||||||
"INCLUDE"
|
|
||||||
"FLAGS")
|
|
||||||
cmake_parse_arguments(
|
|
||||||
PARSE_ARGV 0
|
|
||||||
FLATBUFFERS_GENERATE_BINARY_FILES
|
|
||||||
"${options}"
|
|
||||||
"${one_value_args}"
|
|
||||||
"${multi_value_args}")
|
|
||||||
|
|
||||||
# Test if including from FindFlatBuffers
|
|
||||||
if(FLATBUFFERS_FLATC_EXECUTABLE)
|
|
||||||
set(FLATC_TARGET "")
|
|
||||||
set(FLATC ${FLATBUFFERS_FLATC_EXECUTABLE})
|
|
||||||
else()
|
|
||||||
set(FLATC_TARGET flatc)
|
|
||||||
set(FLATC flatc)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(working_dir "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
||||||
|
|
||||||
# Generate the include files parameters.
|
|
||||||
set(include_params "")
|
|
||||||
foreach (include_dir ${FLATBUFFERS_GENERATE_BINARY_FILES_INCLUDE})
|
|
||||||
set(include_params -I ${include_dir} ${include_params})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# Create rules to generate the flatbuffers binary for each json file.
|
|
||||||
foreach(json_file ${FLATBUFFERS_GENERATE_BINARY_FILES_JSON_FILES})
|
|
||||||
get_filename_component(filename ${json_file} NAME_WE)
|
|
||||||
set(generated_binary_file "${FLATBUFFERS_GENERATE_BINARY_FILES_OUTPUT_DIR}/${filename}.bin")
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${generated_binary_file}
|
|
||||||
COMMAND ${FLATC} ${FLATC_ARGS}
|
|
||||||
-o ${FLATBUFFERS_GENERATE_BINARY_FILES_OUTPUT_DIR}
|
|
||||||
${include_params}
|
|
||||||
-b ${FLATBUFFERS_GENERATE_BINARY_FILES_SCHEMA} ${json_file}
|
|
||||||
${FLATBUFFERS_GENERATE_BINARY_FILES_FLAGS}
|
|
||||||
DEPENDS ${FLATC_TARGET} ${json_file}
|
|
||||||
WORKING_DIRECTORY "${working_dir}")
|
|
||||||
list(APPEND all_generated_binary_files ${generated_binary_file})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# Set up interface library
|
|
||||||
add_library(${FLATBUFFERS_GENERATE_BINARY_FILES_TARGET} INTERFACE)
|
|
||||||
target_sources(
|
|
||||||
${FLATBUFFERS_GENERATE_BINARY_FILES_TARGET}
|
|
||||||
INTERFACE
|
|
||||||
${all_generated_binary_files}
|
|
||||||
${FLATBUFFERS_GENERATE_BINARY_FILES_JSON_FILES}
|
|
||||||
${FLATBUFFERS_GENERATE_BINARY_FILES_SCHEMA})
|
|
||||||
add_dependencies(
|
|
||||||
${FLATBUFFERS_GENERATE_BINARY_FILES_TARGET}
|
|
||||||
${FLATC})
|
|
||||||
|
|
||||||
# Organize file layout for IDEs.
|
|
||||||
source_group(
|
|
||||||
TREE ${working_dir}
|
|
||||||
PREFIX "Flatbuffers/JSON Files"
|
|
||||||
FILES ${FLATBUFFERS_GENERATE_BINARY_FILES_JSON_FILES})
|
|
||||||
source_group(
|
|
||||||
TREE ${working_dir}
|
|
||||||
PREFIX "Flatbuffers/Schemas"
|
|
||||||
FILES ${FLATBUFFERS_GENERATE_BINARY_FILES_SCHEMA})
|
|
||||||
source_group(
|
|
||||||
TREE ${FLATBUFFERS_GENERATE_BINARY_FILES_OUTPUT_DIR}
|
|
||||||
PREFIX "Flatbuffers/Generated/Binary Files"
|
|
||||||
FILES ${all_generated_binary_files})
|
|
||||||
endfunction()
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
FlatBuffers is a cross platform serialization library architected for
|
|
||||||
maximum memory efficiency. It allows you to directly access serialized
|
|
||||||
data without parsing/unpacking it first, while still having great
|
|
||||||
forwards/backwards compatibility.
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
# Copyright 2014 Stefan.Eilemann@epfl.ch
|
|
||||||
# Copyright 2014 Google Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# Find the flatbuffers schema compiler
|
|
||||||
#
|
|
||||||
# Output Variables:
|
|
||||||
# * FLATBUFFERS_FLATC_EXECUTABLE the flatc compiler executable
|
|
||||||
# * FLATBUFFERS_FOUND
|
|
||||||
#
|
|
||||||
# Provides:
|
|
||||||
# * FLATBUFFERS_GENERATE_C_HEADERS(Name <files>) creates the C++ headers
|
|
||||||
# for the given flatbuffer schema files.
|
|
||||||
# Returns the header files in ${Name}_OUTPUTS
|
|
||||||
|
|
||||||
set(FLATBUFFERS_CMAKE_DIR ${CMAKE_CURRENT_LIST_DIR})
|
|
||||||
|
|
||||||
find_program(FLATBUFFERS_FLATC_EXECUTABLE NAMES flatc)
|
|
||||||
find_path(FLATBUFFERS_INCLUDE_DIR NAMES flatbuffers/flatbuffers.h)
|
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
find_package_handle_standard_args(FlatBuffers
|
|
||||||
DEFAULT_MSG FLATBUFFERS_FLATC_EXECUTABLE FLATBUFFERS_INCLUDE_DIR)
|
|
||||||
|
|
||||||
if(FLATBUFFERS_FOUND)
|
|
||||||
function(FLATBUFFERS_GENERATE_C_HEADERS Name)
|
|
||||||
set(FLATC_OUTPUTS)
|
|
||||||
foreach(FILE ${ARGN})
|
|
||||||
get_filename_component(FLATC_OUTPUT ${FILE} NAME_WE)
|
|
||||||
set(FLATC_OUTPUT
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${FLATC_OUTPUT}_generated.h")
|
|
||||||
list(APPEND FLATC_OUTPUTS ${FLATC_OUTPUT})
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${FLATC_OUTPUT}
|
|
||||||
COMMAND ${FLATBUFFERS_FLATC_EXECUTABLE}
|
|
||||||
ARGS -c -o "${CMAKE_CURRENT_BINARY_DIR}/" ${FILE}
|
|
||||||
DEPENDS ${FILE}
|
|
||||||
COMMENT "Building C++ header for ${FILE}"
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
endforeach()
|
|
||||||
set(${Name}_OUTPUTS ${FLATC_OUTPUTS} PARENT_SCOPE)
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
set(FLATBUFFERS_INCLUDE_DIRS ${FLATBUFFERS_INCLUDE_DIR})
|
|
||||||
include_directories(${CMAKE_BINARY_DIR})
|
|
||||||
else()
|
|
||||||
set(FLATBUFFERS_INCLUDE_DIR)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include("${FLATBUFFERS_CMAKE_DIR}/BuildFlatBuffers.cmake")
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
include("${CMAKE_CURRENT_LIST_DIR}/FlatbuffersTargets.cmake" OPTIONAL)
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/FlatcTargets.cmake" OPTIONAL)
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/FlatbuffersSharedTargets.cmake" OPTIONAL)
|
|
||||||
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
set(PACKAGE_VERSION "@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@")
|
|
||||||
|
|
||||||
# Check whether the requested PACKAGE_FIND_VERSION is compatible
|
|
||||||
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
|
|
||||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
|
||||||
else()
|
|
||||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
|
||||||
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
|
|
||||||
set(PACKAGE_VERSION_EXACT TRUE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
# ------------------- Debianization ---------------------
|
|
||||||
if (UNIX)
|
|
||||||
|
|
||||||
# Set build environment
|
|
||||||
SET(CPACK_GENERATOR "TGZ;DEB")
|
|
||||||
SET(CPACK_SOURCE_TGZ "ON")
|
|
||||||
|
|
||||||
# Common package information
|
|
||||||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
|
||||||
"FlatBuffers is an efficient cross platform serialization library for C++, with support for Java, C# and Go. It was created at Google specifically for game development and other performance-critical applications.")
|
|
||||||
SET(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/google/flatbuffers")
|
|
||||||
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Vitaly Isaev <vitalyisaev2@gmail.com>")
|
|
||||||
|
|
||||||
SET(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
|
|
||||||
SET(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
|
|
||||||
SET(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
|
|
||||||
SET(CPACK_PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}-${VERSION_COMMIT}")
|
|
||||||
SET(CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}")
|
|
||||||
|
|
||||||
# Derive architecture
|
|
||||||
IF(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
|
|
||||||
FIND_PROGRAM(DPKG_CMD dpkg)
|
|
||||||
IF(NOT DPKG_CMD)
|
|
||||||
MESSAGE(STATUS "Can not find dpkg in your path, default to i386.")
|
|
||||||
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386)
|
|
||||||
ENDIF(NOT DPKG_CMD)
|
|
||||||
EXECUTE_PROCESS(COMMAND "${DPKG_CMD}" --print-architecture
|
|
||||||
OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
)
|
|
||||||
ENDIF(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
|
|
||||||
|
|
||||||
# Package name
|
|
||||||
SET(CPACK_DEBIAN_PACKAGE_NAME "flatbuffers")
|
|
||||||
SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE.txt)
|
|
||||||
SET(CPACK_PACKAGE_FILE_NAME
|
|
||||||
"${CPACK_DEBIAN_PACKAGE_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
|
|
||||||
|
|
||||||
endif(UNIX)
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
if (UNIX)
|
|
||||||
set(CPACK_GENERATOR "RPM")
|
|
||||||
set(CPACK_SOURCE_TGZ "ON")
|
|
||||||
|
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "FlatBuffers serialization library and schema compiler.")
|
|
||||||
|
|
||||||
set(CPACK_RPM_PACKAGE_HOMEPAGE "https://github.com/google/flatbuffers")
|
|
||||||
set(CPACK_RPM_PACKAGE_MAINTAINER "Marc Butler <mockbutler@gmail.com>")
|
|
||||||
|
|
||||||
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
|
|
||||||
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
|
|
||||||
set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
|
|
||||||
set(CPACK_PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}-${VERSION_COMMIT}")
|
|
||||||
set(CPACK_RPM_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}")
|
|
||||||
|
|
||||||
set(CPACK_RPM_PACKAGE_NAME "flatbuffers")
|
|
||||||
|
|
||||||
# Assume this is not a cross complation build.
|
|
||||||
if(NOT CPACK_RPM_PACKAGE_ARCHITECTURE)
|
|
||||||
set(CPACK_RPM_PACKAGE_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}")
|
|
||||||
endif(NOT CPACK_RPM_PACKAGE_ARCHITECTURE)
|
|
||||||
|
|
||||||
set(CPACK_RPM_PACKAGE_VENDOR "Google, Inc.")
|
|
||||||
set(CPACK_RPM_PACKAGE_LICENSE "Apache 2.0")
|
|
||||||
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE.txt)
|
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_SOURCE_DIR}/CMake/DESCRIPTION.txt)
|
|
||||||
|
|
||||||
# This may reduce rpm compatiblity with very old systems.
|
|
||||||
set(CPACK_RPM_COMPRESSION_TYPE lzma)
|
|
||||||
|
|
||||||
set(CPACK_RPM_PACKAGE_NAME "flatbuffers")
|
|
||||||
set(CPACK_PACKAGE_FILE_NAME
|
|
||||||
"${CPACK_RPM_PACKAGE_NAME}_${CPACK_RPM_PACKAGE_VERSION}_${CPACK_RPM_PACKAGE_ARCHITECTURE}")
|
|
||||||
if(NOT DEFINED ${CPACK_PACKAGING_INSTALL_PREFIX})
|
|
||||||
# Default packaging install prefix on RedHat systems is /usr.
|
|
||||||
# This is the assumed value when this variable is not defined.
|
|
||||||
# There is currently a conflict with
|
|
||||||
# /usr/${CMAKE_INSTALL_LIBDIR}/cmake which is installed by default
|
|
||||||
# by other packages on RedHat (most notably cmake-filesystem). Ensure
|
|
||||||
# that on these systems, flatbuffers does not package this path.
|
|
||||||
# This patch is required for cmake pre-3.17.
|
|
||||||
list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/${CMAKE_INSTALL_LIBDIR}/cmake")
|
|
||||||
endif()
|
|
||||||
endif(UNIX)
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
set(VERSION_MAJOR 2)
|
|
||||||
set(VERSION_MINOR 0)
|
|
||||||
set(VERSION_PATCH 0)
|
|
||||||
set(VERSION_COMMIT 0)
|
|
||||||
|
|
||||||
find_program(GIT git)
|
|
||||||
if(GIT)
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${GIT} describe
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
OUTPUT_VARIABLE GIT_DESCRIBE_DIRTY
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
||||||
RESULT_VARIABLE GIT_DESCRIBE_RESULT
|
|
||||||
)
|
|
||||||
|
|
||||||
if(GIT_DESCRIBE_RESULT EQUAL 0)
|
|
||||||
string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${GIT_DESCRIBE_DIRTY}")
|
|
||||||
string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${GIT_DESCRIBE_DIRTY}")
|
|
||||||
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${GIT_DESCRIBE_DIRTY}")
|
|
||||||
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+\\-([0-9]+).*" "\\1" VERSION_COMMIT "${GIT_DESCRIBE_DIRTY}")
|
|
||||||
else()
|
|
||||||
message(WARNING "git describe failed with exit code: ${GIT_DESCRIBE_RESULT}")
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
message(WARNING "git is not found")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
message(STATUS "Proceeding with version: ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_COMMIT}")
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
|
|
||||||
includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
|
|
||||||
|
|
||||||
Name: FlatBuffers
|
|
||||||
Description: Memory Efficient Serialization Library
|
|
||||||
Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@
|
|
||||||
|
|
||||||
Libs: -L${libdir} -lflatbuffers
|
|
||||||
Cflags: -I${includedir}
|
|
||||||
676
CMakeLists.txt
@@ -1,678 +1,76 @@
|
|||||||
cmake_minimum_required(VERSION 2.8.12)
|
cmake_minimum_required(VERSION 2.8)
|
||||||
# generate compile_commands.json
|
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
||||||
include(CheckCXXSymbolExists)
|
|
||||||
|
|
||||||
project(FlatBuffers)
|
project(FlatBuffers)
|
||||||
|
|
||||||
# NOTE: Code coverage only works on Linux & OSX.
|
# NOTE: Code coverage only works on Linux & OSX.
|
||||||
option(FLATBUFFERS_CODE_COVERAGE "Enable the code coverage build option." OFF)
|
option(FLATBUFFERS_CODE_COVERAGE "Enable the code coverage build option." OFF)
|
||||||
option(FLATBUFFERS_BUILD_TESTS "Enable the build of tests and samples." ON)
|
|
||||||
option(FLATBUFFERS_INSTALL "Enable the installation of targets." ON)
|
|
||||||
option(FLATBUFFERS_BUILD_FLATLIB "Enable the build of the flatbuffers library"
|
|
||||||
ON)
|
|
||||||
option(FLATBUFFERS_BUILD_FLATC "Enable the build of the flatbuffers compiler"
|
|
||||||
ON)
|
|
||||||
option(FLATBUFFERS_STATIC_FLATC "Build flatbuffers compiler with -static flag"
|
|
||||||
OFF)
|
|
||||||
option(FLATBUFFERS_BUILD_FLATHASH "Enable the build of flathash" ON)
|
|
||||||
option(FLATBUFFERS_BUILD_GRPCTEST "Enable the build of grpctest" OFF)
|
|
||||||
option(FLATBUFFERS_BUILD_SHAREDLIB
|
|
||||||
"Enable the build of the flatbuffers shared library"
|
|
||||||
OFF)
|
|
||||||
option(FLATBUFFERS_LIBCXX_WITH_CLANG "Force libc++ when using Clang" ON)
|
|
||||||
# NOTE: Sanitizer check only works on Linux & OSX (gcc & llvm).
|
|
||||||
option(FLATBUFFERS_CODE_SANITIZE
|
|
||||||
"Add '-fsanitize' flags to 'flattests' and 'flatc' targets."
|
|
||||||
OFF)
|
|
||||||
option(FLATBUFFERS_PACKAGE_REDHAT
|
|
||||||
"Build an rpm using the 'package' target."
|
|
||||||
OFF)
|
|
||||||
option(FLATBUFFERS_PACKAGE_DEBIAN
|
|
||||||
"Build an deb using the 'package' target."
|
|
||||||
OFF)
|
|
||||||
option(FLATBUFFERS_BUILD_CPP17
|
|
||||||
"Enable the build of c++17 test target. \"
|
|
||||||
Requirements: Clang6, GCC7, MSVC2017 (_MSC_VER >= 1914) or higher."
|
|
||||||
OFF)
|
|
||||||
option(FLATBUFFERS_BUILD_LEGACY
|
|
||||||
"Run C++ code generator with '--cpp-std c++0x' switch."
|
|
||||||
OFF)
|
|
||||||
option(FLATBUFFERS_ENABLE_PCH
|
|
||||||
"Enable precompile headers support for 'flatbuffers' and 'flatc'. \"
|
|
||||||
Only work if CMake supports 'target_precompile_headers'. \"
|
|
||||||
This can speed up compilation time."
|
|
||||||
OFF)
|
|
||||||
|
|
||||||
if(NOT FLATBUFFERS_BUILD_FLATC AND FLATBUFFERS_BUILD_TESTS)
|
|
||||||
message(WARNING
|
|
||||||
"Cannot build tests without building the compiler. Tests will be disabled.")
|
|
||||||
set(FLATBUFFERS_BUILD_TESTS OFF)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(DEFINED FLATBUFFERS_MAX_PARSING_DEPTH)
|
|
||||||
# Override the default recursion depth limit.
|
|
||||||
add_definitions(-DFLATBUFFERS_MAX_PARSING_DEPTH=${FLATBUFFERS_MAX_PARSING_DEPTH})
|
|
||||||
message(STATUS "FLATBUFFERS_MAX_PARSING_DEPTH: ${FLATBUFFERS_MAX_PARSING_DEPTH}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Auto-detect locale-narrow 'strtod_l' and 'strtoull_l' functions.
|
|
||||||
if(NOT DEFINED FLATBUFFERS_LOCALE_INDEPENDENT)
|
|
||||||
set(FLATBUFFERS_LOCALE_INDEPENDENT 0)
|
|
||||||
if(MSVC)
|
|
||||||
check_cxx_symbol_exists(_strtof_l stdlib.h FLATBUFFERS_HAS_STRTOF_L)
|
|
||||||
check_cxx_symbol_exists(_strtoui64_l stdlib.h FLATBUFFERS_HAS_STRTOULL_L)
|
|
||||||
else()
|
|
||||||
check_cxx_symbol_exists(strtof_l stdlib.h FLATBUFFERS_HAS_STRTOF_L)
|
|
||||||
check_cxx_symbol_exists(strtoull_l stdlib.h FLATBUFFERS_HAS_STRTOULL_L)
|
|
||||||
endif()
|
|
||||||
if(FLATBUFFERS_HAS_STRTOF_L AND FLATBUFFERS_HAS_STRTOULL_L)
|
|
||||||
set(FLATBUFFERS_LOCALE_INDEPENDENT 1)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
add_definitions(-DFLATBUFFERS_LOCALE_INDEPENDENT=$<BOOL:${FLATBUFFERS_LOCALE_INDEPENDENT}>)
|
|
||||||
|
|
||||||
set(FlatBuffers_Library_SRCS
|
|
||||||
include/flatbuffers/base.h
|
|
||||||
include/flatbuffers/flatbuffers.h
|
|
||||||
include/flatbuffers/hash.h
|
|
||||||
include/flatbuffers/idl.h
|
|
||||||
include/flatbuffers/util.h
|
|
||||||
include/flatbuffers/reflection.h
|
|
||||||
include/flatbuffers/reflection_generated.h
|
|
||||||
include/flatbuffers/stl_emulation.h
|
|
||||||
include/flatbuffers/flexbuffers.h
|
|
||||||
include/flatbuffers/registry.h
|
|
||||||
include/flatbuffers/minireflect.h
|
|
||||||
src/idl_parser.cpp
|
|
||||||
src/idl_gen_text.cpp
|
|
||||||
src/reflection.cpp
|
|
||||||
src/util.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
set(FlatBuffers_Compiler_SRCS
|
set(FlatBuffers_Compiler_SRCS
|
||||||
${FlatBuffers_Library_SRCS}
|
include/flatbuffers/flatbuffers.h
|
||||||
|
include/flatbuffers/idl.h
|
||||||
|
include/flatbuffers/util.h
|
||||||
|
src/idl_parser.cpp
|
||||||
src/idl_gen_cpp.cpp
|
src/idl_gen_cpp.cpp
|
||||||
src/idl_gen_csharp.cpp
|
|
||||||
src/idl_gen_dart.cpp
|
|
||||||
src/idl_gen_kotlin.cpp
|
|
||||||
src/idl_gen_go.cpp
|
|
||||||
src/idl_gen_java.cpp
|
src/idl_gen_java.cpp
|
||||||
src/idl_gen_ts.cpp
|
src/idl_gen_text.cpp
|
||||||
src/idl_gen_php.cpp
|
|
||||||
src/idl_gen_python.cpp
|
|
||||||
src/idl_gen_lobster.cpp
|
|
||||||
src/idl_gen_lua.cpp
|
|
||||||
src/idl_gen_rust.cpp
|
|
||||||
src/idl_gen_fbs.cpp
|
|
||||||
src/idl_gen_grpc.cpp
|
|
||||||
src/idl_gen_json_schema.cpp
|
|
||||||
src/idl_gen_swift.cpp
|
|
||||||
src/flatc.cpp
|
src/flatc.cpp
|
||||||
src/flatc_main.cpp
|
|
||||||
include/flatbuffers/code_generators.h
|
|
||||||
src/code_generators.cpp
|
|
||||||
grpc/src/compiler/schema_interface.h
|
|
||||||
grpc/src/compiler/cpp_generator.h
|
|
||||||
grpc/src/compiler/cpp_generator.cc
|
|
||||||
grpc/src/compiler/go_generator.h
|
|
||||||
grpc/src/compiler/go_generator.cc
|
|
||||||
grpc/src/compiler/java_generator.h
|
|
||||||
grpc/src/compiler/java_generator.cc
|
|
||||||
grpc/src/compiler/python_generator.h
|
|
||||||
grpc/src/compiler/python_generator.cc
|
|
||||||
grpc/src/compiler/swift_generator.h
|
|
||||||
grpc/src/compiler/swift_generator.cc
|
|
||||||
grpc/src/compiler/ts_generator.h
|
|
||||||
grpc/src/compiler/ts_generator.cc
|
|
||||||
)
|
|
||||||
|
|
||||||
set(FlatHash_SRCS
|
|
||||||
include/flatbuffers/hash.h
|
|
||||||
src/flathash.cpp
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(FlatBuffers_Tests_SRCS
|
set(FlatBuffers_Tests_SRCS
|
||||||
${FlatBuffers_Library_SRCS}
|
include/flatbuffers/flatbuffers.h
|
||||||
src/idl_gen_fbs.cpp
|
include/flatbuffers/idl.h
|
||||||
|
include/flatbuffers/util.h
|
||||||
|
src/idl_parser.cpp
|
||||||
|
src/idl_gen_text.cpp
|
||||||
tests/test.cpp
|
tests/test.cpp
|
||||||
tests/test_assert.h
|
|
||||||
tests/test_assert.cpp
|
|
||||||
tests/test_builder.h
|
|
||||||
tests/test_builder.cpp
|
|
||||||
tests/native_type_test_impl.h
|
|
||||||
tests/native_type_test_impl.cpp
|
|
||||||
include/flatbuffers/code_generators.h
|
|
||||||
src/code_generators.cpp
|
|
||||||
# file generate by running compiler on tests/monster_test.fbs
|
# file generate by running compiler on tests/monster_test.fbs
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h
|
tests/monster_test_generated.h
|
||||||
# file generate by running compiler on namespace_test/namespace_test1.fbs
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/namespace_test/namespace_test1_generated.h
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/namespace_test/namespace_test2_generated.h
|
|
||||||
# file generate by running compiler on union_vector/union_vector.fbs
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/union_vector/union_vector_generated.h
|
|
||||||
# file generate by running compiler on tests/arrays_test.fbs
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/arrays_test_generated.h
|
|
||||||
# file generate by running compiler on tests/native_type_test.fbs
|
|
||||||
${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
|
|
||||||
# file generate by running compiler on tests/optional_scalars.fbs
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/optional_scalars_generated.h
|
|
||||||
)
|
|
||||||
|
|
||||||
set(FlatBuffers_Tests_CPP17_SRCS
|
|
||||||
${FlatBuffers_Library_SRCS}
|
|
||||||
tests/test_assert.h
|
|
||||||
tests/test_assert.cpp
|
|
||||||
tests/cpp17/test_cpp17.cpp
|
|
||||||
# file generate by running compiler on tests/monster_test.fbs
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/cpp17/generated_cpp17/monster_test_generated.h
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/cpp17/generated_cpp17/optional_scalars_generated.h
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/optional_scalars_generated.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(FlatBuffers_Sample_Binary_SRCS
|
set(FlatBuffers_Sample_Binary_SRCS
|
||||||
include/flatbuffers/flatbuffers.h
|
include/flatbuffers/flatbuffers.h
|
||||||
samples/sample_binary.cpp
|
samples/sample_binary.cpp
|
||||||
# file generated by running compiler on samples/monster.fbs
|
# file generate by running compiler on samples/monster.fbs
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h
|
samples/monster_generated.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set(FlatBuffers_Sample_Text_SRCS
|
set(FlatBuffers_Sample_Text_SRCS
|
||||||
${FlatBuffers_Library_SRCS}
|
|
||||||
samples/sample_text.cpp
|
|
||||||
# file generated by running compiler on samples/monster.fbs
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h
|
|
||||||
)
|
|
||||||
|
|
||||||
set(FlatBuffers_Sample_BFBS_SRCS
|
|
||||||
${FlatBuffers_Library_SRCS}
|
|
||||||
samples/sample_bfbs.cpp
|
|
||||||
# file generated by running compiler on samples/monster.fbs
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h
|
|
||||||
)
|
|
||||||
|
|
||||||
set(FlatBuffers_GRPCTest_SRCS
|
|
||||||
include/flatbuffers/flatbuffers.h
|
include/flatbuffers/flatbuffers.h
|
||||||
include/flatbuffers/grpc.h
|
include/flatbuffers/idl.h
|
||||||
include/flatbuffers/util.h
|
include/flatbuffers/util.h
|
||||||
src/util.cpp
|
src/idl_parser.cpp
|
||||||
tests/monster_test.grpc.fb.h
|
src/idl_gen_text.cpp
|
||||||
tests/test_assert.h
|
samples/sample_text.cpp
|
||||||
tests/test_builder.h
|
# file generate by running compiler on samples/monster.fbs
|
||||||
tests/monster_test.grpc.fb.cc
|
samples/monster_generated.h
|
||||||
tests/test_assert.cpp
|
|
||||||
tests/test_builder.cpp
|
|
||||||
grpc/tests/grpctest.cpp
|
|
||||||
grpc/tests/message_builder_test.cpp
|
|
||||||
# file generate by running compiler on tests/monster_test.fbs
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(CMAKE_BUILD_TYPE Debug)
|
||||||
|
|
||||||
# source_group(Compiler FILES ${FlatBuffers_Compiler_SRCS})
|
# source_group(Compiler FILES ${FlatBuffers_Compiler_SRCS})
|
||||||
# source_group(Tests FILES ${FlatBuffers_Tests_SRCS})
|
# source_group(Tests FILES ${FlatBuffers_Tests_SRCS})
|
||||||
|
|
||||||
if(EXISTS "${CMAKE_TOOLCHAIN_FILE}")
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
# do not apply any global settings if the toolchain
|
add_definitions("-std=c++0x")
|
||||||
# is being configured externally
|
add_definitions("-Wall")
|
||||||
message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.")
|
|
||||||
elseif(APPLE)
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Werror -Wextra -Wno-unused-parameter")
|
|
||||||
set(FLATBUFFERS_PRIVATE_CXX_FLAGS "-Wold-style-cast")
|
|
||||||
elseif(CMAKE_COMPILER_IS_GNUCXX)
|
|
||||||
if(CYGWIN)
|
|
||||||
set(CMAKE_CXX_FLAGS
|
|
||||||
"${CMAKE_CXX_FLAGS} -std=gnu++11")
|
|
||||||
else(CYGWIN)
|
|
||||||
set(CMAKE_CXX_FLAGS
|
|
||||||
"${CMAKE_CXX_FLAGS} -std=c++0x")
|
|
||||||
endif(CYGWIN)
|
|
||||||
set(CMAKE_CXX_FLAGS
|
|
||||||
"${CMAKE_CXX_FLAGS} -Wall -pedantic -Werror -Wextra -Werror=shadow")
|
|
||||||
set(FLATBUFFERS_PRIVATE_CXX_FLAGS "-Wold-style-cast")
|
|
||||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.4)
|
|
||||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0)
|
|
||||||
set(CMAKE_CXX_FLAGS
|
|
||||||
"${CMAKE_CXX_FLAGS} -faligned-new -Werror=implicit-fallthrough=2")
|
|
||||||
endif()
|
|
||||||
set(CMAKE_CXX_FLAGS
|
|
||||||
"${CMAKE_CXX_FLAGS} -Wunused-result -Werror=unused-result -Wunused-parameter -Werror=unused-parameter")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Certain platforms such as ARM do not use signed chars by default
|
|
||||||
# which causes issues with certain bounds checks.
|
|
||||||
set(CMAKE_CXX_FLAGS
|
|
||||||
"${CMAKE_CXX_FLAGS} -fsigned-char")
|
|
||||||
|
|
||||||
elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
|
|
||||||
set(CMAKE_CXX_FLAGS
|
|
||||||
"${CMAKE_CXX_FLAGS} -std=c++0x -Wall -pedantic -Werror -Wextra -Wno-unused-parameter")
|
|
||||||
set(FLATBUFFERS_PRIVATE_CXX_FLAGS "-Wold-style-cast")
|
|
||||||
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.8)
|
|
||||||
list(APPEND FLATBUFFERS_PRIVATE_CXX_FLAGS "-Wimplicit-fallthrough" "-Wextra-semi" "-Werror=unused-private-field") # enable warning
|
|
||||||
endif()
|
|
||||||
if(FLATBUFFERS_LIBCXX_WITH_CLANG)
|
|
||||||
if(NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
|
|
||||||
set(CMAKE_CXX_FLAGS
|
|
||||||
"${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
|
||||||
endif()
|
|
||||||
if(NOT ("${CMAKE_SYSTEM_NAME}" MATCHES "FreeBSD" OR
|
|
||||||
"${CMAKE_SYSTEM_NAME}" MATCHES "Linux"))
|
|
||||||
set(CMAKE_EXE_LINKER_FLAGS
|
|
||||||
"${CMAKE_EXE_LINKER_FLAGS} -lc++abi")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Certain platforms such as ARM do not use signed chars by default
|
|
||||||
# which causes issues with certain bounds checks.
|
|
||||||
set(CMAKE_CXX_FLAGS
|
|
||||||
"${CMAKE_CXX_FLAGS} -fsigned-char")
|
|
||||||
|
|
||||||
elseif(MSVC)
|
|
||||||
# Visual Studio pedantic build settings
|
|
||||||
# warning C4512: assignment operator could not be generated
|
|
||||||
# warning C4316: object allocated on the heap may not be aligned
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /WX /wd4512 /wd4316")
|
|
||||||
|
|
||||||
# multi-core build.
|
|
||||||
add_definitions("/MP")
|
|
||||||
endif()
|
endif()
|
||||||
|
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||||
# Append FLATBUFFERS_CXX_FLAGS to CMAKE_CXX_FLAGS.
|
add_definitions("-std=c++0x")
|
||||||
if(DEFINED FLATBUFFERS_CXX_FLAGS AND NOT EXISTS "${CMAKE_TOOLCHAIN_FILE}")
|
|
||||||
message(STATUS "extend CXX_FLAGS with ${FLATBUFFERS_CXX_FLAGS}")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLATBUFFERS_CXX_FLAGS}")
|
|
||||||
endif()
|
endif()
|
||||||
message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
|
|
||||||
|
|
||||||
if(FLATBUFFERS_CODE_COVERAGE)
|
if(FLATBUFFERS_CODE_COVERAGE)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fprofile-arcs -ftest-coverage")
|
add_definitions("-g -fprofile-arcs -ftest-coverage")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
|
||||||
"${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
function(add_fsanitize_to_target _target _sanitizer)
|
|
||||||
if(WIN32)
|
|
||||||
target_compile_definitions(${_target} PRIVATE FLATBUFFERS_MEMORY_LEAK_TRACKING)
|
|
||||||
message(STATUS "Sanitizer MSVC::_CrtDumpMemoryLeaks added to ${_target}")
|
|
||||||
else()
|
|
||||||
# FLATBUFFERS_CODE_SANITIZE: boolean {ON,OFF,YES,NO} or string with list of sanitizer.
|
|
||||||
# List of sanitizer is string starts with '=': "=address,undefined,thread,memory".
|
|
||||||
if((${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") OR
|
|
||||||
((${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") AND NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9"))
|
|
||||||
)
|
|
||||||
set(_sanitizer_flags "=address,undefined")
|
|
||||||
if(_sanitizer MATCHES "=.*")
|
|
||||||
# override default by user-defined sanitizer list
|
|
||||||
set(_sanitizer_flags ${_sanitizer})
|
|
||||||
endif()
|
|
||||||
target_compile_options(${_target} PRIVATE
|
|
||||||
-g -fsigned-char -fno-omit-frame-pointer
|
|
||||||
"-fsanitize${_sanitizer_flags}")
|
|
||||||
target_link_libraries(${_target} PRIVATE
|
|
||||||
"-fsanitize${_sanitizer_flags}")
|
|
||||||
set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ON)
|
|
||||||
message(STATUS "Sanitizer ${_sanitizer_flags} added to ${_target}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
function(add_pch_to_target _target _pch_header)
|
|
||||||
if(COMMAND target_precompile_headers)
|
|
||||||
target_precompile_headers(${_target} PRIVATE ${_pch_header})
|
|
||||||
if(NOT MSVC)
|
|
||||||
set_source_files_properties(src/util.cpp PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
if(BIICODE)
|
|
||||||
include(biicode/cmake/biicode.cmake)
|
|
||||||
return()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(include)
|
include_directories(include)
|
||||||
include_directories(grpc)
|
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_FLATLIB)
|
add_executable(flatc ${FlatBuffers_Compiler_SRCS})
|
||||||
add_library(flatbuffers STATIC ${FlatBuffers_Library_SRCS})
|
add_executable(flattests ${FlatBuffers_Tests_SRCS})
|
||||||
# Attach header directory for when build via add_subdirectory().
|
add_executable(flatsamplebinary ${FlatBuffers_Sample_Binary_SRCS})
|
||||||
target_include_directories(flatbuffers INTERFACE
|
add_executable(flatsampletext ${FlatBuffers_Sample_Text_SRCS})
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
|
|
||||||
target_compile_options(flatbuffers PRIVATE "${FLATBUFFERS_PRIVATE_CXX_FLAGS}")
|
|
||||||
if(FLATBUFFERS_ENABLE_PCH)
|
|
||||||
add_pch_to_target(flatbuffers include/flatbuffers/pch/pch.h)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_FLATC)
|
add_test(NAME flattest
|
||||||
add_executable(flatc ${FlatBuffers_Compiler_SRCS})
|
CONFIGURATIONS Debug
|
||||||
if(FLATBUFFERS_ENABLE_PCH)
|
WORKING_DIRECTORY tests
|
||||||
add_pch_to_target(flatc include/flatbuffers/pch/flatc_pch.h)
|
COMMAND flattests)
|
||||||
endif()
|
|
||||||
target_compile_options(flatc PRIVATE "${FLATBUFFERS_PRIVATE_CXX_FLAGS}")
|
|
||||||
if(FLATBUFFERS_CODE_SANITIZE AND NOT WIN32)
|
|
||||||
add_fsanitize_to_target(flatc ${FLATBUFFERS_CODE_SANITIZE})
|
|
||||||
endif()
|
|
||||||
if(NOT FLATBUFFERS_FLATC_EXECUTABLE)
|
|
||||||
set(FLATBUFFERS_FLATC_EXECUTABLE $<TARGET_FILE:flatc>)
|
|
||||||
endif()
|
|
||||||
if(MSVC)
|
|
||||||
# Make flatc.exe not depend on runtime dlls for easy distribution.
|
|
||||||
target_compile_options(flatc PUBLIC $<$<CONFIG:Release>:/MT>)
|
|
||||||
endif()
|
|
||||||
if(FLATBUFFERS_STATIC_FLATC AND NOT MSVC)
|
|
||||||
target_link_libraries(flatc PRIVATE -static)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_FLATHASH)
|
|
||||||
add_executable(flathash ${FlatHash_SRCS})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_SHAREDLIB)
|
|
||||||
add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS})
|
|
||||||
|
|
||||||
# Shared object version: "major.minor.micro"
|
|
||||||
# - micro updated every release when there is no API/ABI changes
|
|
||||||
# - minor updated when there are additions in API/ABI
|
|
||||||
# - major (ABI number) updated when there are changes in ABI (or removals)
|
|
||||||
set(FlatBuffers_Library_SONAME_MAJOR "2")
|
|
||||||
set(FlatBuffers_Library_SONAME_FULL "${FlatBuffers_Library_SONAME_MAJOR}.0.0")
|
|
||||||
set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers
|
|
||||||
SOVERSION "${FlatBuffers_Library_SONAME_MAJOR}"
|
|
||||||
VERSION "${FlatBuffers_Library_SONAME_FULL}")
|
|
||||||
if(FLATBUFFERS_ENABLE_PCH)
|
|
||||||
add_pch_to_target(flatbuffers_shared include/flatbuffers/pch/pch.h)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Global list of generated files.
|
|
||||||
# Use the global property to be independent of PARENT_SCOPE.
|
|
||||||
set_property(GLOBAL PROPERTY FBS_GENERATED_OUTPUTS)
|
|
||||||
|
|
||||||
function(get_generated_output generated_files)
|
|
||||||
get_property(tmp GLOBAL PROPERTY FBS_GENERATED_OUTPUTS)
|
|
||||||
set(${generated_files} ${tmp} PARENT_SCOPE)
|
|
||||||
endfunction(get_generated_output)
|
|
||||||
|
|
||||||
function(register_generated_output file_name)
|
|
||||||
get_property(tmp GLOBAL PROPERTY FBS_GENERATED_OUTPUTS)
|
|
||||||
list(APPEND tmp ${file_name})
|
|
||||||
set_property(GLOBAL PROPERTY FBS_GENERATED_OUTPUTS ${tmp})
|
|
||||||
endfunction(register_generated_output)
|
|
||||||
|
|
||||||
function(compile_flatbuffers_schema_to_cpp_opt 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++ code with '${OPT}'")
|
|
||||||
get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH)
|
|
||||||
string(REGEX REPLACE "\\.fbs$" "_generated.h" GEN_HEADER ${SRC_FBS})
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${GEN_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}
|
|
||||||
-I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test"
|
|
||||||
-o "${SRC_FBS_DIR}"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}"
|
|
||||||
DEPENDS flatc
|
|
||||||
COMMENT "Run generation: '${GEN_HEADER}'")
|
|
||||||
register_generated_output(${GEN_HEADER})
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
function(compile_flatbuffers_schema_to_cpp SRC_FBS)
|
|
||||||
compile_flatbuffers_schema_to_cpp_opt(${SRC_FBS} "--no-includes;--gen-compare")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
function(compile_flatbuffers_schema_to_binary SRC_FBS)
|
|
||||||
message(STATUS "`${SRC_FBS}`: add generation of binary (.bfbs) schema")
|
|
||||||
get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH)
|
|
||||||
string(REGEX REPLACE "\\.fbs$" ".bfbs" GEN_BINARY_SCHEMA ${SRC_FBS})
|
|
||||||
# For details about flags see generate_code.bat(sh)
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${GEN_BINARY_SCHEMA}
|
|
||||||
COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}"
|
|
||||||
-b --schema --bfbs-comments --bfbs-builtins
|
|
||||||
-I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test"
|
|
||||||
-o "${SRC_FBS_DIR}"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}"
|
|
||||||
DEPENDS flatc
|
|
||||||
COMMENT "Run generation: '${GEN_BINARY_SCHEMA}'")
|
|
||||||
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}")
|
|
||||||
|
|
||||||
# TODO Add (monster_test.fbs monsterdata_test.json)->monsterdata_test.mon
|
|
||||||
compile_flatbuffers_schema_to_cpp(tests/monster_test.fbs)
|
|
||||||
compile_flatbuffers_schema_to_binary(tests/monster_test.fbs)
|
|
||||||
compile_flatbuffers_schema_to_cpp(tests/namespace_test/namespace_test1.fbs)
|
|
||||||
compile_flatbuffers_schema_to_cpp(tests/namespace_test/namespace_test2.fbs)
|
|
||||||
compile_flatbuffers_schema_to_cpp(tests/union_vector/union_vector.fbs)
|
|
||||||
compile_flatbuffers_schema_to_cpp(tests/optional_scalars.fbs)
|
|
||||||
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()
|
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/tests)
|
|
||||||
add_executable(flattests ${FlatBuffers_Tests_SRCS})
|
|
||||||
add_dependencies(flattests generated_code)
|
|
||||||
set_property(TARGET flattests
|
|
||||||
PROPERTY COMPILE_DEFINITIONS FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE
|
|
||||||
FLATBUFFERS_DEBUG_VERIFICATION_FAILURE=1)
|
|
||||||
if(FLATBUFFERS_CODE_SANITIZE)
|
|
||||||
add_fsanitize_to_target(flattests ${FLATBUFFERS_CODE_SANITIZE})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
compile_flatbuffers_schema_to_cpp(samples/monster.fbs)
|
|
||||||
compile_flatbuffers_schema_to_binary(samples/monster.fbs)
|
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/samples)
|
|
||||||
add_executable(flatsamplebinary ${FlatBuffers_Sample_Binary_SRCS})
|
|
||||||
add_dependencies(flatsamplebinary generated_code)
|
|
||||||
add_executable(flatsampletext ${FlatBuffers_Sample_Text_SRCS})
|
|
||||||
add_dependencies(flatsampletext generated_code)
|
|
||||||
add_executable(flatsamplebfbs ${FlatBuffers_Sample_BFBS_SRCS})
|
|
||||||
add_dependencies(flatsamplebfbs generated_code)
|
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_CPP17)
|
|
||||||
# Don't generate header for flattests_cpp17 target.
|
|
||||||
# This target uses "generated_cpp17/monster_test_generated.h"
|
|
||||||
# produced by direct call of generate_code.bat(sh) script.
|
|
||||||
add_executable(flattests_cpp17 ${FlatBuffers_Tests_CPP17_SRCS})
|
|
||||||
add_dependencies(flattests_cpp17 generated_code)
|
|
||||||
target_compile_features(flattests_cpp17 PRIVATE cxx_std_17)
|
|
||||||
target_compile_definitions(flattests_cpp17 PRIVATE
|
|
||||||
FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE
|
|
||||||
FLATBUFFERS_DEBUG_VERIFICATION_FAILURE=1
|
|
||||||
)
|
|
||||||
if(FLATBUFFERS_CODE_SANITIZE)
|
|
||||||
add_fsanitize_to_target(flattests_cpp17 ${FLATBUFFERS_CODE_SANITIZE})
|
|
||||||
endif()
|
|
||||||
endif(FLATBUFFERS_BUILD_CPP17)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_GRPCTEST)
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter -Wno-shadow")
|
|
||||||
endif()
|
|
||||||
if(NOT GRPC_INSTALL_PATH)
|
|
||||||
message(SEND_ERROR "GRPC_INSTALL_PATH variable is not defined. See grpc/README.md")
|
|
||||||
endif()
|
|
||||||
if(NOT PROTOBUF_DOWNLOAD_PATH)
|
|
||||||
message(SEND_ERROR "PROTOBUF_DOWNLOAD_PATH variable is not defined. See grpc/README.md")
|
|
||||||
endif()
|
|
||||||
INCLUDE_DIRECTORIES(${GRPC_INSTALL_PATH}/include)
|
|
||||||
INCLUDE_DIRECTORIES(${PROTOBUF_DOWNLOAD_PATH}/src)
|
|
||||||
find_package(Threads REQUIRED)
|
|
||||||
list(APPEND CMAKE_PREFIX_PATH ${GRPC_INSTALL_PATH})
|
|
||||||
find_package(protobuf CONFIG REQUIRED)
|
|
||||||
find_package(gRPC CONFIG REQUIRED)
|
|
||||||
add_executable(grpctest ${FlatBuffers_GRPCTest_SRCS})
|
|
||||||
add_dependencies(grpctest generated_code)
|
|
||||||
target_link_libraries(grpctest PRIVATE gRPC::grpc++_unsecure gRPC::grpc_unsecure gRPC::gpr pthread dl)
|
|
||||||
if(FLATBUFFERS_CODE_SANITIZE AND NOT WIN32)
|
|
||||||
# GRPC test has problems with alignment and will fail under ASAN/UBSAN.
|
|
||||||
# add_fsanitize_to_target(grpctest ${FLATBUFFERS_CODE_SANITIZE})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(CMake/Version.cmake)
|
|
||||||
|
|
||||||
if(FLATBUFFERS_INSTALL)
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
|
|
||||||
install(DIRECTORY include/flatbuffers DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
||||||
|
|
||||||
set(FB_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/flatbuffers")
|
|
||||||
|
|
||||||
configure_file(CMake/FlatbuffersConfigVersion.cmake.in FlatbuffersConfigVersion.cmake @ONLY)
|
|
||||||
install(
|
|
||||||
FILES "CMake/FlatbuffersConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/FlatbuffersConfigVersion.cmake"
|
|
||||||
DESTINATION ${FB_CMAKE_DIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_FLATLIB)
|
|
||||||
if(CMAKE_VERSION VERSION_LESS 3.0)
|
|
||||||
install(
|
|
||||||
TARGETS flatbuffers EXPORT FlatbuffersTargets
|
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
install(
|
|
||||||
TARGETS flatbuffers EXPORT FlatbuffersTargets
|
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
install(EXPORT FlatbuffersTargets
|
|
||||||
FILE FlatbuffersTargets.cmake
|
|
||||||
NAMESPACE flatbuffers::
|
|
||||||
DESTINATION ${FB_CMAKE_DIR}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_FLATC)
|
|
||||||
install(
|
|
||||||
TARGETS flatc EXPORT FlatcTargets
|
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
EXPORT FlatcTargets
|
|
||||||
FILE FlatcTargets.cmake
|
|
||||||
NAMESPACE flatbuffers::
|
|
||||||
DESTINATION ${FB_CMAKE_DIR}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_SHAREDLIB)
|
|
||||||
if(CMAKE_VERSION VERSION_LESS 3.0)
|
|
||||||
install(
|
|
||||||
TARGETS flatbuffers_shared EXPORT FlatbuffersSharedTargets
|
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
install(
|
|
||||||
TARGETS flatbuffers_shared EXPORT FlatbuffersSharedTargets
|
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
install(
|
|
||||||
EXPORT FlatbuffersSharedTargets
|
|
||||||
FILE FlatbuffersSharedTargets.cmake
|
|
||||||
NAMESPACE flatbuffers::
|
|
||||||
DESTINATION ${FB_CMAKE_DIR}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_SHAREDLIB OR FLATBUFFERS_BUILD_FLATLIB)
|
|
||||||
configure_file(CMake/flatbuffers.pc.in flatbuffers.pc @ONLY)
|
|
||||||
install(
|
|
||||||
FILES "${CMAKE_CURRENT_BINARY_DIR}/flatbuffers.pc"
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(FLATBUFFERS_BUILD_TESTS)
|
|
||||||
enable_testing()
|
|
||||||
|
|
||||||
add_test(NAME flattests COMMAND flattests)
|
|
||||||
if(FLATBUFFERS_BUILD_CPP17)
|
|
||||||
add_test(NAME flattests_cpp17 COMMAND flattests_cpp17)
|
|
||||||
endif()
|
|
||||||
if(FLATBUFFERS_BUILD_GRPCTEST)
|
|
||||||
add_test(NAME grpctest COMMAND grpctest)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# This target is sync-barrier.
|
|
||||||
# Other generate-dependent targets can depend on 'generated_code' only.
|
|
||||||
get_generated_output(fbs_generated)
|
|
||||||
if(fbs_generated)
|
|
||||||
# message(STATUS "Add generated_code target with files:${fbs_generated}")
|
|
||||||
add_custom_target(generated_code
|
|
||||||
DEPENDS ${fbs_generated}
|
|
||||||
COMMENT "All generated files were updated.")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(CMake/BuildFlatBuffers.cmake)
|
|
||||||
|
|
||||||
if(UNIX)
|
|
||||||
# Use of CPack only supported on Linux systems.
|
|
||||||
if(FLATBUFFERS_PACKAGE_DEBIAN)
|
|
||||||
include(CMake/PackageDebian.cmake)
|
|
||||||
include(CPack)
|
|
||||||
endif()
|
|
||||||
if (FLATBUFFERS_PACKAGE_REDHAT)
|
|
||||||
include(CMake/PackageRedhat.cmake)
|
|
||||||
include(CPack)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
Contributing {#contributing}
|
|
||||||
============
|
|
||||||
|
|
||||||
Want to contribute? Great! First, read this page (including the small print at
|
|
||||||
the end).
|
|
||||||
|
|
||||||
# Before you contribute
|
|
||||||
Before we can use your code, you must sign the
|
|
||||||
[Google Individual Contributor License Agreement](https://developers.google.com/open-source/cla/individual?csw=1)
|
|
||||||
(CLA), which you can do online. The CLA is necessary mainly because you own the
|
|
||||||
copyright to your changes, even after your contribution becomes part of our
|
|
||||||
codebase, so we need your permission to use and distribute your code. We also
|
|
||||||
need to be sure of various other things—for instance that you'll tell us if you
|
|
||||||
know that your code infringes on other people's patents. You don't have to sign
|
|
||||||
the CLA until after you've submitted your code for review and a member has
|
|
||||||
approved it, but you must do it before we can put your code into our codebase.
|
|
||||||
Before you start working on a larger contribution, you should get in touch with
|
|
||||||
us first through the issue tracker with your idea so that we can help out and
|
|
||||||
possibly guide you. Coordinating up front makes it much easier to avoid
|
|
||||||
frustration later on.
|
|
||||||
|
|
||||||
# Code reviews
|
|
||||||
All submissions, including submissions by project members, require review. We
|
|
||||||
use Github pull requests for this purpose.
|
|
||||||
|
|
||||||
Some tips for good pull requests:
|
|
||||||
* Use our code
|
|
||||||
[style guide](https://google.github.io/styleguide/cppguide.html).
|
|
||||||
When in doubt, try to stay true to the existing code of the project.
|
|
||||||
* Write a descriptive commit message. What problem are you solving and what
|
|
||||||
are the consequences? Where and what did you test? Some good tips:
|
|
||||||
[here](http://robots.thoughtbot.com/5-useful-tips-for-a-better-commit-message)
|
|
||||||
and [here](https://www.kernel.org/doc/Documentation/SubmittingPatches).
|
|
||||||
* If your PR consists of multiple commits which are successive improvements /
|
|
||||||
fixes to your first commit, consider squashing them into a single commit
|
|
||||||
(`git rebase -i`) such that your PR is a single commit on top of the current
|
|
||||||
HEAD. This make reviewing the code so much easier, and our history more
|
|
||||||
readable.
|
|
||||||
|
|
||||||
# The small print
|
|
||||||
Contributions made by corporations are covered by a different agreement than
|
|
||||||
the one above, the Software Grant and Corporate Contributor License Agreement.
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
# Format Guidelines
|
|
||||||
|
|
||||||
If you are interesting in contributing to the flatbuffers project, please take a second to read this document. Each language has it's own set of rules, that are defined in their respective formatter/linter documents.
|
|
||||||
|
|
||||||
# Notes
|
|
||||||
|
|
||||||
- Run the linter on the language you are working on before making a Pull Request.
|
|
||||||
- DONT format/lint the generated code.
|
|
||||||
|
|
||||||
# Languages
|
|
||||||
|
|
||||||
## C++
|
|
||||||
|
|
||||||
C++ uses `clang-format` as it's formatter. Run the following script `sh src/clang-format-git.sh`, and it should style the C++ code according to [google style guide](https://google.github.io/styleguide/cppguide.html).
|
|
||||||
|
|
||||||
## Swift
|
|
||||||
|
|
||||||
Swift uses swiftformat as it's formatter. Take a look at [how to install here](https://github.com/nicklockwood/SwiftFormat/blob/master/README.md#how-do-i-install-it). Run the following command `swiftformat --config swift.swiftformat .` in the root directory of the project
|
|
||||||
|
|
||||||
## Typescript
|
|
||||||
|
|
||||||
Typescript uses eslint as it's linter. Take a look at [how to install here](https://eslint.org/docs/user-guide/getting-started). Run the following command `eslint ts/** --ext .ts` in the root directory of the project
|
|
||||||
0
LICENSE.txt
Normal file → Executable file
46
WORKSPACE
@@ -1,46 +0,0 @@
|
|||||||
workspace(name = "com_github_google_flatbuffers")
|
|
||||||
|
|
||||||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
||||||
|
|
||||||
http_archive(
|
|
||||||
name = "io_bazel_rules_go",
|
|
||||||
sha256 = "d1ffd055969c8f8d431e2d439813e42326961d0942bdf734d2c95dc30c369566",
|
|
||||||
urls = [
|
|
||||||
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.24.5/rules_go-v0.24.5.tar.gz",
|
|
||||||
"https://github.com/bazelbuild/rules_go/releases/download/v0.24.5/rules_go-v0.24.5.tar.gz",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
|
|
||||||
|
|
||||||
go_rules_dependencies()
|
|
||||||
|
|
||||||
go_register_toolchains()
|
|
||||||
|
|
||||||
##### Protobuf
|
|
||||||
_PROTOBUF_VERSION = "3.15.2"
|
|
||||||
|
|
||||||
http_archive(
|
|
||||||
name = "com_google_protobuf",
|
|
||||||
strip_prefix = "protobuf-" + _PROTOBUF_VERSION,
|
|
||||||
urls = [
|
|
||||||
"https://github.com/protocolbuffers/protobuf/archive/v" + _PROTOBUF_VERSION + ".tar.gz",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
##### GRPC
|
|
||||||
_GRPC_VERSION = "1.36.1"
|
|
||||||
|
|
||||||
http_archive(
|
|
||||||
name = "com_github_grpc_grpc",
|
|
||||||
strip_prefix = "grpc-" + _GRPC_VERSION,
|
|
||||||
urls = ["https://github.com/grpc/grpc/archive/v" + _GRPC_VERSION + ".tar.gz"],
|
|
||||||
)
|
|
||||||
|
|
||||||
load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
|
|
||||||
|
|
||||||
grpc_deps()
|
|
||||||
|
|
||||||
load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
|
|
||||||
|
|
||||||
grpc_extra_deps()
|
|
||||||
0
android/.project
Normal file → Executable file
11
android/AndroidManifest.xml
Normal file → Executable file
@@ -17,14 +17,17 @@
|
|||||||
-->
|
-->
|
||||||
<!-- BEGIN_INCLUDE(manifest) -->
|
<!-- BEGIN_INCLUDE(manifest) -->
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.example.FlatBufferTest">
|
package="com.example.FlatBufferTest"
|
||||||
|
android:versionCode="1"
|
||||||
|
android:versionName="1.0">
|
||||||
|
|
||||||
<uses-feature android:glEsVersion="0x00020000"></uses-feature>
|
<uses-feature android:glEsVersion="0x00020000"></uses-feature>
|
||||||
|
<!-- This is the platform API where NativeActivity was introduced. -->
|
||||||
|
<uses-sdk android:minSdkVersion="9" />
|
||||||
|
|
||||||
<!-- This .apk has no Java code itself, so set hasCode to false. -->
|
<!-- This .apk has no Java code itself, so set hasCode to false. -->
|
||||||
<application android:label="@string/app_name"
|
<application android:label="@string/app_name" android:hasCode="false">
|
||||||
android:hasCode="false"
|
|
||||||
android:allowBackup="false">
|
|
||||||
<!-- Our activity is the built-in NativeActivity framework class.
|
<!-- Our activity is the built-in NativeActivity framework class.
|
||||||
This will take care of integrating with our NDK code. -->
|
This will take care of integrating with our NDK code. -->
|
||||||
<activity android:name="android.app.NativeActivity"
|
<activity android:name="android.app.NativeActivity"
|
||||||
|
|||||||
1
android/app/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
/build
|
|
||||||
@@ -1,144 +0,0 @@
|
|||||||
apply plugin: 'com.android.application'
|
|
||||||
apply plugin: 'kotlin-android'
|
|
||||||
apply plugin: 'kotlin-android-extensions'
|
|
||||||
|
|
||||||
android {
|
|
||||||
compileSdkVersion 30
|
|
||||||
buildToolsVersion "30.0.2"
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
applicationId "com.flatbuffers.app"
|
|
||||||
minSdkVersion 16
|
|
||||||
targetSdkVersion 30
|
|
||||||
versionCode 1
|
|
||||||
versionName "1.0"
|
|
||||||
|
|
||||||
compileOptions {
|
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
|
||||||
targetCompatibility JavaVersion.VERSION_1_8
|
|
||||||
}
|
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
||||||
externalNativeBuild {
|
|
||||||
cmake {
|
|
||||||
arguments "-DFLATBUFFERS_SRC=${rootProject.projectDir}/.."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
buildTypes {
|
|
||||||
release {
|
|
||||||
minifyEnabled false
|
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ndkVersion "21.3.6528147"
|
|
||||||
externalNativeBuild {
|
|
||||||
cmake {
|
|
||||||
path "src/main/cpp/CMakeLists.txt"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
task generateFbsCpp(type: Exec) {
|
|
||||||
def inputDir = file("$projectDir/src/main/fbs")
|
|
||||||
def outputCppDir = file("$projectDir/src/main/cpp/generated/")
|
|
||||||
def fbsFiles = layout.files { file(inputDir).listFiles() }.filter { File f -> f.name.endsWith(".fbs") }.toList()
|
|
||||||
ignoreExitValue(true)
|
|
||||||
|
|
||||||
standardOutput = new ByteArrayOutputStream()
|
|
||||||
errorOutput = new ByteArrayOutputStream()
|
|
||||||
def commandLineArgs = ['flatc', '-o', outputCppDir, '--cpp']
|
|
||||||
fbsFiles.forEach{
|
|
||||||
commandLineArgs.add(it.path)
|
|
||||||
}
|
|
||||||
commandLine commandLineArgs
|
|
||||||
|
|
||||||
doFirst {
|
|
||||||
delete "$outputCppDir/"
|
|
||||||
mkdir "$outputCppDir/"
|
|
||||||
}
|
|
||||||
doLast {
|
|
||||||
if (execResult.getExitValue() != 0) {
|
|
||||||
println(standardOutput.toString())
|
|
||||||
throw new GradleException("flatc command line failed")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
task generateFbsKotlin(type: Exec) {
|
|
||||||
def inputDir = file("$projectDir/src/main/fbs")
|
|
||||||
def outputKotlinDir = file("$projectDir/src/main/java/generated/")
|
|
||||||
def fbsFiles = layout.files { file(inputDir).listFiles() }.filter { File f -> f.name.endsWith(".fbs") }.toList()
|
|
||||||
ignoreExitValue(true)
|
|
||||||
|
|
||||||
standardOutput = new ByteArrayOutputStream()
|
|
||||||
errorOutput = new ByteArrayOutputStream()
|
|
||||||
def commandLineArgs = ['flatc', '-o', outputKotlinDir, '--kotlin']
|
|
||||||
fbsFiles.forEach{
|
|
||||||
commandLineArgs.add(it.path)
|
|
||||||
}
|
|
||||||
commandLine commandLineArgs
|
|
||||||
|
|
||||||
doFirst {
|
|
||||||
delete "$outputKotlinDir/"
|
|
||||||
mkdir "$outputKotlinDir/"
|
|
||||||
}
|
|
||||||
doLast {
|
|
||||||
if (execResult.getExitValue() != 0) {
|
|
||||||
println(standardOutput.toString())
|
|
||||||
throw new GradleException("flatc command line failed")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
afterEvaluate {
|
|
||||||
android.applicationVariants.all { variant ->
|
|
||||||
variant.javaCompiler.dependsOn(generateFbsKotlin)
|
|
||||||
variant.javaCompiler.dependsOn(generateFbsCpp)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
flavorDimensions "stl-variant"
|
|
||||||
productFlavors {
|
|
||||||
stlport {
|
|
||||||
dimension "stl-variant"
|
|
||||||
applicationIdSuffix ".stlport"
|
|
||||||
versionNameSuffix "-stlport"
|
|
||||||
externalNativeBuild {
|
|
||||||
ndkBuild {
|
|
||||||
arguments "APP_STL=stlport_static"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
gnustl {
|
|
||||||
dimension "stl-variant"
|
|
||||||
applicationIdSuffix ".gnustl"
|
|
||||||
versionNameSuffix "-gnustl"
|
|
||||||
externalNativeBuild {
|
|
||||||
ndkBuild {
|
|
||||||
arguments "APP_STL=gnustl_static"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
libcpp {
|
|
||||||
dimension "stl-variant"
|
|
||||||
applicationIdSuffix ".libcpp"
|
|
||||||
versionNameSuffix "-libcpp"
|
|
||||||
externalNativeBuild {
|
|
||||||
ndkBuild {
|
|
||||||
arguments "APP_STL=c++_static"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
||||||
implementation 'androidx.core:core-ktx:1.3.2'
|
|
||||||
implementation 'androidx.appcompat:appcompat:1.2.0'
|
|
||||||
implementation 'com.google.flatbuffers:flatbuffers-java:2.0.0'
|
|
||||||
|
|
||||||
}
|
|
||||||
21
android/app/proguard-rules.pro
vendored
@@ -1,21 +0,0 @@
|
|||||||
# Add project specific ProGuard rules here.
|
|
||||||
# You can control the set of applied configuration files using the
|
|
||||||
# proguardFiles setting in build.gradle.
|
|
||||||
#
|
|
||||||
# For more details, see
|
|
||||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
|
||||||
|
|
||||||
# If your project uses WebView with JS, uncomment the following
|
|
||||||
# and specify the fully qualified class name to the JavaScript interface
|
|
||||||
# class:
|
|
||||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
|
||||||
# public *;
|
|
||||||
#}
|
|
||||||
|
|
||||||
# Uncomment this to preserve the line number information for
|
|
||||||
# debugging stack traces.
|
|
||||||
#-keepattributes SourceFile,LineNumberTable
|
|
||||||
|
|
||||||
# If you keep the line number information, uncomment this to
|
|
||||||
# hide the original source file name.
|
|
||||||
#-renamesourcefileattribute SourceFile
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
package="com.flatbuffers.app">
|
|
||||||
|
|
||||||
<application
|
|
||||||
android:allowBackup="true"
|
|
||||||
android:icon="@mipmap/ic_launcher"
|
|
||||||
android:label="@string/app_name"
|
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
|
||||||
android:supportsRtl="true"
|
|
||||||
android:theme="@style/AppTheme">
|
|
||||||
<activity android:name=".MainActivity">
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.MAIN" />
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
|
||||||
</intent-filter>
|
|
||||||
</activity>
|
|
||||||
</application>
|
|
||||||
|
|
||||||
</manifest>
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
# For more information about using CMake with Android Studio, read the
|
|
||||||
# documentation: https://d.android.com/studio/projects/add-native-code.html
|
|
||||||
|
|
||||||
# Sets the minimum version of CMake required to build the native library.
|
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.4.1)
|
|
||||||
|
|
||||||
# Creates and names a library, sets it as either STATIC
|
|
||||||
# or SHARED, and provides the relative paths to its source code.
|
|
||||||
# You can define multiple libraries, and CMake builds them for you.
|
|
||||||
# Gradle automatically packages shared libraries with your APK.
|
|
||||||
|
|
||||||
include_directories(${FLATBUFFERS_SRC}/include)
|
|
||||||
|
|
||||||
add_subdirectory(flatbuffers)
|
|
||||||
|
|
||||||
FILE(GLOB Generated_SRCS generated/*.h)
|
|
||||||
|
|
||||||
add_library( # Sets the name of the library.
|
|
||||||
native-lib
|
|
||||||
|
|
||||||
# Sets the library as a shared library.
|
|
||||||
SHARED
|
|
||||||
|
|
||||||
# Provides a relative path to your source file(s).
|
|
||||||
animals.cpp
|
|
||||||
${Generated_SRCS}
|
|
||||||
|
|
||||||
)
|
|
||||||
|
|
||||||
# Searches for a specified prebuilt library and stores the path as a
|
|
||||||
# variable. Because CMake includes system libraries in the search path by
|
|
||||||
# default, you only need to specify the name of the public NDK library
|
|
||||||
# you want to add. CMake verifies that the library exists before
|
|
||||||
# completing its build.
|
|
||||||
|
|
||||||
find_library( # Sets the name of the path variable.
|
|
||||||
log-lib
|
|
||||||
|
|
||||||
# Specifies the name of the NDK library that
|
|
||||||
# you want CMake to locate.
|
|
||||||
log )
|
|
||||||
|
|
||||||
# Specifies libraries CMake should link to your target library. You
|
|
||||||
# can link multiple libraries, such as libraries you define in this
|
|
||||||
# build script, prebuilt third-party libraries, or system libraries.
|
|
||||||
|
|
||||||
target_link_libraries( # Specifies the target library.
|
|
||||||
native-lib
|
|
||||||
flatbuffers
|
|
||||||
flatbuffers_tests
|
|
||||||
# Links the target library to the log library
|
|
||||||
# included in the NDK.
|
|
||||||
${log-lib} )
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2014 Google Inc. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <jni.h>
|
|
||||||
#include <string>
|
|
||||||
#include <search.h>
|
|
||||||
#include "generated/animal_generated.h"
|
|
||||||
|
|
||||||
using namespace com::fbs::app;
|
|
||||||
using namespace flatbuffers;
|
|
||||||
|
|
||||||
extern "C" JNIEXPORT jbyteArray JNICALL Java_com_flatbuffers_app_MainActivity_createAnimalFromJNI(
|
|
||||||
JNIEnv* env,
|
|
||||||
jobject /* this */) {
|
|
||||||
// create a new animal flatbuffers
|
|
||||||
auto fb = FlatBufferBuilder(1024);
|
|
||||||
auto tiger = CreateAnimalDirect(fb, "Tiger", "Roar", 300);
|
|
||||||
fb.Finish(tiger);
|
|
||||||
|
|
||||||
// copies it to a Java byte array.
|
|
||||||
auto buf = reinterpret_cast<jbyte*>(fb.GetBufferPointer());
|
|
||||||
int size = fb.GetSize();
|
|
||||||
auto ret = env->NewByteArray(size);
|
|
||||||
env->SetByteArrayRegion (ret, 0, fb.GetSize(), buf);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
# For more information about using CMake with Android Studio, read the
|
|
||||||
# documentation: https://d.android.com/studio/projects/add-native-code.html
|
|
||||||
|
|
||||||
# Sets the minimum version of CMake required to build the native library.
|
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.4.1)
|
|
||||||
|
|
||||||
include_directories(${FLATBUFFERS_SRC}/include)
|
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -fexceptions -Wall -DFLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE")
|
|
||||||
|
|
||||||
# Certain platforms such as ARM do not use signed chars by default
|
|
||||||
# which causes issues with certain bounds checks.
|
|
||||||
set(CMAKE_CXX_FLAGS
|
|
||||||
"${CMAKE_CXX_FLAGS} -fsigned-char")
|
|
||||||
|
|
||||||
set(FlatBuffers_Library_SRCS
|
|
||||||
${FLATBUFFERS_SRC}/include/flatbuffers/base.h
|
|
||||||
${FLATBUFFERS_SRC}/include/flatbuffers/flatbuffers.h
|
|
||||||
${FLATBUFFERS_SRC}/include/flatbuffers/hash.h
|
|
||||||
${FLATBUFFERS_SRC}/include/flatbuffers/idl.h
|
|
||||||
${FLATBUFFERS_SRC}/include/flatbuffers/util.h
|
|
||||||
${FLATBUFFERS_SRC}/include/flatbuffers/reflection.h
|
|
||||||
${FLATBUFFERS_SRC}/include/flatbuffers/reflection_generated.h
|
|
||||||
${FLATBUFFERS_SRC}/include/flatbuffers/stl_emulation.h
|
|
||||||
${FLATBUFFERS_SRC}/include/flatbuffers/flexbuffers.h
|
|
||||||
${FLATBUFFERS_SRC}/include/flatbuffers/registry.h
|
|
||||||
${FLATBUFFERS_SRC}/include/flatbuffers/minireflect.h
|
|
||||||
${FLATBUFFERS_SRC}/src/idl_parser.cpp
|
|
||||||
${FLATBUFFERS_SRC}/src/idl_gen_text.cpp
|
|
||||||
${FLATBUFFERS_SRC}/src/reflection.cpp
|
|
||||||
${FLATBUFFERS_SRC}/src/util.cpp
|
|
||||||
${FLATBUFFERS_SRC}/src/idl_gen_fbs.cpp
|
|
||||||
${FLATBUFFERS_SRC}/src/code_generators.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
set(FlatBuffers_Test_SRCS
|
|
||||||
${FLATBUFFERS_SRC}/tests/test.cpp
|
|
||||||
${FLATBUFFERS_SRC}/tests/test_assert.h
|
|
||||||
${FLATBUFFERS_SRC}/tests/test_builder.h
|
|
||||||
${FLATBUFFERS_SRC}/tests/test_assert.cpp
|
|
||||||
${FLATBUFFERS_SRC}/tests/test_builder.cpp
|
|
||||||
${FLATBUFFERS_SRC}/tests/native_type_test_impl.h
|
|
||||||
${FLATBUFFERS_SRC}/tests/native_type_test_impl.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library( # Sets the name of the library.
|
|
||||||
flatbuffers
|
|
||||||
|
|
||||||
${FlatBuffers_Library_SRCS}
|
|
||||||
${FlatBuffers_Test_SRCS}
|
|
||||||
${Generated_SRCS}
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library( # Sets the name of the library.
|
|
||||||
flatbuffers_tests
|
|
||||||
|
|
||||||
${FlatBuffers_Test_SRCS}
|
|
||||||
)
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
// automatically generated by the FlatBuffers compiler, do not modify
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef FLATBUFFERS_GENERATED_ANIMAL_COM_FBS_APP_H_
|
|
||||||
#define FLATBUFFERS_GENERATED_ANIMAL_COM_FBS_APP_H_
|
|
||||||
|
|
||||||
#include "flatbuffers/flatbuffers.h"
|
|
||||||
|
|
||||||
namespace com {
|
|
||||||
namespace fbs {
|
|
||||||
namespace app {
|
|
||||||
|
|
||||||
struct Animal;
|
|
||||||
struct AnimalBuilder;
|
|
||||||
|
|
||||||
struct Animal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
|
||||||
typedef AnimalBuilder Builder;
|
|
||||||
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
|
|
||||||
VT_NAME = 4,
|
|
||||||
VT_SOUND = 6,
|
|
||||||
VT_WEIGHT = 8
|
|
||||||
};
|
|
||||||
const flatbuffers::String *name() const {
|
|
||||||
return GetPointer<const flatbuffers::String *>(VT_NAME);
|
|
||||||
}
|
|
||||||
const flatbuffers::String *sound() const {
|
|
||||||
return GetPointer<const flatbuffers::String *>(VT_SOUND);
|
|
||||||
}
|
|
||||||
uint16_t weight() const {
|
|
||||||
return GetField<uint16_t>(VT_WEIGHT, 0);
|
|
||||||
}
|
|
||||||
bool Verify(flatbuffers::Verifier &verifier) const {
|
|
||||||
return VerifyTableStart(verifier) &&
|
|
||||||
VerifyOffset(verifier, VT_NAME) &&
|
|
||||||
verifier.VerifyString(name()) &&
|
|
||||||
VerifyOffset(verifier, VT_SOUND) &&
|
|
||||||
verifier.VerifyString(sound()) &&
|
|
||||||
VerifyField<uint16_t>(verifier, VT_WEIGHT) &&
|
|
||||||
verifier.EndTable();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct AnimalBuilder {
|
|
||||||
typedef Animal Table;
|
|
||||||
flatbuffers::FlatBufferBuilder &fbb_;
|
|
||||||
flatbuffers::uoffset_t start_;
|
|
||||||
void add_name(flatbuffers::Offset<flatbuffers::String> name) {
|
|
||||||
fbb_.AddOffset(Animal::VT_NAME, name);
|
|
||||||
}
|
|
||||||
void add_sound(flatbuffers::Offset<flatbuffers::String> sound) {
|
|
||||||
fbb_.AddOffset(Animal::VT_SOUND, sound);
|
|
||||||
}
|
|
||||||
void add_weight(uint16_t weight) {
|
|
||||||
fbb_.AddElement<uint16_t>(Animal::VT_WEIGHT, weight, 0);
|
|
||||||
}
|
|
||||||
explicit AnimalBuilder(flatbuffers::FlatBufferBuilder &_fbb)
|
|
||||||
: fbb_(_fbb) {
|
|
||||||
start_ = fbb_.StartTable();
|
|
||||||
}
|
|
||||||
AnimalBuilder &operator=(const AnimalBuilder &);
|
|
||||||
flatbuffers::Offset<Animal> Finish() {
|
|
||||||
const auto end = fbb_.EndTable(start_);
|
|
||||||
auto o = flatbuffers::Offset<Animal>(end);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
inline flatbuffers::Offset<Animal> CreateAnimal(
|
|
||||||
flatbuffers::FlatBufferBuilder &_fbb,
|
|
||||||
flatbuffers::Offset<flatbuffers::String> name = 0,
|
|
||||||
flatbuffers::Offset<flatbuffers::String> sound = 0,
|
|
||||||
uint16_t weight = 0) {
|
|
||||||
AnimalBuilder builder_(_fbb);
|
|
||||||
builder_.add_sound(sound);
|
|
||||||
builder_.add_name(name);
|
|
||||||
builder_.add_weight(weight);
|
|
||||||
return builder_.Finish();
|
|
||||||
}
|
|
||||||
|
|
||||||
inline flatbuffers::Offset<Animal> CreateAnimalDirect(
|
|
||||||
flatbuffers::FlatBufferBuilder &_fbb,
|
|
||||||
const char *name = nullptr,
|
|
||||||
const char *sound = nullptr,
|
|
||||||
uint16_t weight = 0) {
|
|
||||||
auto name__ = name ? _fbb.CreateString(name) : 0;
|
|
||||||
auto sound__ = sound ? _fbb.CreateString(sound) : 0;
|
|
||||||
return com::fbs::app::CreateAnimal(
|
|
||||||
_fbb,
|
|
||||||
name__,
|
|
||||||
sound__,
|
|
||||||
weight);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline const com::fbs::app::Animal *GetAnimal(const void *buf) {
|
|
||||||
return flatbuffers::GetRoot<com::fbs::app::Animal>(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline const com::fbs::app::Animal *GetSizePrefixedAnimal(const void *buf) {
|
|
||||||
return flatbuffers::GetSizePrefixedRoot<com::fbs::app::Animal>(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool VerifyAnimalBuffer(
|
|
||||||
flatbuffers::Verifier &verifier) {
|
|
||||||
return verifier.VerifyBuffer<com::fbs::app::Animal>(nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool VerifySizePrefixedAnimalBuffer(
|
|
||||||
flatbuffers::Verifier &verifier) {
|
|
||||||
return verifier.VerifySizePrefixedBuffer<com::fbs::app::Animal>(nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void FinishAnimalBuffer(
|
|
||||||
flatbuffers::FlatBufferBuilder &fbb,
|
|
||||||
flatbuffers::Offset<com::fbs::app::Animal> root) {
|
|
||||||
fbb.Finish(root);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void FinishSizePrefixedAnimalBuffer(
|
|
||||||
flatbuffers::FlatBufferBuilder &fbb,
|
|
||||||
flatbuffers::Offset<com::fbs::app::Animal> root) {
|
|
||||||
fbb.FinishSizePrefixed(root);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace app
|
|
||||||
} // namespace fbs
|
|
||||||
} // namespace com
|
|
||||||
|
|
||||||
#endif // FLATBUFFERS_GENERATED_ANIMAL_COM_FBS_APP_H_
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
// Copyright 2015 Google Inc. All rights reserved.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
namespace com.fbs.app;
|
|
||||||
|
|
||||||
table Animal {
|
|
||||||
name:string;
|
|
||||||
sound:string;
|
|
||||||
weight: uint16;
|
|
||||||
}
|
|
||||||
|
|
||||||
root_type Animal;
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
package com.flatbuffers.app
|
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
|
||||||
import android.os.Bundle
|
|
||||||
import android.widget.TextView
|
|
||||||
import com.fbs.app.Animal
|
|
||||||
import com.google.flatbuffers.FlatBufferBuilder
|
|
||||||
import java.nio.ByteBuffer
|
|
||||||
|
|
||||||
@ExperimentalUnsignedTypes
|
|
||||||
class MainActivity : AppCompatActivity() {
|
|
||||||
|
|
||||||
@SuppressLint("SetTextI18n")
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
|
||||||
super.onCreate(savedInstanceState)
|
|
||||||
setContentView(R.layout.activity_main)
|
|
||||||
|
|
||||||
val tiger = Animal.getRootAsAnimal(ByteBuffer.wrap(createAnimalFromJNI()))
|
|
||||||
findViewById<TextView>(R.id.tv_animal_one).text = animalInfo(tiger)
|
|
||||||
|
|
||||||
findViewById<TextView>(R.id.tv_animal_two).text = animalInfo(createAnimalFromKotlin())
|
|
||||||
}
|
|
||||||
|
|
||||||
// This function is a sample of communicating FlatBuffers between JNI (native C++) and Java.
|
|
||||||
// Implementation can be found on animals.cpp file.
|
|
||||||
private external fun createAnimalFromJNI(): ByteArray
|
|
||||||
|
|
||||||
// Create a "Cow" Animal flatbuffers from Kotlin
|
|
||||||
private fun createAnimalFromKotlin():Animal {
|
|
||||||
val fb = FlatBufferBuilder(100)
|
|
||||||
val cowOffset = Animal.createAnimal(
|
|
||||||
builder = fb,
|
|
||||||
nameOffset = fb.createString("Cow"),
|
|
||||||
soundOffset = fb.createString("Moo"),
|
|
||||||
weight = 720u
|
|
||||||
)
|
|
||||||
fb.finish(cowOffset)
|
|
||||||
return Animal.getRootAsAnimal(fb.dataBuffer())
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun animalInfo(animal: Animal): String =
|
|
||||||
"The ${animal.name} sound is ${animal.sound} and it weights ${animal.weight}kg."
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
// Used to load the 'native-lib' library on application startup.
|
|
||||||
init {
|
|
||||||
System.loadLibrary("native-lib")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
// automatically generated by the FlatBuffers compiler, do not modify
|
|
||||||
|
|
||||||
package com.fbs.app
|
|
||||||
|
|
||||||
import java.nio.*
|
|
||||||
import kotlin.math.sign
|
|
||||||
import com.google.flatbuffers.*
|
|
||||||
|
|
||||||
@Suppress("unused")
|
|
||||||
@ExperimentalUnsignedTypes
|
|
||||||
class Animal : Table() {
|
|
||||||
|
|
||||||
fun __init(_i: Int, _bb: ByteBuffer) {
|
|
||||||
__reset(_i, _bb)
|
|
||||||
}
|
|
||||||
fun __assign(_i: Int, _bb: ByteBuffer) : Animal {
|
|
||||||
__init(_i, _bb)
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
val name : String?
|
|
||||||
get() {
|
|
||||||
val o = __offset(4)
|
|
||||||
return if (o != 0) __string(o + bb_pos) else null
|
|
||||||
}
|
|
||||||
val nameAsByteBuffer : ByteBuffer get() = __vector_as_bytebuffer(4, 1)
|
|
||||||
fun nameInByteBuffer(_bb: ByteBuffer) : ByteBuffer = __vector_in_bytebuffer(_bb, 4, 1)
|
|
||||||
val sound : String?
|
|
||||||
get() {
|
|
||||||
val o = __offset(6)
|
|
||||||
return if (o != 0) __string(o + bb_pos) else null
|
|
||||||
}
|
|
||||||
val soundAsByteBuffer : ByteBuffer get() = __vector_as_bytebuffer(6, 1)
|
|
||||||
fun soundInByteBuffer(_bb: ByteBuffer) : ByteBuffer = __vector_in_bytebuffer(_bb, 6, 1)
|
|
||||||
val weight : UShort
|
|
||||||
get() {
|
|
||||||
val o = __offset(8)
|
|
||||||
return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u
|
|
||||||
}
|
|
||||||
companion object {
|
|
||||||
fun validateVersion() = Constants.FLATBUFFERS_2_0_0()
|
|
||||||
fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal())
|
|
||||||
fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal {
|
|
||||||
_bb.order(ByteOrder.LITTLE_ENDIAN)
|
|
||||||
return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb))
|
|
||||||
}
|
|
||||||
fun createAnimal(builder: FlatBufferBuilder, nameOffset: Int, soundOffset: Int, weight: UShort) : Int {
|
|
||||||
builder.startTable(3)
|
|
||||||
addSound(builder, soundOffset)
|
|
||||||
addName(builder, nameOffset)
|
|
||||||
addWeight(builder, weight)
|
|
||||||
return endAnimal(builder)
|
|
||||||
}
|
|
||||||
fun startAnimal(builder: FlatBufferBuilder) = builder.startTable(3)
|
|
||||||
fun addName(builder: FlatBufferBuilder, name: Int) = builder.addOffset(0, name, 0)
|
|
||||||
fun addSound(builder: FlatBufferBuilder, sound: Int) = builder.addOffset(1, sound, 0)
|
|
||||||
fun addWeight(builder: FlatBufferBuilder, weight: UShort) = builder.addShort(2, weight.toShort(), 0)
|
|
||||||
fun endAnimal(builder: FlatBufferBuilder) : Int {
|
|
||||||
val o = builder.endTable()
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
fun finishAnimalBuffer(builder: FlatBufferBuilder, offset: Int) = builder.finish(offset)
|
|
||||||
fun finishSizePrefixedAnimalBuffer(builder: FlatBufferBuilder, offset: Int) = builder.finishSizePrefixed(offset)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:aapt="http://schemas.android.com/aapt"
|
|
||||||
android:width="108dp"
|
|
||||||
android:height="108dp"
|
|
||||||
android:viewportWidth="108"
|
|
||||||
android:viewportHeight="108">
|
|
||||||
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
|
|
||||||
<aapt:attr name="android:fillColor">
|
|
||||||
<gradient
|
|
||||||
android:endX="85.84757"
|
|
||||||
android:endY="92.4963"
|
|
||||||
android:startX="42.9492"
|
|
||||||
android:startY="49.59793"
|
|
||||||
android:type="linear">
|
|
||||||
<item
|
|
||||||
android:color="#44000000"
|
|
||||||
android:offset="0.0" />
|
|
||||||
<item
|
|
||||||
android:color="#00000000"
|
|
||||||
android:offset="1.0" />
|
|
||||||
</gradient>
|
|
||||||
</aapt:attr>
|
|
||||||
</path>
|
|
||||||
<path
|
|
||||||
android:fillColor="#FFFFFF"
|
|
||||||
android:fillType="nonZero"
|
|
||||||
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
|
|
||||||
android:strokeWidth="1"
|
|
||||||
android:strokeColor="#00000000" />
|
|
||||||
</vector>
|
|
||||||
@@ -1,170 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="108dp"
|
|
||||||
android:height="108dp"
|
|
||||||
android:viewportWidth="108"
|
|
||||||
android:viewportHeight="108">
|
|
||||||
<path
|
|
||||||
android:fillColor="#3DDC84"
|
|
||||||
android:pathData="M0,0h108v108h-108z" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M9,0L9,108"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,0L19,108"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M29,0L29,108"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M39,0L39,108"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M49,0L49,108"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M59,0L59,108"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M69,0L69,108"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M79,0L79,108"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M89,0L89,108"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M99,0L99,108"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,9L108,9"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,19L108,19"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,29L108,29"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,39L108,39"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,49L108,49"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,59L108,59"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,69L108,69"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,79L108,79"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,89L108,89"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M0,99L108,99"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,29L89,29"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,39L89,39"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,49L89,49"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,59L89,59"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,69L89,69"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M19,79L89,79"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M29,19L29,89"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M39,19L39,89"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M49,19L49,89"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M59,19L59,89"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M69,19L69,89"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
<path
|
|
||||||
android:fillColor="#00000000"
|
|
||||||
android:pathData="M79,19L79,89"
|
|
||||||
android:strokeWidth="0.8"
|
|
||||||
android:strokeColor="#33FFFFFF" />
|
|
||||||
</vector>
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:gravity="center"
|
|
||||||
tools:context=".MainActivity">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_animal_one"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
tools:text="Text Sample"/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_animal_two"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
tools:text="Text Sample 2"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<background android:drawable="@drawable/ic_launcher_background" />
|
|
||||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
|
||||||
</adaptive-icon>
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<background android:drawable="@drawable/ic_launcher_background" />
|
|
||||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
|
||||||
</adaptive-icon>
|
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 16 KiB |
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<color name="colorPrimary">#6200EE</color>
|
|
||||||
<color name="colorPrimaryDark">#3700B3</color>
|
|
||||||
<color name="colorAccent">#03DAC5</color>
|
|
||||||
</resources>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="app_name">FlatbuffersTestApp</string>
|
|
||||||
</resources>
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<!-- Base application theme. -->
|
|
||||||
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
|
||||||
<!-- Customize your theme here. -->
|
|
||||||
<item name="colorPrimary">@color/colorPrimary</item>
|
|
||||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
|
||||||
<item name="colorAccent">@color/colorAccent</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
</resources>
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
||||||
buildscript {
|
|
||||||
ext.kotlin_version = "1.4.10"
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
classpath 'com.android.tools.build:gradle:4.1.0'
|
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
|
||||||
// in the individual module build.gradle files
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
allprojects {
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
|
|
||||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
|
||||||
targetCompatibility = JavaVersion.VERSION_1_8
|
|
||||||
|
|
||||||
compileKotlin {
|
|
||||||
dependsOn flatbuffer
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
task clean(type: Delete) {
|
|
||||||
delete rootProject.buildDir
|
|
||||||
}
|
|
||||||
500
android/build_apk.sh
Executable file
@@ -0,0 +1,500 @@
|
|||||||
|
#!/bin/bash -eu
|
||||||
|
# Copyright (c) 2013 Google, Inc.
|
||||||
|
#
|
||||||
|
# This software is provided 'as-is', without any express or implied
|
||||||
|
# warranty. In no event will the authors be held liable for any damages
|
||||||
|
# arising from the use of this software.
|
||||||
|
# Permission is granted to anyone to use this software for any purpose,
|
||||||
|
# including commercial applications, and to alter it and redistribute it
|
||||||
|
# freely, subject to the following restrictions:
|
||||||
|
# 1. The origin of this software must not be misrepresented; you must not
|
||||||
|
# claim that you wrote the original software. If you use this software
|
||||||
|
# in a product, an acknowledgment in the product documentation would be
|
||||||
|
# appreciated but is not required.
|
||||||
|
# 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
# misrepresented as being the original software.
|
||||||
|
# 3. This notice may not be removed or altered from any source distribution.
|
||||||
|
#
|
||||||
|
# Build, deploy, debug / execute a native Android package based upon
|
||||||
|
# NativeActivity.
|
||||||
|
|
||||||
|
declare -r script_directory=$(dirname $0)
|
||||||
|
declare -r android_root=${script_directory}/../../../../../../
|
||||||
|
declare -r script_name=$(basename $0)
|
||||||
|
declare -r android_manifest=AndroidManifest.xml
|
||||||
|
declare -r os_name=$(uname -s)
|
||||||
|
|
||||||
|
# Minimum Android target version supported by this project.
|
||||||
|
: ${BUILDAPK_ANDROID_TARGET_MINVERSION:=10}
|
||||||
|
# Directory containing the Android SDK
|
||||||
|
# (http://developer.android.com/sdk/index.html).
|
||||||
|
: ${ANDROID_SDK_HOME:=}
|
||||||
|
# Directory containing the Android NDK
|
||||||
|
# (http://developer.android.com/tools/sdk/ndk/index.html).
|
||||||
|
: ${NDK_HOME:=}
|
||||||
|
|
||||||
|
# Display script help and exit.
|
||||||
|
usage() {
|
||||||
|
echo "
|
||||||
|
Build the Android package in the current directory and deploy it to a
|
||||||
|
connected device.
|
||||||
|
|
||||||
|
Usage: ${script_name} \\
|
||||||
|
[ADB_DEVICE=serial_number] [BUILD=0] [DEPLOY=0] [RUN_DEBUGGER=1] \
|
||||||
|
[LAUNCH=0] [SWIG_BIN=swig_binary_directory] [SWIG_LIB=swig_include_directory] [ndk-build arguments ...]
|
||||||
|
|
||||||
|
ADB_DEVICE=serial_number:
|
||||||
|
serial_number specifies the device to deploy the built apk to if multiple
|
||||||
|
Android devices are connected to the host.
|
||||||
|
BUILD=0:
|
||||||
|
Disables the build of the package.
|
||||||
|
DEPLOY=0:
|
||||||
|
Disables the deployment of the built apk to the Android device.
|
||||||
|
RUN_DEBUGGER=1:
|
||||||
|
Launches the application in gdb after it has been deployed. To debug in
|
||||||
|
gdb, NDK_DEBUG=1 must also be specified on the command line to build a
|
||||||
|
debug apk.
|
||||||
|
LAUNCH=0:
|
||||||
|
Disable the launch of the apk on the Android device.
|
||||||
|
SWIG_BIN=swig_binary_directory:
|
||||||
|
The directory where the SWIG binary lives. No need to set this if SWIG is
|
||||||
|
installed and point to from your PATH variable.
|
||||||
|
SWIG_LIB=swig_include_directory:
|
||||||
|
The directory where SWIG shared include files are, usually obtainable from
|
||||||
|
commandline with \"swig -swiglib\". No need to set this if SWIG is installed
|
||||||
|
and point to from your PATH variable.
|
||||||
|
ndk-build arguments...:
|
||||||
|
Additional arguments for ndk-build. See ndk-build -h for more information.
|
||||||
|
" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the number of CPU cores present on the host.
|
||||||
|
get_number_of_cores() {
|
||||||
|
case ${os_name} in
|
||||||
|
Darwin)
|
||||||
|
sysctl hw.ncpu | awk '{ print $2 }'
|
||||||
|
;;
|
||||||
|
CYGWIN*|Linux)
|
||||||
|
awk '/^processor/ { n=$3 } END { print n + 1 }' /proc/cpuinfo
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the package name from an AndroidManifest.xml file.
|
||||||
|
get_package_name_from_manifest() {
|
||||||
|
xmllint --xpath 'string(/manifest/@package)' "${1}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the library name from an AndroidManifest.xml file.
|
||||||
|
get_library_name_from_manifest() {
|
||||||
|
echo "\
|
||||||
|
setns android=http://schemas.android.com/apk/res/android
|
||||||
|
xpath string(/manifest/application/activity\
|
||||||
|
[@android:name=\"android.app.NativeActivity\"]/meta-data\
|
||||||
|
[@android:name=\"android.app.lib_name\"]/@android:value)" |
|
||||||
|
xmllint --shell "${1}" | awk '/Object is a string/ { print $NF }'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the number of Android devices connected to the system.
|
||||||
|
get_number_of_devices_connected() {
|
||||||
|
adb devices -l | \
|
||||||
|
awk '/^..*$/ { if (p) { print $0 } }
|
||||||
|
/List of devices attached/ { p = 1 }' | \
|
||||||
|
wc -l
|
||||||
|
return ${PIPESTATUS[0]}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Kill a process and its' children. This is provided for cygwin which
|
||||||
|
# doesn't ship with pkill.
|
||||||
|
kill_process_group() {
|
||||||
|
local parent_pid="${1}"
|
||||||
|
local child_pid=
|
||||||
|
for child_pid in $(ps -f | \
|
||||||
|
awk '{ if ($3 == '"${parent_pid}"') { print $2 } }'); do
|
||||||
|
kill_process_group "${child_pid}"
|
||||||
|
done
|
||||||
|
kill "${parent_pid}" 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Find and run "adb".
|
||||||
|
adb() {
|
||||||
|
local adb_path=
|
||||||
|
for path in "$(which adb 2>/dev/null)" \
|
||||||
|
"${ANDROID_SDK_HOME}/sdk/platform-tools/adb" \
|
||||||
|
"${android_root}/prebuilts/sdk/platform-tools/adb"; do
|
||||||
|
if [[ -e "${path}" ]]; then
|
||||||
|
adb_path="${path}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ "${adb_path}" == "" ]]; then
|
||||||
|
echo -e "Unable to find adb." \
|
||||||
|
"\nAdd the Android ADT sdk/platform-tools directory to the" \
|
||||||
|
"PATH." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
"${adb_path}" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Find and run "android".
|
||||||
|
android() {
|
||||||
|
local android_executable=android
|
||||||
|
if echo "${os_name}" | grep -q CYGWIN; then
|
||||||
|
android_executable=android.bat
|
||||||
|
fi
|
||||||
|
local android_path=
|
||||||
|
for path in "$(which ${android_executable})" \
|
||||||
|
"${ANDROID_SDK_HOME}/sdk/tools/${android_executable}" \
|
||||||
|
"${android_root}/prebuilts/sdk/tools/${android_executable}"; do
|
||||||
|
if [[ -e "${path}" ]]; then
|
||||||
|
android_path="${path}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ "${android_path}" == "" ]]; then
|
||||||
|
echo -e "Unable to find android tool." \
|
||||||
|
"\nAdd the Android ADT sdk/tools directory to the PATH." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# Make sure ant is installed.
|
||||||
|
if [[ "$(which ant)" == "" ]]; then
|
||||||
|
echo -e "Unable to find ant." \
|
||||||
|
"\nPlease install ant and add to the PATH." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
"${android_path}" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Find and run "ndk-build"
|
||||||
|
ndkbuild() {
|
||||||
|
local ndkbuild_path=
|
||||||
|
for path in "$(which ndk-build 2>/dev/null)" \
|
||||||
|
"${NDK_HOME}/ndk-build" \
|
||||||
|
"${android_root}/prebuilts/ndk/current/ndk-build"; do
|
||||||
|
if [[ -e "${path}" ]]; then
|
||||||
|
ndkbuild_path="${path}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ "${ndkbuild_path}" == "" ]]; then
|
||||||
|
echo -e "Unable to find ndk-build." \
|
||||||
|
"\nAdd the Android NDK directory to the PATH." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
"${ndkbuild_path}" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get file modification time of $1 in seconds since the epoch.
|
||||||
|
stat_mtime() {
|
||||||
|
local filename="${1}"
|
||||||
|
case ${os_name} in
|
||||||
|
Darwin) stat -f%m "${filename}" 2>/dev/null || echo 0 ;;
|
||||||
|
*) stat -c%Y "${filename}" 2>/dev/null || echo 0 ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Build the native (C/C++) build targets in the current directory.
|
||||||
|
build_native_targets() {
|
||||||
|
# Save the list of output modules in the install directory so that it's
|
||||||
|
# possible to restore their timestamps after the build is complete. This
|
||||||
|
# works around a bug in ndk/build/core/setup-app.mk which results in the
|
||||||
|
# unconditional execution of the clean-installed-binaries rule.
|
||||||
|
restore_libraries="$(find libs -type f 2>/dev/null | \
|
||||||
|
sed -E 's@^libs/(.*)@\1@')"
|
||||||
|
|
||||||
|
# Build native code.
|
||||||
|
ndkbuild -j$(get_number_of_cores) "$@"
|
||||||
|
|
||||||
|
# Restore installed libraries.
|
||||||
|
# Obviously this is a nasty hack (along with ${restore_libraries} above) as
|
||||||
|
# it assumes it knows where the NDK will be placing output files.
|
||||||
|
(
|
||||||
|
IFS=$'\n'
|
||||||
|
for libpath in ${restore_libraries}; do
|
||||||
|
source_library="obj/local/${libpath}"
|
||||||
|
target_library="libs/${libpath}"
|
||||||
|
if [[ -e "${source_library}" ]]; then
|
||||||
|
cp -a "${source_library}" "${target_library}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Select the oldest installed android build target that is at least as new as
|
||||||
|
# BUILDAPK_ANDROID_TARGET_MINVERSION. If a suitable build target isn't found,
|
||||||
|
# this function prints an error message and exits with an error.
|
||||||
|
select_android_build_target() {
|
||||||
|
local -r android_targets_installed=$( \
|
||||||
|
android list targets | \
|
||||||
|
awk -F'"' '/^id:.*android/ { print $2 }')
|
||||||
|
local android_build_target=
|
||||||
|
for android_target in $(echo "${android_targets_installed}" | \
|
||||||
|
awk -F- '{ print $2 }' | sort -n); do
|
||||||
|
if [[ $((android_target)) -ge \
|
||||||
|
$((BUILDAPK_ANDROID_TARGET_MINVERSION)) ]]; then
|
||||||
|
android_build_target="android-${android_target}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ "${android_build_target}" == "" ]]; then
|
||||||
|
echo -e \
|
||||||
|
"Found installed Android targets:" \
|
||||||
|
"$(echo ${android_targets_installed} | sed 's/ /\n /g;s/^/\n /;')" \
|
||||||
|
"\nAndroid SDK platform" \
|
||||||
|
"android-$((BUILDAPK_ANDROID_TARGET_MINVERSION))" \
|
||||||
|
"must be installed to build this project." \
|
||||||
|
"\nUse the \"android\" application to install API" \
|
||||||
|
"$((BUILDAPK_ANDROID_TARGET_MINVERSION)) or newer." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "${android_build_target}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Sign unsigned apk $1 and write the result to $2 with key store file $3 and
|
||||||
|
# password $4.
|
||||||
|
# If a key store file $3 and password $4 aren't specified, a temporary
|
||||||
|
# (60 day) key is generated and used to sign the package.
|
||||||
|
sign_apk() {
|
||||||
|
local unsigned_apk="${1}"
|
||||||
|
local signed_apk="${2}"
|
||||||
|
if [[ $(stat_mtime "${unsigned_apk}") -gt \
|
||||||
|
$(stat_mtime "${signed_apk}") ]]; then
|
||||||
|
local -r key_alias=$(basename ${signed_apk} .apk)
|
||||||
|
local keystore="${3}"
|
||||||
|
local key_password="${4}"
|
||||||
|
[[ "${keystore}" == "" ]] && keystore="${unsigned_apk}.keystore"
|
||||||
|
[[ "${key_password}" == "" ]] && \
|
||||||
|
key_password="${key_alias}123456"
|
||||||
|
if [[ ! -e ${keystore} ]]; then
|
||||||
|
keytool -genkey -v -dname "cn=, ou=${key_alias}, o=fpl" \
|
||||||
|
-storepass ${key_password} \
|
||||||
|
-keypass ${key_password} -keystore ${keystore} \
|
||||||
|
-alias ${key_alias} -keyalg RSA -keysize 2048 -validity 60
|
||||||
|
fi
|
||||||
|
cp "${unsigned_apk}" "${signed_apk}"
|
||||||
|
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 \
|
||||||
|
-keystore ${keystore} -storepass ${key_password} \
|
||||||
|
-keypass ${key_password} "${signed_apk}" ${key_alias}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Build the apk $1 for package filename $2 in the current directory using the
|
||||||
|
# ant build target $3.
|
||||||
|
build_apk() {
|
||||||
|
local -r output_apk="${1}"
|
||||||
|
local -r package_filename="${2}"
|
||||||
|
local -r ant_target="${3}"
|
||||||
|
# Get the list of installed android targets and select the oldest target
|
||||||
|
# that is at least as new as BUILDAPK_ANDROID_TARGET_MINVERSION.
|
||||||
|
local -r android_build_target=$(select_android_build_target)
|
||||||
|
[[ "${android_build_target}" == "" ]] && exit 1
|
||||||
|
echo "Building ${output_apk} for target ${android_build_target}" >&2
|
||||||
|
|
||||||
|
# Create / update build.xml and local.properties files.
|
||||||
|
if [[ $(stat_mtime "${android_manifest}") -gt \
|
||||||
|
$(stat_mtime build.xml) ]]; then
|
||||||
|
android update project --target "${android_build_target}" \
|
||||||
|
-n ${package_filename} --path .
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use ant to build the apk.
|
||||||
|
ant -quiet ${ant_target}
|
||||||
|
|
||||||
|
# Sign release apks with a temporary key as these packages will not be
|
||||||
|
# redistributed.
|
||||||
|
local unsigned_apk="bin/${package_filename}-${ant_target}-unsigned.apk"
|
||||||
|
if [[ "${ant_target}" == "release" ]]; then
|
||||||
|
sign_apk "${unsigned_apk}" "${output_apk}" "" ""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Uninstall package $1 and install apk $2 on device $3 where $3 is "-s device"
|
||||||
|
# or an empty string. If $3 is an empty string adb will fail when multiple
|
||||||
|
# devices are connected to the host system.
|
||||||
|
install_apk() {
|
||||||
|
local -r uninstall_package_name="${1}"
|
||||||
|
local -r install_apk="${2}"
|
||||||
|
local -r adb_device="${3}"
|
||||||
|
# Uninstall the package if it's already installed.
|
||||||
|
adb ${adb_device} uninstall "${uninstall_package_name}" 1>&2 > /dev/null || \
|
||||||
|
true # no error check
|
||||||
|
|
||||||
|
# Install the apk.
|
||||||
|
# NOTE: The following works around adb not returning an error code when
|
||||||
|
# it fails to install an apk.
|
||||||
|
echo "Install ${install_apk}" >&2
|
||||||
|
local -r adb_install_result=$(adb ${adb_device} install "${install_apk}")
|
||||||
|
echo "${adb_install_result}"
|
||||||
|
if echo "${adb_install_result}" | grep -qF 'Failure ['; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Launch previously installed package $1 on device $2.
|
||||||
|
# If $2 is an empty string adb will fail when multiple devices are connected
|
||||||
|
# to the host system.
|
||||||
|
launch_package() {
|
||||||
|
(
|
||||||
|
# Determine the SDK version of Android on the device.
|
||||||
|
local -r android_sdk_version=$(
|
||||||
|
adb ${adb_device} shell cat system/build.prop | \
|
||||||
|
awk -F= '/ro.build.version.sdk/ {
|
||||||
|
v=$2; sub(/[ \r\n]/, "", v); print v
|
||||||
|
}')
|
||||||
|
|
||||||
|
# Clear logs from previous runs.
|
||||||
|
# Note that logcat does not just 'tail' the logs, it dumps the entire log
|
||||||
|
# history.
|
||||||
|
adb ${adb_device} logcat -c
|
||||||
|
|
||||||
|
local finished_msg='Displayed '"${package_name}"
|
||||||
|
local timeout_msg='Activity destroy timeout.*'"${package_name}"
|
||||||
|
# Maximum time to wait before stopping log monitoring. 0 = infinity.
|
||||||
|
local launch_timeout=0
|
||||||
|
# If this is a Gingerbread device, kill log monitoring after 10 seconds.
|
||||||
|
if [[ $((android_sdk_version)) -le 10 ]]; then
|
||||||
|
launch_timeout=10
|
||||||
|
fi
|
||||||
|
# Display logcat in the background.
|
||||||
|
# Stop displaying the log when the app launch / execution completes or the
|
||||||
|
# logcat
|
||||||
|
(
|
||||||
|
adb ${adb_device} logcat | \
|
||||||
|
awk "
|
||||||
|
{
|
||||||
|
print \$0
|
||||||
|
}
|
||||||
|
|
||||||
|
/ActivityManager.*: ${finished_msg}/ {
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
/ActivityManager.*: ${timeout_msg}/ {
|
||||||
|
exit 0
|
||||||
|
}" &
|
||||||
|
adb_logcat_pid=$!;
|
||||||
|
if [[ $((launch_timeout)) -gt 0 ]]; then
|
||||||
|
sleep $((launch_timeout));
|
||||||
|
kill ${adb_logcat_pid};
|
||||||
|
else
|
||||||
|
wait ${adb_logcat_pid};
|
||||||
|
fi
|
||||||
|
) &
|
||||||
|
logcat_pid=$!
|
||||||
|
# Kill adb logcat if this shell exits.
|
||||||
|
trap "kill_process_group ${logcat_pid}" SIGINT SIGTERM EXIT
|
||||||
|
|
||||||
|
# If the SDK is newer than 10, "am" supports stopping an activity.
|
||||||
|
adb_stop_activity=
|
||||||
|
if [[ $((android_sdk_version)) -gt 10 ]]; then
|
||||||
|
adb_stop_activity=-S
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Launch the activity and wait for it to complete.
|
||||||
|
adb ${adb_device} shell am start ${adb_stop_activity} -n \
|
||||||
|
${package_name}/android.app.NativeActivity
|
||||||
|
|
||||||
|
wait "${logcat_pid}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
# See usage().
|
||||||
|
main() {
|
||||||
|
# Parse arguments for this script.
|
||||||
|
local adb_device=
|
||||||
|
local ant_target=release
|
||||||
|
local disable_deploy=0
|
||||||
|
local disable_build=0
|
||||||
|
local run_debugger=0
|
||||||
|
local launch=1
|
||||||
|
local build_package=1
|
||||||
|
for opt; do
|
||||||
|
case ${opt} in
|
||||||
|
NDK_DEBUG=1) ant_target=debug ;;
|
||||||
|
ADB_DEVICE*) adb_device="$(\
|
||||||
|
echo "${opt}" | sed -E 's/^ADB_DEVICE=([^ ]+)$/-s \1/;t;s/.*//')" ;;
|
||||||
|
BUILD=0) disable_build=1 ;;
|
||||||
|
DEPLOY=0) disable_deploy=1 ;;
|
||||||
|
RUN_DEBUGGER=1) run_debugger=1 ;;
|
||||||
|
LAUNCH=0) launch=0 ;;
|
||||||
|
clean) build_package=0 ;;
|
||||||
|
-h|--help|help) usage ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# If a target device hasn't been specified and multiple devices are connected
|
||||||
|
# to the host machine, display an error.
|
||||||
|
local -r devices_connected=$(get_number_of_devices_connected)
|
||||||
|
if [[ "${adb_device}" == "" && $((devices_connected)) -gt 1 && \
|
||||||
|
($((disable_deploy)) -eq 0 || $((launch)) -ne 0 || \
|
||||||
|
$((run_debugger)) -ne 0) ]]; then
|
||||||
|
if [[ $((disable_deploy)) -ne 0 ]]; then
|
||||||
|
echo "Deployment enabled, disable using DEPLOY=0" >&2
|
||||||
|
fi
|
||||||
|
if [[ $((launch)) -ne 0 ]]; then
|
||||||
|
echo "Launch enabled." >&2
|
||||||
|
fi
|
||||||
|
if [[ $((disable_deploy)) -eq 0 ]]; then
|
||||||
|
echo "Deployment enabled." >&2
|
||||||
|
fi
|
||||||
|
if [[ $((run_debugger)) -ne 0 ]]; then
|
||||||
|
echo "Debugger launch enabled." >&2
|
||||||
|
fi
|
||||||
|
echo "
|
||||||
|
Multiple Android devices are connected to this host. Either disable deployment
|
||||||
|
and execution of the built .apk using:
|
||||||
|
\"${script_name} DEPLOY=0 LAUNCH=0\"
|
||||||
|
|
||||||
|
or specify a device to deploy to using:
|
||||||
|
\"${script_name} ADB_DEVICE=\${device_serial}\".
|
||||||
|
|
||||||
|
The Android devices connected to this machine are:
|
||||||
|
$(adb devices -l)
|
||||||
|
" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $((disable_build)) -eq 0 ]]; then
|
||||||
|
# Build the native target.
|
||||||
|
build_native_targets "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get the package name from the manifest.
|
||||||
|
local -r package_name=$(get_package_name_from_manifest "${android_manifest}")
|
||||||
|
if [[ "${package_name}" == "" ]]; then
|
||||||
|
echo -e "No package name specified in ${android_manifest},"\
|
||||||
|
"skipping apk build, deploy"
|
||||||
|
"\nand launch steps." >&2
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
local -r package_basename=${package_name/*./}
|
||||||
|
local package_filename=$(get_library_name_from_manifest ${android_manifest})
|
||||||
|
[[ "${package_filename}" == "" ]] && package_filename="${package_basename}"
|
||||||
|
|
||||||
|
# Output apk name.
|
||||||
|
local -r output_apk="bin/${package_filename}-${ant_target}.apk"
|
||||||
|
|
||||||
|
if [[ $((disable_build)) -eq 0 && $((build_package)) -eq 1 ]]; then
|
||||||
|
# Build the apk.
|
||||||
|
build_apk "${output_apk}" "${package_filename}" "${ant_target}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Deploy to the device.
|
||||||
|
if [[ $((disable_deploy)) -eq 0 ]]; then
|
||||||
|
install_apk "${package_name}" "${output_apk}" "${adb_device}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${ant_target}" == "debug" && $((run_debugger)) -eq 1 ]]; then
|
||||||
|
# Start debugging.
|
||||||
|
ndk-gdb ${adb_device} --start
|
||||||
|
elif [[ $((launch)) -eq 1 ]]; then
|
||||||
|
launch_package "${package_name}" "${adb_device}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
# Project-wide Gradle settings.
|
|
||||||
# IDE (e.g. Android Studio) users:
|
|
||||||
# Gradle settings configured through the IDE *will override*
|
|
||||||
# any settings specified in this file.
|
|
||||||
# For more details on how to configure your build environment visit
|
|
||||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
|
||||||
# Specifies the JVM arguments used for the daemon process.
|
|
||||||
# The setting is particularly useful for tweaking memory settings.
|
|
||||||
org.gradle.jvmargs=-Xmx2048m
|
|
||||||
# When configured, Gradle will run in incubating parallel mode.
|
|
||||||
# This option should only be used with decoupled projects. More details, visit
|
|
||||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
|
||||||
# org.gradle.parallel=true
|
|
||||||
# AndroidX package structure to make it clearer which packages are bundled with the
|
|
||||||
# Android operating system, and which are packaged with your app"s APK
|
|
||||||
# https://developer.android.com/topic/libraries/support-library/androidx-rn
|
|
||||||
android.useAndroidX=true
|
|
||||||
# Automatically convert third-party libraries to use AndroidX
|
|
||||||
android.enableJetifier=true
|
|
||||||
# Kotlin code style for this project: "official" or "obsolete":
|
|
||||||
kotlin.code.style=official
|
|
||||||
BIN
android/gradle/wrapper/gradle-wrapper.jar
vendored
@@ -1,6 +0,0 @@
|
|||||||
#Thu Oct 29 19:47:23 CET 2020
|
|
||||||
distributionBase=GRADLE_USER_HOME
|
|
||||||
distributionPath=wrapper/dists
|
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
|
||||||
zipStorePath=wrapper/dists
|
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
|
|
||||||
172
android/gradlew
vendored
@@ -1,172 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
##
|
|
||||||
## Gradle start up script for UN*X
|
|
||||||
##
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
|
||||||
# Resolve links: $0 may be a link
|
|
||||||
PRG="$0"
|
|
||||||
# Need this for relative symlinks.
|
|
||||||
while [ -h "$PRG" ] ; do
|
|
||||||
ls=`ls -ld "$PRG"`
|
|
||||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
||||||
if expr "$link" : '/.*' > /dev/null; then
|
|
||||||
PRG="$link"
|
|
||||||
else
|
|
||||||
PRG=`dirname "$PRG"`"/$link"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
SAVED="`pwd`"
|
|
||||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
|
||||||
APP_HOME="`pwd -P`"
|
|
||||||
cd "$SAVED" >/dev/null
|
|
||||||
|
|
||||||
APP_NAME="Gradle"
|
|
||||||
APP_BASE_NAME=`basename "$0"`
|
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS=""
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
||||||
MAX_FD="maximum"
|
|
||||||
|
|
||||||
warn () {
|
|
||||||
echo "$*"
|
|
||||||
}
|
|
||||||
|
|
||||||
die () {
|
|
||||||
echo
|
|
||||||
echo "$*"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
|
||||||
cygwin=false
|
|
||||||
msys=false
|
|
||||||
darwin=false
|
|
||||||
nonstop=false
|
|
||||||
case "`uname`" in
|
|
||||||
CYGWIN* )
|
|
||||||
cygwin=true
|
|
||||||
;;
|
|
||||||
Darwin* )
|
|
||||||
darwin=true
|
|
||||||
;;
|
|
||||||
MINGW* )
|
|
||||||
msys=true
|
|
||||||
;;
|
|
||||||
NONSTOP* )
|
|
||||||
nonstop=true
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
|
||||||
else
|
|
||||||
JAVACMD="$JAVA_HOME/bin/java"
|
|
||||||
fi
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD="java"
|
|
||||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
|
||||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
|
||||||
MAX_FD_LIMIT=`ulimit -H -n`
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
|
||||||
MAX_FD="$MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
ulimit -n $MAX_FD
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Darwin, add options to specify how the application appears in the dock
|
|
||||||
if $darwin; then
|
|
||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Cygwin, switch paths to Windows format before running java
|
|
||||||
if $cygwin ; then
|
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
|
||||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
|
||||||
SEP=""
|
|
||||||
for dir in $ROOTDIRSRAW ; do
|
|
||||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
|
||||||
SEP="|"
|
|
||||||
done
|
|
||||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
|
||||||
# Add a user-defined pattern to the cygpath arguments
|
|
||||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
|
||||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
|
||||||
fi
|
|
||||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
|
||||||
i=0
|
|
||||||
for arg in "$@" ; do
|
|
||||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
|
||||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
|
||||||
|
|
||||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
|
||||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
|
||||||
else
|
|
||||||
eval `echo args$i`="\"$arg\""
|
|
||||||
fi
|
|
||||||
i=$((i+1))
|
|
||||||
done
|
|
||||||
case $i in
|
|
||||||
(0) set -- ;;
|
|
||||||
(1) set -- "$args0" ;;
|
|
||||||
(2) set -- "$args0" "$args1" ;;
|
|
||||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
|
||||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
|
||||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
|
||||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
|
||||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
|
||||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
|
||||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Escape application args
|
|
||||||
save () {
|
|
||||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
|
||||||
echo " "
|
|
||||||
}
|
|
||||||
APP_ARGS=$(save "$@")
|
|
||||||
|
|
||||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
|
||||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
|
||||||
|
|
||||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
|
||||||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
|
||||||
cd "$(dirname "$0")"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
|
||||||
84
android/gradlew.bat
vendored
@@ -1,84 +0,0 @@
|
|||||||
@if "%DEBUG%" == "" @echo off
|
|
||||||
@rem ##########################################################################
|
|
||||||
@rem
|
|
||||||
@rem Gradle startup script for Windows
|
|
||||||
@rem
|
|
||||||
@rem ##########################################################################
|
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
|
||||||
if "%DIRNAME%" == "" set DIRNAME=.
|
|
||||||
set APP_BASE_NAME=%~n0
|
|
||||||
set APP_HOME=%DIRNAME%
|
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
||||||
set DEFAULT_JVM_OPTS=
|
|
||||||
|
|
||||||
@rem Find java.exe
|
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
|
||||||
if "%ERRORLEVEL%" == "0" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:init
|
|
||||||
@rem Get command-line arguments, handling Windows variants
|
|
||||||
|
|
||||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
|
||||||
|
|
||||||
:win9xME_args
|
|
||||||
@rem Slurp the command line arguments.
|
|
||||||
set CMD_LINE_ARGS=
|
|
||||||
set _SKIP=2
|
|
||||||
|
|
||||||
:win9xME_args_slurp
|
|
||||||
if "x%~1" == "x" goto execute
|
|
||||||
|
|
||||||
set CMD_LINE_ARGS=%*
|
|
||||||
|
|
||||||
:execute
|
|
||||||
@rem Setup the command line
|
|
||||||
|
|
||||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
|
||||||
|
|
||||||
:end
|
|
||||||
@rem End local scope for the variables with windows NT shell
|
|
||||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
|
||||||
|
|
||||||
:fail
|
|
||||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
||||||
rem the _cmd.exe /c_ return code!
|
|
||||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
||||||
33
android/jni/Android.mk
Executable file
@@ -0,0 +1,33 @@
|
|||||||
|
# Copyright (c) 2013 Google, Inc.
|
||||||
|
#
|
||||||
|
# This software is provided 'as-is', without any express or implied
|
||||||
|
# warranty. In no event will the authors be held liable for any damages
|
||||||
|
# arising from the use of this software.
|
||||||
|
# Permission is granted to anyone to use this software for any purpose,
|
||||||
|
# including commercial applications, and to alter it and redistribute it
|
||||||
|
# freely, subject to the following restrictions:
|
||||||
|
# 1. The origin of this software must not be misrepresented; you must not
|
||||||
|
# claim that you wrote the original software. If you use this software
|
||||||
|
# in a product, an acknowledgment in the product documentation would be
|
||||||
|
# appreciated but is not required.
|
||||||
|
# 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
# misrepresented as being the original software.
|
||||||
|
# 3. This notice may not be removed or altered from any source distribution.
|
||||||
|
|
||||||
|
LOCAL_PATH := $(call my-dir)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
|
LOCAL_MODULE := FlatBufferTest
|
||||||
|
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../include
|
||||||
|
LOCAL_SRC_FILES := main.cpp ../../tests/test.cpp ../../src/idl_parser.cpp ../../src/idl_gen_text.cpp
|
||||||
|
LOCAL_LDLIBS := -llog -landroid
|
||||||
|
LOCAL_STATIC_LIBRARIES := android_native_app_glue
|
||||||
|
LOCAL_ARM_MODE:=arm
|
||||||
|
LOCAL_CPPFLAGS += -std=c++11 -fexceptions -Wall -Wno-literal-suffix
|
||||||
|
|
||||||
|
include $(BUILD_SHARED_LIBRARY)
|
||||||
|
|
||||||
|
$(call import-module,android/native_app_glue)
|
||||||
|
|
||||||
|
$(call import-add-path,../..)
|
||||||
22
android/jni/Application.mk
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
# Copyright (c) 2014 Google, Inc.
|
||||||
|
#
|
||||||
|
# This software is provided 'as-is', without any express or implied
|
||||||
|
# warranty. In no event will the authors be held liable for any damages
|
||||||
|
# arising from the use of this software.
|
||||||
|
# Permission is granted to anyone to use this software for any purpose,
|
||||||
|
# including commercial applications, and to alter it and redistribute it
|
||||||
|
# freely, subject to the following restrictions:
|
||||||
|
# 1. The origin of this software must not be misrepresented; you must not
|
||||||
|
# claim that you wrote the original software. If you use this software
|
||||||
|
# in a product, an acknowledgment in the product documentation would be
|
||||||
|
# appreciated but is not required.
|
||||||
|
# 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
# misrepresented as being the original software.
|
||||||
|
# 3. This notice may not be removed or altered from any source distribution.
|
||||||
|
APP_PLATFORM := android-10
|
||||||
|
APP_PROJECT_PATH := $(call my-dir)/..
|
||||||
|
APP_STL := gnustl_static
|
||||||
|
|
||||||
|
APP_ABI := armeabi-v7a
|
||||||
|
NDK_TOOLCHAIN_VERSION := 4.8
|
||||||
|
APP_CPPFLAGS += -std=c++11
|
||||||
18
net/FlatBuffers/IFlatbufferObject.cs → android/jni/main.cpp
Normal file → Executable file
@@ -14,15 +14,13 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace FlatBuffers
|
#include <android_native_app_glue.h>
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// This is the base for both structs and tables.
|
|
||||||
/// </summary>
|
|
||||||
public interface IFlatbufferObject
|
|
||||||
{
|
|
||||||
void __init(int _i, ByteBuffer _bb);
|
|
||||||
|
|
||||||
ByteBuffer ByteBuffer { get; }
|
extern int main(int argc, char **argv);
|
||||||
}
|
|
||||||
|
void android_main(android_app *app) {
|
||||||
|
// Make sure glue isn't stripped.
|
||||||
|
app_dummy();
|
||||||
|
|
||||||
|
main(0, NULL);
|
||||||
}
|
}
|
||||||
20
android/res/values/strings.xml
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (c) 2014 Google, Inc.
|
||||||
|
|
||||||
|
This software is provided 'as-is', without any express or implied
|
||||||
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
arising from the use of this software.
|
||||||
|
Permission is granted to anyone to use this software for any purpose,
|
||||||
|
including commercial applications, and to alter it and redistribute it
|
||||||
|
freely, subject to the following restrictions:
|
||||||
|
1. The origin of this software must not be misrepresented; you must not
|
||||||
|
claim that you wrote the original software. If you use this software
|
||||||
|
in a product, an acknowledgment in the product documentation would be
|
||||||
|
appreciated but is not required.
|
||||||
|
2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
misrepresented as being the original software.
|
||||||
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
|
-->
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">FlatBufferTest</string>
|
||||||
|
</resources>
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
include ':app'
|
|
||||||
rootProject.name = "FlatbuffersTest"
|
|
||||||
89
appveyor.yml
@@ -1,89 +0,0 @@
|
|||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
|
|
||||||
environment:
|
|
||||||
nodejs_version: "14"
|
|
||||||
|
|
||||||
global:
|
|
||||||
# Workaround for https://github.com/conda/conda-build/issues/636
|
|
||||||
PYTHONIOENCODING: UTF-8
|
|
||||||
CONDA_INSTALL_LOCN: "C:\\Miniconda35-x64"
|
|
||||||
CMAKE_OPTIONS: ""
|
|
||||||
CPP_TEST_OPTIONS: ""
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
|
||||||
CMAKE_VS_VERSION: "10 2010"
|
|
||||||
CMAKE_OPTIONS: "-DFLATBUFFERS_BUILD_LEGACY=1"
|
|
||||||
CPP_TEST_OPTIONS: "--std-cpp c++0x"
|
|
||||||
MONSTER_EXTRA: "skip"
|
|
||||||
|
|
||||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
|
||||||
CMAKE_VS_VERSION: "12 2013"
|
|
||||||
MONSTER_EXTRA: "skip"
|
|
||||||
|
|
||||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
|
||||||
CMAKE_VS_VERSION: "14 2015"
|
|
||||||
MONSTER_EXTRA: ""
|
|
||||||
|
|
||||||
platform:
|
|
||||||
- x86
|
|
||||||
- x64
|
|
||||||
|
|
||||||
configuration:
|
|
||||||
- Debug
|
|
||||||
- Release
|
|
||||||
|
|
||||||
before_build:
|
|
||||||
- set MONSTER_EXTRA=%MONSTER_EXTRA%
|
|
||||||
- cmake . -G"Visual Studio %CMAKE_VS_VERSION%" -DFLATBUFFERS_CODE_SANITIZE=1 %CMAKE_OPTIONS%
|
|
||||||
# This cuts down on a lot of noise generated by xamarin warnings.
|
|
||||||
- if exist "C:\Program Files (x86)\MSBuild\14.0\Microsoft.Common.targets\ImportAfter\Xamarin.Common.targets" del "C:\Program Files (x86)\MSBuild\14.0\Microsoft.Common.targets\ImportAfter\Xamarin.Common.targets"
|
|
||||||
|
|
||||||
build:
|
|
||||||
project: ALL_BUILD.vcxproj
|
|
||||||
verbosity: minimal
|
|
||||||
|
|
||||||
after_build:
|
|
||||||
- python conan/appveyor/install.py
|
|
||||||
- python conan/appveyor/build.py
|
|
||||||
|
|
||||||
install:
|
|
||||||
- set PATH=%CONDA_INSTALL_LOCN%;%CONDA_INSTALL_LOCN%\scripts;%PATH%;
|
|
||||||
- ps: Install-Product node $env:nodejs_version
|
|
||||||
|
|
||||||
test_script:
|
|
||||||
- call .appveyor\check-generate-code.bat -b %CONFIGURATION%
|
|
||||||
- "cd tests"
|
|
||||||
- rem "Building all code"
|
|
||||||
- generate_code.bat -b %CONFIGURATION% %CPP_TEST_OPTIONS%
|
|
||||||
- 7z a GeneratedMyGameCode.zip MyGame\
|
|
||||||
- rem "---------------- C++ -----------------"
|
|
||||||
- "cd .."
|
|
||||||
- "%CONFIGURATION%\\flattests.exe"
|
|
||||||
- rem "---------------- JS -----------------"
|
|
||||||
- "node --version"
|
|
||||||
- "npm install"
|
|
||||||
- "npm run compile"
|
|
||||||
- "cd tests"
|
|
||||||
- "TypeScriptTest.bat"
|
|
||||||
- rem "---------------- C# -----------------"
|
|
||||||
# Have to compile this here rather than in "build" above because AppVeyor only
|
|
||||||
# supports building one project??
|
|
||||||
- "cd FlatBuffers.Test"
|
|
||||||
- "dotnet new sln"
|
|
||||||
- "dotnet sln add FlatBuffers.Test.csproj"
|
|
||||||
- "nuget restore"
|
|
||||||
- "mkdir .tmp"
|
|
||||||
- "msbuild.exe /property:Configuration=Release;OutputPath=.tmp /verbosity:minimal FlatBuffers.Test.csproj"
|
|
||||||
- ".tmp\\FlatBuffers.Test.exe"
|
|
||||||
# Run tests with UNSAFE_BYTEBUFFER
|
|
||||||
- "msbuild.exe /property:Configuration=Release;UnsafeByteBuffer=true;OutputPath=.tmp /verbosity:minimal FlatBuffers.Test.csproj"
|
|
||||||
- ".tmp\\FlatBuffers.Test.exe"
|
|
||||||
|
|
||||||
artifacts:
|
|
||||||
- path: $(CONFIGURATION)\flatc.exe
|
|
||||||
name: flatc.exe
|
|
||||||
- path: tests\GeneratedMyGameCode.zip
|
|
||||||
name: GeneratedMyGameCode.zip
|
|
||||||
55
build/VS2010/FlatBuffers.sln
Executable file
@@ -0,0 +1,55 @@
|
|||||||
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||||
|
# Visual Studio 2010
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flatc", "flatc.vcxproj", "{5B5857E1-64E2-4CED-A12E-45E1B3880496}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flatsamplebinary", "flatsamplebinary.vcxproj", "{16FA5518-3DE1-4B15-A1E0-F4734C276FB4}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flatsampletext", "flatsampletext.vcxproj", "{F0A15675-1017-4217-BB5B-3372F2C636AB}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flattests", "flattests.vcxproj", "{DC7BBA00-9FC6-48AF-B7E9-12CA91AC02AA}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Win32 = Debug|Win32
|
||||||
|
MinSizeRel|Win32 = MinSizeRel|Win32
|
||||||
|
Release|Win32 = Release|Win32
|
||||||
|
RelWithDebInfo|Win32 = RelWithDebInfo|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{5B5857E1-64E2-4CED-A12E-45E1B3880496}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{5B5857E1-64E2-4CED-A12E-45E1B3880496}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{5B5857E1-64E2-4CED-A12E-45E1B3880496}.MinSizeRel|Win32.ActiveCfg = Release|Win32
|
||||||
|
{5B5857E1-64E2-4CED-A12E-45E1B3880496}.MinSizeRel|Win32.Build.0 = Release|Win32
|
||||||
|
{5B5857E1-64E2-4CED-A12E-45E1B3880496}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{5B5857E1-64E2-4CED-A12E-45E1B3880496}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{5B5857E1-64E2-4CED-A12E-45E1B3880496}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
|
||||||
|
{5B5857E1-64E2-4CED-A12E-45E1B3880496}.RelWithDebInfo|Win32.Build.0 = Release|Win32
|
||||||
|
{16FA5518-3DE1-4B15-A1E0-F4734C276FB4}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{16FA5518-3DE1-4B15-A1E0-F4734C276FB4}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{16FA5518-3DE1-4B15-A1E0-F4734C276FB4}.MinSizeRel|Win32.ActiveCfg = Release|Win32
|
||||||
|
{16FA5518-3DE1-4B15-A1E0-F4734C276FB4}.MinSizeRel|Win32.Build.0 = Release|Win32
|
||||||
|
{16FA5518-3DE1-4B15-A1E0-F4734C276FB4}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{16FA5518-3DE1-4B15-A1E0-F4734C276FB4}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{16FA5518-3DE1-4B15-A1E0-F4734C276FB4}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
|
||||||
|
{16FA5518-3DE1-4B15-A1E0-F4734C276FB4}.RelWithDebInfo|Win32.Build.0 = Release|Win32
|
||||||
|
{F0A15675-1017-4217-BB5B-3372F2C636AB}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{F0A15675-1017-4217-BB5B-3372F2C636AB}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{F0A15675-1017-4217-BB5B-3372F2C636AB}.MinSizeRel|Win32.ActiveCfg = Release|Win32
|
||||||
|
{F0A15675-1017-4217-BB5B-3372F2C636AB}.MinSizeRel|Win32.Build.0 = Release|Win32
|
||||||
|
{F0A15675-1017-4217-BB5B-3372F2C636AB}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{F0A15675-1017-4217-BB5B-3372F2C636AB}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{F0A15675-1017-4217-BB5B-3372F2C636AB}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
|
||||||
|
{F0A15675-1017-4217-BB5B-3372F2C636AB}.RelWithDebInfo|Win32.Build.0 = Release|Win32
|
||||||
|
{DC7BBA00-9FC6-48AF-B7E9-12CA91AC02AA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{DC7BBA00-9FC6-48AF-B7E9-12CA91AC02AA}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{DC7BBA00-9FC6-48AF-B7E9-12CA91AC02AA}.MinSizeRel|Win32.ActiveCfg = Release|Win32
|
||||||
|
{DC7BBA00-9FC6-48AF-B7E9-12CA91AC02AA}.MinSizeRel|Win32.Build.0 = Release|Win32
|
||||||
|
{DC7BBA00-9FC6-48AF-B7E9-12CA91AC02AA}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{DC7BBA00-9FC6-48AF-B7E9-12CA91AC02AA}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{DC7BBA00-9FC6-48AF-B7E9-12CA91AC02AA}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
|
||||||
|
{DC7BBA00-9FC6-48AF-B7E9-12CA91AC02AA}.RelWithDebInfo|Win32.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
160
build/VS2010/flatc.vcxproj
Executable file
@@ -0,0 +1,160 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGUID>{5B5857E1-64E2-4CED-A12E-45E1B3880496}</ProjectGUID>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
<ProjectName>flatc</ProjectName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">flatc.dir\Debug\</IntDir>
|
||||||
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">flatc</TargetName>
|
||||||
|
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.exe</TargetExt>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
||||||
|
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">flatc.dir\Release\</IntDir>
|
||||||
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">flatc</TargetName>
|
||||||
|
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.exe</TargetExt>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
|
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<CompileAs>CompileAsCpp</CompileAs>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
|
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AssemblerListingLocation>Debug</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>../../Debug/flatc.pdb</ProgramDataBaseFileName>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Midl>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<OutputDirectory>$(IntDir)</OutputDirectory>
|
||||||
|
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||||
|
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||||
|
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||||
|
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||||
|
</Midl>
|
||||||
|
<Link>
|
||||||
|
<AdditionalOptions> /machine:X86 /debug %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<ImportLibrary>../../Debug/flatc.lib</ImportLibrary>
|
||||||
|
<ProgramDataBaseFile>../../Debug/flatc.pdb</ProgramDataBaseFile>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<Version>
|
||||||
|
</Version>
|
||||||
|
</Link>
|
||||||
|
<ProjectReference>
|
||||||
|
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsCpp</CompileAs>
|
||||||
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<DebugInformationFormat>
|
||||||
|
</DebugInformationFormat>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AssemblerListingLocation>Release</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>../../Release/flatc.pdb</ProgramDataBaseFileName>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Midl>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<OutputDirectory>$(IntDir)</OutputDirectory>
|
||||||
|
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||||
|
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||||
|
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||||
|
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||||
|
</Midl>
|
||||||
|
<Link>
|
||||||
|
<AdditionalOptions> /machine:X86 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
|
<ImportLibrary>../../Release/flatc.lib</ImportLibrary>
|
||||||
|
<ProgramDataBaseFile>../../Release/flatc.pdb</ProgramDataBaseFile>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<Version>
|
||||||
|
</Version>
|
||||||
|
</Link>
|
||||||
|
<ProjectReference>
|
||||||
|
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\include\flatbuffers\flatbuffers.h" />
|
||||||
|
<ClInclude Include="..\..\include\flatbuffers\idl.h" />
|
||||||
|
<ClInclude Include="..\..\include\flatbuffers\util.h" />
|
||||||
|
<ClCompile Include="..\..\src\idl_parser.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\idl_gen_cpp.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\idl_gen_java.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\idl_gen_text.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\flatc.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="../../ZERO_CHECK.vcxproj">
|
||||||
|
<Project>71030BD1-9039-4724-A6C4-F7CB2C700B47</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
11
build/VS2010/flatc.vcxproj.user
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
155
build/VS2010/flatsamplebinary.vcxproj
Executable file
@@ -0,0 +1,155 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGUID>{16FA5518-3DE1-4B15-A1E0-F4734C276FB4}</ProjectGUID>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
<ProjectName>flatsamplebinary</ProjectName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">flatsamplebinary.dir\Debug\</IntDir>
|
||||||
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">flatsamplebinary</TargetName>
|
||||||
|
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.exe</TargetExt>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
||||||
|
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">flatsamplebinary.dir\Release\</IntDir>
|
||||||
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">flatsamplebinary</TargetName>
|
||||||
|
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.exe</TargetExt>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
|
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<CompileAs>CompileAsCpp</CompileAs>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
|
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AssemblerListingLocation>Debug</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>../../Debug/flatsamplebinary.pdb</ProgramDataBaseFileName>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Midl>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<OutputDirectory>$(IntDir)</OutputDirectory>
|
||||||
|
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||||
|
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||||
|
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||||
|
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||||
|
</Midl>
|
||||||
|
<Link>
|
||||||
|
<AdditionalOptions> /machine:X86 /debug %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<ImportLibrary>../../Debug/flatsamplebinary.lib</ImportLibrary>
|
||||||
|
<ProgramDataBaseFile>../../Debug/flatsamplebinary.pdb</ProgramDataBaseFile>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<Version>
|
||||||
|
</Version>
|
||||||
|
</Link>
|
||||||
|
<ProjectReference>
|
||||||
|
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsCpp</CompileAs>
|
||||||
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<DebugInformationFormat>
|
||||||
|
</DebugInformationFormat>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AssemblerListingLocation>Release</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>../../Release/flatsamplebinary.pdb</ProgramDataBaseFileName>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Midl>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<OutputDirectory>$(IntDir)</OutputDirectory>
|
||||||
|
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||||
|
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||||
|
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||||
|
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||||
|
</Midl>
|
||||||
|
<Link>
|
||||||
|
<AdditionalOptions> /machine:X86 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
|
<ImportLibrary>../../Release/flatsamplebinary.lib</ImportLibrary>
|
||||||
|
<ProgramDataBaseFile>../../Release/flatsamplebinary.pdb</ProgramDataBaseFile>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<Version>
|
||||||
|
</Version>
|
||||||
|
</Link>
|
||||||
|
<ProjectReference>
|
||||||
|
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\include\flatbuffers\flatbuffers.h" />
|
||||||
|
<ClInclude Include="..\..\samples\monster_generated.h" />
|
||||||
|
<ClCompile Include="..\..\samples\sample_binary.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="../../ZERO_CHECK.vcxproj">
|
||||||
|
<Project>71030BD1-9039-4724-A6C4-F7CB2C700B47</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
3
build/VS2010/flatsamplebinary.vcxproj.user
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
</Project>
|
||||||
159
build/VS2010/flatsampletext.vcxproj
Executable file
@@ -0,0 +1,159 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGUID>{F0A15675-1017-4217-BB5B-3372F2C636AB}</ProjectGUID>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
<ProjectName>flatsampletext</ProjectName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">flatsampletext.dir\Debug\</IntDir>
|
||||||
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">flatsampletext</TargetName>
|
||||||
|
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.exe</TargetExt>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
||||||
|
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">flatsampletext.dir\Release\</IntDir>
|
||||||
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">flatsampletext</TargetName>
|
||||||
|
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.exe</TargetExt>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
|
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<CompileAs>CompileAsCpp</CompileAs>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
|
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AssemblerListingLocation>Debug</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>../../Debug/flatsampletext.pdb</ProgramDataBaseFileName>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Midl>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<OutputDirectory>$(IntDir)</OutputDirectory>
|
||||||
|
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||||
|
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||||
|
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||||
|
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||||
|
</Midl>
|
||||||
|
<Link>
|
||||||
|
<AdditionalOptions> /machine:X86 /debug %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<ImportLibrary>../../Debug/flatsampletext.lib</ImportLibrary>
|
||||||
|
<ProgramDataBaseFile>../../Debug/flatsampletext.pdb</ProgramDataBaseFile>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<Version>
|
||||||
|
</Version>
|
||||||
|
</Link>
|
||||||
|
<ProjectReference>
|
||||||
|
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsCpp</CompileAs>
|
||||||
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<DebugInformationFormat>
|
||||||
|
</DebugInformationFormat>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AssemblerListingLocation>Release</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>../../Release/flatsampletext.pdb</ProgramDataBaseFileName>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Midl>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<OutputDirectory>$(IntDir)</OutputDirectory>
|
||||||
|
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||||
|
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||||
|
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||||
|
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||||
|
</Midl>
|
||||||
|
<Link>
|
||||||
|
<AdditionalOptions> /machine:X86 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
|
<ImportLibrary>../../Release/flatsampletext.lib</ImportLibrary>
|
||||||
|
<ProgramDataBaseFile>../../Release/flatsampletext.pdb</ProgramDataBaseFile>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<Version>
|
||||||
|
</Version>
|
||||||
|
</Link>
|
||||||
|
<ProjectReference>
|
||||||
|
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\include\flatbuffers\flatbuffers.h" />
|
||||||
|
<ClInclude Include="..\..\include\flatbuffers\idl.h" />
|
||||||
|
<ClInclude Include="..\..\include\flatbuffers\util.h" />
|
||||||
|
<ClInclude Include="..\..\samples\monster_generated.h" />
|
||||||
|
<ClCompile Include="..\..\src\idl_parser.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\idl_gen_text.cpp" />
|
||||||
|
<ClCompile Include="..\..\samples\sample_text.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="../../ZERO_CHECK.vcxproj">
|
||||||
|
<Project>71030BD1-9039-4724-A6C4-F7CB2C700B47</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
11
build/VS2010/flatsampletext.vcxproj.user
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
159
build/VS2010/flattests.vcxproj
Executable file
@@ -0,0 +1,159 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGUID>{DC7BBA00-9FC6-48AF-B7E9-12CA91AC02AA}</ProjectGUID>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
<ProjectName>flattests</ProjectName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseOfMfc>false</UseOfMfc>
|
||||||
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">flattests.dir\Debug\</IntDir>
|
||||||
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">flattests</TargetName>
|
||||||
|
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.exe</TargetExt>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
||||||
|
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest>
|
||||||
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</OutDir>
|
||||||
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">flattests.dir\Release\</IntDir>
|
||||||
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">flattests</TargetName>
|
||||||
|
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.exe</TargetExt>
|
||||||
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
|
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</GenerateManifest>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
|
<CompileAs>CompileAsCpp</CompileAs>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
|
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AssemblerListingLocation>Debug</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>../../Debug/flattests.pdb</ProgramDataBaseFileName>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Midl>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<OutputDirectory>$(IntDir)</OutputDirectory>
|
||||||
|
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||||
|
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||||
|
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||||
|
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||||
|
</Midl>
|
||||||
|
<Link>
|
||||||
|
<AdditionalOptions> /machine:X86 /debug %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<ImportLibrary>../../Debug/flattests.lib</ImportLibrary>
|
||||||
|
<ProgramDataBaseFile>../../Debug/flattests.pdb</ProgramDataBaseFile>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<Version>
|
||||||
|
</Version>
|
||||||
|
</Link>
|
||||||
|
<ProjectReference>
|
||||||
|
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsCpp</CompileAs>
|
||||||
|
<ExceptionHandling>Sync</ExceptionHandling>
|
||||||
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<DebugInformationFormat>
|
||||||
|
</DebugInformationFormat>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR="Release";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AssemblerListingLocation>Release</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>../../Release/flattests.pdb</ProgramDataBaseFileName>
|
||||||
|
</ClCompile>
|
||||||
|
<ResourceCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Midl>
|
||||||
|
<AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<OutputDirectory>$(IntDir)</OutputDirectory>
|
||||||
|
<HeaderFileName>%(Filename).h</HeaderFileName>
|
||||||
|
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
|
||||||
|
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||||
|
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||||
|
</Midl>
|
||||||
|
<Link>
|
||||||
|
<AdditionalOptions> /machine:X86 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||||
|
<ImportLibrary>../../Release/flattests.lib</ImportLibrary>
|
||||||
|
<ProgramDataBaseFile>../../Release/flattests.pdb</ProgramDataBaseFile>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<Version>
|
||||||
|
</Version>
|
||||||
|
</Link>
|
||||||
|
<ProjectReference>
|
||||||
|
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="..\..\include\flatbuffers\flatbuffers.h" />
|
||||||
|
<ClInclude Include="..\..\include\flatbuffers\idl.h" />
|
||||||
|
<ClInclude Include="..\..\include\flatbuffers\util.h" />
|
||||||
|
<ClInclude Include="..\..\tests\monster_test_generated.h" />
|
||||||
|
<ClCompile Include="..\..\src\idl_parser.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\idl_gen_text.cpp" />
|
||||||
|
<ClCompile Include="..\..\tests\test.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="../../ZERO_CHECK.vcxproj">
|
||||||
|
<Project>71030BD1-9039-4724-A6C4-F7CB2C700B47</Project>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
11
build/VS2010/flattests.vcxproj.user
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
1039
build/Xcode/FlatBuffers.xcodeproj/project.pbxproj
Normal file
261
build_defs.bzl
@@ -1,261 +0,0 @@
|
|||||||
# Description:
|
|
||||||
# BUILD rules for generating flatbuffer files in various languages.
|
|
||||||
|
|
||||||
"""
|
|
||||||
Rules for building C++ flatbuffers with Bazel.
|
|
||||||
"""
|
|
||||||
|
|
||||||
load("@rules_cc//cc:defs.bzl", "cc_library")
|
|
||||||
|
|
||||||
flatc_path = "@com_github_google_flatbuffers//:flatc"
|
|
||||||
|
|
||||||
DEFAULT_INCLUDE_PATHS = [
|
|
||||||
"./",
|
|
||||||
"$(GENDIR)",
|
|
||||||
"$(BINDIR)",
|
|
||||||
]
|
|
||||||
|
|
||||||
DEFAULT_FLATC_ARGS = [
|
|
||||||
"--gen-object-api",
|
|
||||||
"--gen-compare",
|
|
||||||
"--no-includes",
|
|
||||||
"--gen-mutable",
|
|
||||||
"--reflect-names",
|
|
||||||
"--cpp-ptr-type flatbuffers::unique_ptr",
|
|
||||||
]
|
|
||||||
|
|
||||||
def flatbuffer_library_public(
|
|
||||||
name,
|
|
||||||
srcs,
|
|
||||||
outs,
|
|
||||||
language_flag,
|
|
||||||
out_prefix = "",
|
|
||||||
includes = [],
|
|
||||||
include_paths = DEFAULT_INCLUDE_PATHS,
|
|
||||||
flatc_args = DEFAULT_FLATC_ARGS,
|
|
||||||
reflection_name = "",
|
|
||||||
reflection_visibility = None,
|
|
||||||
compatible_with = None,
|
|
||||||
restricted_to = None,
|
|
||||||
output_to_bindir = False):
|
|
||||||
"""Generates code files for reading/writing the given flatbuffers in the requested language using the public compiler.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
name: Rule name.
|
|
||||||
srcs: Source .fbs files. Sent in order to the compiler.
|
|
||||||
outs: Output files from flatc.
|
|
||||||
language_flag: Target language flag. One of [-c, -j, -js].
|
|
||||||
out_prefix: Prepend this path to the front of all generated files except on
|
|
||||||
single source targets. Usually is a directory name.
|
|
||||||
includes: Optional, list of filegroups of schemas that the srcs depend on.
|
|
||||||
include_paths: Optional, list of paths the includes files can be found in.
|
|
||||||
flatc_args: Optional, list of additional arguments to pass to flatc.
|
|
||||||
reflection_name: Optional, if set this will generate the flatbuffer
|
|
||||||
reflection binaries for the schemas.
|
|
||||||
reflection_visibility: The visibility of the generated reflection Fileset.
|
|
||||||
output_to_bindir: Passed to genrule for output to bin directory.
|
|
||||||
compatible_with: Optional, The list of environments this rule can be
|
|
||||||
built for, in addition to default-supported environments.
|
|
||||||
restricted_to: Optional, The list of environments this rule can be built
|
|
||||||
for, instead of default-supported environments.
|
|
||||||
output_to_bindir: Passed to genrule for output to bin directory.
|
|
||||||
|
|
||||||
|
|
||||||
This rule creates a filegroup(name) with all generated source files, and
|
|
||||||
optionally a Fileset([reflection_name]) with all generated reflection
|
|
||||||
binaries.
|
|
||||||
"""
|
|
||||||
include_paths_cmd = ["-I %s" % (s) for s in include_paths]
|
|
||||||
|
|
||||||
# '$(@D)' when given a single source target will give the appropriate
|
|
||||||
# directory. Appending 'out_prefix' is only necessary when given a build
|
|
||||||
# target with multiple sources.
|
|
||||||
output_directory = (
|
|
||||||
("-o $(@D)/%s" % (out_prefix)) if len(srcs) > 1 else ("-o $(@D)")
|
|
||||||
)
|
|
||||||
genrule_cmd = " ".join([
|
|
||||||
"SRCS=($(SRCS));",
|
|
||||||
"for f in $${SRCS[@]:0:%s}; do" % len(srcs),
|
|
||||||
"$(location %s)" % (flatc_path),
|
|
||||||
" ".join(include_paths_cmd),
|
|
||||||
" ".join(flatc_args),
|
|
||||||
language_flag,
|
|
||||||
output_directory,
|
|
||||||
"$$f;",
|
|
||||||
"done",
|
|
||||||
])
|
|
||||||
native.genrule(
|
|
||||||
name = name,
|
|
||||||
srcs = srcs + includes,
|
|
||||||
outs = outs,
|
|
||||||
output_to_bindir = output_to_bindir,
|
|
||||||
tools = [flatc_path],
|
|
||||||
cmd = genrule_cmd,
|
|
||||||
compatible_with = compatible_with,
|
|
||||||
restricted_to = restricted_to,
|
|
||||||
message = "Generating flatbuffer files for %s:" % (name),
|
|
||||||
)
|
|
||||||
if reflection_name:
|
|
||||||
reflection_genrule_cmd = " ".join([
|
|
||||||
"SRCS=($(SRCS));",
|
|
||||||
"for f in $${SRCS[@]:0:%s}; do" % len(srcs),
|
|
||||||
"$(location %s)" % (flatc_path),
|
|
||||||
"-b --schema",
|
|
||||||
" ".join(flatc_args),
|
|
||||||
" ".join(include_paths_cmd),
|
|
||||||
language_flag,
|
|
||||||
output_directory,
|
|
||||||
"$$f;",
|
|
||||||
"done",
|
|
||||||
])
|
|
||||||
reflection_outs = [
|
|
||||||
(out_prefix + "%s.bfbs") % (s.replace(".fbs", "").split("/")[-1])
|
|
||||||
for s in srcs
|
|
||||||
]
|
|
||||||
native.genrule(
|
|
||||||
name = "%s_srcs" % reflection_name,
|
|
||||||
srcs = srcs + includes,
|
|
||||||
outs = reflection_outs,
|
|
||||||
output_to_bindir = output_to_bindir,
|
|
||||||
tools = [flatc_path],
|
|
||||||
compatible_with = compatible_with,
|
|
||||||
restricted_to = restricted_to,
|
|
||||||
cmd = reflection_genrule_cmd,
|
|
||||||
message = "Generating flatbuffer reflection binary for %s:" % (name),
|
|
||||||
)
|
|
||||||
native.filegroup(
|
|
||||||
name = "%s_out" % reflection_name,
|
|
||||||
srcs = reflection_outs,
|
|
||||||
visibility = reflection_visibility,
|
|
||||||
compatible_with = compatible_with,
|
|
||||||
restricted_to = restricted_to,
|
|
||||||
)
|
|
||||||
|
|
||||||
def flatbuffer_cc_library(
|
|
||||||
name,
|
|
||||||
srcs,
|
|
||||||
srcs_filegroup_name = "",
|
|
||||||
out_prefix = "",
|
|
||||||
includes = [],
|
|
||||||
include_paths = DEFAULT_INCLUDE_PATHS,
|
|
||||||
flatc_args = DEFAULT_FLATC_ARGS,
|
|
||||||
visibility = None,
|
|
||||||
compatible_with = None,
|
|
||||||
restricted_to = None,
|
|
||||||
srcs_filegroup_visibility = None,
|
|
||||||
gen_reflections = False):
|
|
||||||
'''A cc_library with the generated reader/writers for the given flatbuffer definitions.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
name: Rule name.
|
|
||||||
srcs: Source .fbs files. Sent in order to the compiler.
|
|
||||||
srcs_filegroup_name: Name of the output filegroup that holds srcs. Pass this
|
|
||||||
filegroup into the `includes` parameter of any other
|
|
||||||
flatbuffer_cc_library that depends on this one's schemas.
|
|
||||||
out_prefix: Prepend this path to the front of all generated files. Usually
|
|
||||||
is a directory name.
|
|
||||||
includes: Optional, list of filegroups of schemas that the srcs depend on.
|
|
||||||
** SEE REMARKS BELOW **
|
|
||||||
include_paths: Optional, list of paths the includes files can be found in.
|
|
||||||
flatc_args: Optional list of additional arguments to pass to flatc
|
|
||||||
(e.g. --gen-mutable).
|
|
||||||
visibility: The visibility of the generated cc_library. By default, use the
|
|
||||||
default visibility of the project.
|
|
||||||
srcs_filegroup_visibility: The visibility of the generated srcs filegroup.
|
|
||||||
By default, use the value of the visibility parameter above.
|
|
||||||
gen_reflections: Optional, if true this will generate the flatbuffer
|
|
||||||
reflection binaries for the schemas.
|
|
||||||
compatible_with: Optional, The list of environments this rule can be built
|
|
||||||
for, in addition to default-supported environments.
|
|
||||||
restricted_to: Optional, The list of environments this rule can be built
|
|
||||||
for, instead of default-supported environments.
|
|
||||||
|
|
||||||
This produces:
|
|
||||||
filegroup([name]_srcs): all generated .h files.
|
|
||||||
filegroup(srcs_filegroup_name if specified, or [name]_includes if not):
|
|
||||||
Other flatbuffer_cc_library's can pass this in for their `includes`
|
|
||||||
parameter, if they depend on the schemas in this library.
|
|
||||||
Fileset([name]_reflection): (Optional) all generated reflection binaries.
|
|
||||||
cc_library([name]): library with sources and flatbuffers deps.
|
|
||||||
|
|
||||||
Remarks:
|
|
||||||
** Because the genrule used to call flatc does not have any trivial way of
|
|
||||||
computing the output list of files transitively generated by includes and
|
|
||||||
--gen-includes (the default) being defined for flatc, the --gen-includes
|
|
||||||
flag will not work as expected. The way around this is to add a dependency
|
|
||||||
to the flatbuffer_cc_library defined alongside the flatc included Fileset.
|
|
||||||
For example you might define:
|
|
||||||
|
|
||||||
flatbuffer_cc_library(
|
|
||||||
name = "my_fbs",
|
|
||||||
srcs = [ "schemas/foo.fbs" ],
|
|
||||||
includes = [ "//third_party/bazz:bazz_fbs_includes" ],
|
|
||||||
)
|
|
||||||
|
|
||||||
In which foo.fbs includes a few files from the Fileset defined at
|
|
||||||
//third_party/bazz:bazz_fbs_includes. When compiling the library that
|
|
||||||
includes foo_generated.h, and therefore has my_fbs as a dependency, it
|
|
||||||
will fail to find any of the bazz *_generated.h files unless you also
|
|
||||||
add bazz's flatbuffer_cc_library to your own dependency list, e.g.:
|
|
||||||
|
|
||||||
cc_library(
|
|
||||||
name = "my_lib",
|
|
||||||
deps = [
|
|
||||||
":my_fbs",
|
|
||||||
"//third_party/bazz:bazz_fbs"
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
Happy dependent Flatbuffering!
|
|
||||||
'''
|
|
||||||
output_headers = [
|
|
||||||
(out_prefix + "%s_generated.h") % (s.replace(".fbs", "").split("/")[-1])
|
|
||||||
for s in srcs
|
|
||||||
]
|
|
||||||
reflection_name = "%s_reflection" % name if gen_reflections else ""
|
|
||||||
|
|
||||||
srcs_lib = "%s_srcs" % (name)
|
|
||||||
flatbuffer_library_public(
|
|
||||||
name = srcs_lib,
|
|
||||||
srcs = srcs,
|
|
||||||
outs = output_headers,
|
|
||||||
language_flag = "-c",
|
|
||||||
out_prefix = out_prefix,
|
|
||||||
includes = includes,
|
|
||||||
include_paths = include_paths,
|
|
||||||
flatc_args = flatc_args,
|
|
||||||
compatible_with = compatible_with,
|
|
||||||
restricted_to = restricted_to,
|
|
||||||
reflection_name = reflection_name,
|
|
||||||
reflection_visibility = visibility,
|
|
||||||
)
|
|
||||||
cc_library(
|
|
||||||
name = name,
|
|
||||||
hdrs = [
|
|
||||||
":" + srcs_lib,
|
|
||||||
],
|
|
||||||
srcs = [
|
|
||||||
":" + srcs_lib,
|
|
||||||
],
|
|
||||||
features = [
|
|
||||||
"-parse_headers",
|
|
||||||
],
|
|
||||||
deps = [
|
|
||||||
"@com_github_google_flatbuffers//:runtime_cc",
|
|
||||||
],
|
|
||||||
includes = [],
|
|
||||||
compatible_with = compatible_with,
|
|
||||||
restricted_to = restricted_to,
|
|
||||||
linkstatic = 1,
|
|
||||||
visibility = visibility,
|
|
||||||
)
|
|
||||||
|
|
||||||
# A filegroup for the `srcs`. That is, all the schema files for this
|
|
||||||
# Flatbuffer set.
|
|
||||||
native.filegroup(
|
|
||||||
name = srcs_filegroup_name if srcs_filegroup_name else "%s_includes" % (name),
|
|
||||||
srcs = srcs,
|
|
||||||
compatible_with = compatible_with,
|
|
||||||
restricted_to = restricted_to,
|
|
||||||
visibility = srcs_filegroup_visibility if srcs_filegroup_visibility != None else visibility,
|
|
||||||
)
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "google/flatbuffers",
|
|
||||||
"type": "library",
|
|
||||||
"description": "FlatBuffers for PHP",
|
|
||||||
"keywords": ["google", "flatbuffers", "serialization"],
|
|
||||||
"homepage": "https://github.com/google/flatbuffers",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.4"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Google\\FlatBuffers\\": "php"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 2.8)
|
|
||||||
|
|
||||||
message(STATUS "Conan FlatBuffers Wrapper")
|
|
||||||
|
|
||||||
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
|
|
||||||
conan_basic_setup()
|
|
||||||
|
|
||||||
if (WIN32 AND MSVC AND FLATBUFFERS_BUILD_SHAREDLIB)
|
|
||||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|
||||||
endif(WIN32 AND MSVC AND FLATBUFFERS_BUILD_SHAREDLIB)
|
|
||||||
|
|
||||||
include(${CMAKE_SOURCE_DIR}/CMakeListsOriginal.txt)
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import os
|
|
||||||
|
|
||||||
if os.getenv("APPVEYOR_REPO_TAG") != "true":
|
|
||||||
print("Skip build step. It's not TAG")
|
|
||||||
else:
|
|
||||||
os.system("python conan/build.py")
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import os
|
|
||||||
|
|
||||||
if os.getenv("APPVEYOR_REPO_TAG") != "true":
|
|
||||||
print("Skip step. It's not TAG")
|
|
||||||
else:
|
|
||||||
os.system("pip install conan conan-package-tools")
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import subprocess
|
|
||||||
from cpt.packager import ConanMultiPackager
|
|
||||||
|
|
||||||
|
|
||||||
def set_appveyor_environment():
|
|
||||||
if os.getenv("APPVEYOR") is not None:
|
|
||||||
compiler_version = os.getenv("CMAKE_VS_VERSION").split(" ")[0].replace('"', '')
|
|
||||||
os.environ["CONAN_VISUAL_VERSIONS"] = compiler_version
|
|
||||||
os.environ["CONAN_STABLE_BRANCH_PATTERN"] = "master"
|
|
||||||
ci_platform = os.getenv("Platform").replace('"', '')
|
|
||||||
ci_platform = "x86" if ci_platform == "x86" else "x86_64"
|
|
||||||
os.environ["CONAN_ARCHS"] = ci_platform
|
|
||||||
os.environ["CONAN_BUILD_TYPES"] = os.getenv("Configuration").replace('"', '')
|
|
||||||
|
|
||||||
|
|
||||||
def get_branch():
|
|
||||||
try:
|
|
||||||
for line in subprocess.check_output("git branch", shell=True).decode().splitlines():
|
|
||||||
line = line.strip()
|
|
||||||
if line.startswith("*") and " (HEAD detached" not in line:
|
|
||||||
return line.replace("*", "", 1).strip()
|
|
||||||
return ""
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
return ""
|
|
||||||
|
|
||||||
|
|
||||||
def get_version():
|
|
||||||
version = get_branch()
|
|
||||||
if os.getenv("TRAVIS", False):
|
|
||||||
version = os.getenv("TRAVIS_BRANCH")
|
|
||||||
|
|
||||||
if os.getenv("APPVEYOR", False):
|
|
||||||
version = os.getenv("APPVEYOR_REPO_BRANCH")
|
|
||||||
if os.getenv("APPVEYOR_REPO_TAG") == "true":
|
|
||||||
version = os.getenv("APPVEYOR_REPO_TAG_NAME")
|
|
||||||
|
|
||||||
match = re.search(r"v(\d+\.\d+\.\d+.*)", version)
|
|
||||||
if match:
|
|
||||||
return match.group(1)
|
|
||||||
return version
|
|
||||||
|
|
||||||
|
|
||||||
def get_reference(username):
|
|
||||||
return "flatbuffers/{}@google/stable".format(get_version())
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
login_username = os.getenv("CONAN_LOGIN_USERNAME", "aardappel")
|
|
||||||
username = os.getenv("CONAN_USERNAME", "google")
|
|
||||||
upload = os.getenv("CONAN_UPLOAD", "https://api.bintray.com/conan/aardappel/flatbuffers")
|
|
||||||
stable_branch_pattern = os.getenv("CONAN_STABLE_BRANCH_PATTERN", r"v\d+\.\d+\.\d+.*")
|
|
||||||
test_folder = os.getenv("CPT_TEST_FOLDER", os.path.join("conan", "test_package"))
|
|
||||||
upload_only_when_stable = os.getenv("CONAN_UPLOAD_ONLY_WHEN_STABLE", True)
|
|
||||||
set_appveyor_environment()
|
|
||||||
|
|
||||||
builder = ConanMultiPackager(reference=get_reference(username),
|
|
||||||
username=username,
|
|
||||||
login_username=login_username,
|
|
||||||
upload=upload,
|
|
||||||
stable_branch_pattern=stable_branch_pattern,
|
|
||||||
upload_only_when_stable=upload_only_when_stable,
|
|
||||||
test_folder=test_folder)
|
|
||||||
builder.add_common_builds(pure_c=False)
|
|
||||||
builder.run()
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
project(test_package CXX)
|
|
||||||
cmake_minimum_required(VERSION 2.8.11)
|
|
||||||
|
|
||||||
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
|
|
||||||
conan_basic_setup()
|
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME} test_package.cpp)
|
|
||||||
target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
|
|
||||||
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
from conans import ConanFile, CMake
|
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
class TestPackageConan(ConanFile):
|
|
||||||
settings = "os", "compiler", "build_type", "arch"
|
|
||||||
generators = "cmake"
|
|
||||||
|
|
||||||
def build(self):
|
|
||||||
cmake = CMake(self)
|
|
||||||
cmake.configure()
|
|
||||||
cmake.build()
|
|
||||||
|
|
||||||
def test(self):
|
|
||||||
bin_path = os.path.join("bin", "test_package")
|
|
||||||
self.run(bin_path, run_environment=True)
|
|
||||||
self.run("flatc --version", run_environment=True)
|
|
||||||
self.run("flathash fnv1_16 conan", run_environment=True)
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2018 Google Inc. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <cstdlib>
|
|
||||||
#include <iostream>
|
|
||||||
#include "flatbuffers/util.h"
|
|
||||||
|
|
||||||
// Test to validate Conan package generated
|
|
||||||
|
|
||||||
int main(int /*argc*/, const char * /*argv*/ []) {
|
|
||||||
|
|
||||||
const std::string filename("conanbuildinfo.cmake");
|
|
||||||
|
|
||||||
if (flatbuffers::FileExists(filename.c_str())) {
|
|
||||||
std::cout << "File " << filename << " exists.\n";
|
|
||||||
} else {
|
|
||||||
std::cout << "File " << filename << " does not exist.\n";
|
|
||||||
return EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
if [[ "$(uname -s)" == 'Darwin' ]]; then
|
|
||||||
if which pyenv > /dev/null; then
|
|
||||||
eval "$(pyenv init -)"
|
|
||||||
fi
|
|
||||||
pyenv activate conan
|
|
||||||
fi
|
|
||||||
|
|
||||||
conan user
|
|
||||||
python conan/build.py
|
|
||||||