1*890232f2SAndroid Build Coastguard Worker# This is the legacy minimum version flatbuffers supported for a while. 2*890232f2SAndroid Build Coastguard Workercmake_minimum_required(VERSION 2.8.12...3.22.1) 3*890232f2SAndroid Build Coastguard Worker 4*890232f2SAndroid Build Coastguard Worker# CMake version 3.16 is the 'de-facto' minimum version for flatbuffers. If the 5*890232f2SAndroid Build Coastguard Worker# current cmake is older than this, warn the user and include the legacy file to 6*890232f2SAndroid Build Coastguard Worker# provide some level of support. 7*890232f2SAndroid Build Coastguard Workerif(CMAKE_VERSION VERSION_LESS 3.16) 8*890232f2SAndroid Build Coastguard Worker message(WARNING "Using cmake version ${CMAKE_VERSION} which is older than " 9*890232f2SAndroid Build Coastguard Worker "our target version of 3.16. This will use the legacy CMakeLists.txt that " 10*890232f2SAndroid Build Coastguard Worker "supports version 2.8.12 and higher, but not actively maintained. Consider " 11*890232f2SAndroid Build Coastguard Worker "upgrading cmake to a newer version, as this may become a fatal error in the " 12*890232f2SAndroid Build Coastguard Worker "future.") 13*890232f2SAndroid Build Coastguard Worker # Use the legacy version of CMakeLists.txt 14*890232f2SAndroid Build Coastguard Worker include(CMake/CMakeLists_legacy.cmake.in) 15*890232f2SAndroid Build Coastguard Worker return() 16*890232f2SAndroid Build Coastguard Workerendif() 17*890232f2SAndroid Build Coastguard Worker 18*890232f2SAndroid Build Coastguard Worker# Attempt to read the current version of flatbuffers by looking at the latest tag. 19*890232f2SAndroid Build Coastguard Workerinclude(CMake/Version.cmake) 20*890232f2SAndroid Build Coastguard Worker 21*890232f2SAndroid Build Coastguard Workerif (POLICY CMP0048) 22*890232f2SAndroid Build Coastguard Worker cmake_policy(SET CMP0048 NEW) 23*890232f2SAndroid Build Coastguard Worker project(FlatBuffers 24*890232f2SAndroid Build Coastguard Worker DESCRIPTION "Flatbuffers serialization library" 25*890232f2SAndroid Build Coastguard Worker VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH} 26*890232f2SAndroid Build Coastguard Worker LANGUAGES CXX) 27*890232f2SAndroid Build Coastguard Workerelse() 28*890232f2SAndroid Build Coastguard Worker project(FlatBuffers) 29*890232f2SAndroid Build Coastguard Workerendif (POLICY CMP0048) 30*890232f2SAndroid Build Coastguard Worker 31*890232f2SAndroid Build Coastguard Worker# generate compile_commands.json 32*890232f2SAndroid Build Coastguard Workerset(CMAKE_EXPORT_COMPILE_COMMANDS ON) 33*890232f2SAndroid Build Coastguard Worker 34*890232f2SAndroid Build Coastguard Worker# NOTE: Code coverage only works on Linux & OSX. 35*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_CODE_COVERAGE "Enable the code coverage build option." OFF) 36*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_BUILD_TESTS "Enable the build of tests and samples." ON) 37*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_INSTALL "Enable the installation of targets." ON) 38*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_BUILD_FLATLIB "Enable the build of the flatbuffers library" 39*890232f2SAndroid Build Coastguard Worker ON) 40*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_BUILD_FLATC "Enable the build of the flatbuffers compiler" 41*890232f2SAndroid Build Coastguard Worker ON) 42*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_STATIC_FLATC "Build flatbuffers compiler with -static flag" 43*890232f2SAndroid Build Coastguard Worker OFF) 44*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_BUILD_FLATHASH "Enable the build of flathash" ON) 45*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_BUILD_BENCHMARKS "Enable the build of flatbenchmark." 46*890232f2SAndroid Build Coastguard Worker OFF) 47*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_BUILD_GRPCTEST "Enable the build of grpctest" OFF) 48*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_BUILD_SHAREDLIB 49*890232f2SAndroid Build Coastguard Worker "Enable the build of the flatbuffers shared library" 50*890232f2SAndroid Build Coastguard Worker OFF) 51*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_LIBCXX_WITH_CLANG "Force libc++ when using Clang" ON) 52*890232f2SAndroid Build Coastguard Worker# NOTE: Sanitizer check only works on Linux & OSX (gcc & llvm). 53*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_CODE_SANITIZE 54*890232f2SAndroid Build Coastguard Worker "Add '-fsanitize' flags to 'flattests' and 'flatc' targets." 55*890232f2SAndroid Build Coastguard Worker OFF) 56*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_PACKAGE_REDHAT 57*890232f2SAndroid Build Coastguard Worker "Build an rpm using the 'package' target." 58*890232f2SAndroid Build Coastguard Worker OFF) 59*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_PACKAGE_DEBIAN 60*890232f2SAndroid Build Coastguard Worker "Build an deb using the 'package' target." 61*890232f2SAndroid Build Coastguard Worker OFF) 62*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_BUILD_CPP17 63*890232f2SAndroid Build Coastguard Worker "Enable the build of c++17 test target. \" 64*890232f2SAndroid Build Coastguard Worker Requirements: Clang6, GCC7, MSVC2017 (_MSC_VER >= 1914) or higher." 65*890232f2SAndroid Build Coastguard Worker OFF) 66*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_BUILD_LEGACY 67*890232f2SAndroid Build Coastguard Worker "Run C++ code generator with '--cpp-std c++0x' switch." 68*890232f2SAndroid Build Coastguard Worker OFF) 69*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_ENABLE_PCH 70*890232f2SAndroid Build Coastguard Worker "Enable precompile headers support for 'flatbuffers' and 'flatc'. \" 71*890232f2SAndroid Build Coastguard Worker Only work if CMake supports 'target_precompile_headers'. \" 72*890232f2SAndroid Build Coastguard Worker This can speed up compilation time." 73*890232f2SAndroid Build Coastguard Worker OFF) 74*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_SKIP_MONSTER_EXTRA 75*890232f2SAndroid Build Coastguard Worker "Skip generating monster_extra.fbs that contains non-supported numerical\" 76*890232f2SAndroid Build Coastguard Worker types." OFF) 77*890232f2SAndroid Build Coastguard Workeroption(FLATBUFFERS_STRICT_MODE 78*890232f2SAndroid Build Coastguard Worker "Build flatbuffers with all warnings as errors (-Werror or /WX)." 79*890232f2SAndroid Build Coastguard Worker OFF) 80*890232f2SAndroid Build Coastguard Worker 81*890232f2SAndroid Build Coastguard Workerset(MSVC_LIKE OFF) 82*890232f2SAndroid Build Coastguard Workerif(MSVC OR CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") 83*890232f2SAndroid Build Coastguard Worker set(MSVC_LIKE ON) 84*890232f2SAndroid Build Coastguard Workerendif() 85*890232f2SAndroid Build Coastguard Worker 86*890232f2SAndroid Build Coastguard Workerif(NOT FLATBUFFERS_BUILD_FLATC AND FLATBUFFERS_BUILD_TESTS) 87*890232f2SAndroid Build Coastguard Worker message(WARNING 88*890232f2SAndroid Build Coastguard Worker "Cannot build tests without building the compiler. Tests will be disabled.") 89*890232f2SAndroid Build Coastguard Worker set(FLATBUFFERS_BUILD_TESTS OFF) 90*890232f2SAndroid Build Coastguard Workerendif() 91*890232f2SAndroid Build Coastguard Worker 92*890232f2SAndroid Build Coastguard Workerif(DEFINED FLATBUFFERS_MAX_PARSING_DEPTH) 93*890232f2SAndroid Build Coastguard Worker # Override the default recursion depth limit. 94*890232f2SAndroid Build Coastguard Worker add_definitions(-DFLATBUFFERS_MAX_PARSING_DEPTH=${FLATBUFFERS_MAX_PARSING_DEPTH}) 95*890232f2SAndroid Build Coastguard Worker message(STATUS "FLATBUFFERS_MAX_PARSING_DEPTH: ${FLATBUFFERS_MAX_PARSING_DEPTH}") 96*890232f2SAndroid Build Coastguard Workerendif() 97*890232f2SAndroid Build Coastguard Worker 98*890232f2SAndroid Build Coastguard Worker# Auto-detect locale-narrow 'strtod_l' and 'strtoull_l' functions. 99*890232f2SAndroid Build Coastguard Workerif(NOT DEFINED FLATBUFFERS_LOCALE_INDEPENDENT) 100*890232f2SAndroid Build Coastguard Worker include(CheckCXXSymbolExists) 101*890232f2SAndroid Build Coastguard Worker 102*890232f2SAndroid Build Coastguard Worker set(FLATBUFFERS_LOCALE_INDEPENDENT 0) 103*890232f2SAndroid Build Coastguard Worker if(MSVC_LIKE) 104*890232f2SAndroid Build Coastguard Worker check_cxx_symbol_exists(_strtof_l stdlib.h FLATBUFFERS_HAS_STRTOF_L) 105*890232f2SAndroid Build Coastguard Worker check_cxx_symbol_exists(_strtoui64_l stdlib.h FLATBUFFERS_HAS_STRTOULL_L) 106*890232f2SAndroid Build Coastguard Worker else() 107*890232f2SAndroid Build Coastguard Worker check_cxx_symbol_exists(strtof_l stdlib.h FLATBUFFERS_HAS_STRTOF_L) 108*890232f2SAndroid Build Coastguard Worker check_cxx_symbol_exists(strtoull_l stdlib.h FLATBUFFERS_HAS_STRTOULL_L) 109*890232f2SAndroid Build Coastguard Worker endif() 110*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_HAS_STRTOF_L AND FLATBUFFERS_HAS_STRTOULL_L) 111*890232f2SAndroid Build Coastguard Worker set(FLATBUFFERS_LOCALE_INDEPENDENT 1) 112*890232f2SAndroid Build Coastguard Worker endif() 113*890232f2SAndroid Build Coastguard Workerendif() 114*890232f2SAndroid Build Coastguard Workeradd_definitions(-DFLATBUFFERS_LOCALE_INDEPENDENT=$<BOOL:${FLATBUFFERS_LOCALE_INDEPENDENT}>) 115*890232f2SAndroid Build Coastguard Worker 116*890232f2SAndroid Build Coastguard Workerset(FlatBuffers_Library_SRCS 117*890232f2SAndroid Build Coastguard Worker include/flatbuffers/allocator.h 118*890232f2SAndroid Build Coastguard Worker include/flatbuffers/array.h 119*890232f2SAndroid Build Coastguard Worker include/flatbuffers/base.h 120*890232f2SAndroid Build Coastguard Worker include/flatbuffers/bfbs_generator.h 121*890232f2SAndroid Build Coastguard Worker include/flatbuffers/buffer.h 122*890232f2SAndroid Build Coastguard Worker include/flatbuffers/buffer_ref.h 123*890232f2SAndroid Build Coastguard Worker include/flatbuffers/default_allocator.h 124*890232f2SAndroid Build Coastguard Worker include/flatbuffers/detached_buffer.h 125*890232f2SAndroid Build Coastguard Worker include/flatbuffers/flatbuffer_builder.h 126*890232f2SAndroid Build Coastguard Worker include/flatbuffers/flatbuffers.h 127*890232f2SAndroid Build Coastguard Worker include/flatbuffers/flexbuffers.h 128*890232f2SAndroid Build Coastguard Worker include/flatbuffers/flex_flat_util.h 129*890232f2SAndroid Build Coastguard Worker include/flatbuffers/hash.h 130*890232f2SAndroid Build Coastguard Worker include/flatbuffers/idl.h 131*890232f2SAndroid Build Coastguard Worker include/flatbuffers/minireflect.h 132*890232f2SAndroid Build Coastguard Worker include/flatbuffers/reflection.h 133*890232f2SAndroid Build Coastguard Worker include/flatbuffers/reflection_generated.h 134*890232f2SAndroid Build Coastguard Worker include/flatbuffers/registry.h 135*890232f2SAndroid Build Coastguard Worker include/flatbuffers/stl_emulation.h 136*890232f2SAndroid Build Coastguard Worker include/flatbuffers/string.h 137*890232f2SAndroid Build Coastguard Worker include/flatbuffers/struct.h 138*890232f2SAndroid Build Coastguard Worker include/flatbuffers/table.h 139*890232f2SAndroid Build Coastguard Worker include/flatbuffers/util.h 140*890232f2SAndroid Build Coastguard Worker include/flatbuffers/vector.h 141*890232f2SAndroid Build Coastguard Worker include/flatbuffers/vector_downward.h 142*890232f2SAndroid Build Coastguard Worker include/flatbuffers/verifier.h 143*890232f2SAndroid Build Coastguard Worker src/idl_parser.cpp 144*890232f2SAndroid Build Coastguard Worker src/idl_gen_text.cpp 145*890232f2SAndroid Build Coastguard Worker src/reflection.cpp 146*890232f2SAndroid Build Coastguard Worker src/util.cpp 147*890232f2SAndroid Build Coastguard Worker) 148*890232f2SAndroid Build Coastguard Worker 149*890232f2SAndroid Build Coastguard Workerset(FlatBuffers_Compiler_SRCS 150*890232f2SAndroid Build Coastguard Worker ${FlatBuffers_Library_SRCS} 151*890232f2SAndroid Build Coastguard Worker src/idl_gen_cpp.cpp 152*890232f2SAndroid Build Coastguard Worker src/idl_gen_csharp.cpp 153*890232f2SAndroid Build Coastguard Worker src/idl_gen_dart.cpp 154*890232f2SAndroid Build Coastguard Worker src/idl_gen_kotlin.cpp 155*890232f2SAndroid Build Coastguard Worker src/idl_gen_go.cpp 156*890232f2SAndroid Build Coastguard Worker src/idl_gen_java.cpp 157*890232f2SAndroid Build Coastguard Worker src/idl_gen_ts.cpp 158*890232f2SAndroid Build Coastguard Worker src/idl_gen_php.cpp 159*890232f2SAndroid Build Coastguard Worker src/idl_gen_python.cpp 160*890232f2SAndroid Build Coastguard Worker src/idl_gen_lobster.cpp 161*890232f2SAndroid Build Coastguard Worker src/idl_gen_lua.cpp 162*890232f2SAndroid Build Coastguard Worker src/idl_gen_rust.cpp 163*890232f2SAndroid Build Coastguard Worker src/idl_gen_fbs.cpp 164*890232f2SAndroid Build Coastguard Worker src/idl_gen_grpc.cpp 165*890232f2SAndroid Build Coastguard Worker src/idl_gen_json_schema.cpp 166*890232f2SAndroid Build Coastguard Worker src/idl_gen_swift.cpp 167*890232f2SAndroid Build Coastguard Worker src/idl_namer.h 168*890232f2SAndroid Build Coastguard Worker src/namer.h 169*890232f2SAndroid Build Coastguard Worker src/flatc.cpp 170*890232f2SAndroid Build Coastguard Worker src/flatc_main.cpp 171*890232f2SAndroid Build Coastguard Worker src/bfbs_gen.h 172*890232f2SAndroid Build Coastguard Worker src/bfbs_gen_lua.h 173*890232f2SAndroid Build Coastguard Worker src/bfbs_namer.h 174*890232f2SAndroid Build Coastguard Worker include/flatbuffers/code_generators.h 175*890232f2SAndroid Build Coastguard Worker src/binary_annotator.h 176*890232f2SAndroid Build Coastguard Worker src/binary_annotator.cpp 177*890232f2SAndroid Build Coastguard Worker src/annotated_binary_text_gen.h 178*890232f2SAndroid Build Coastguard Worker src/annotated_binary_text_gen.cpp 179*890232f2SAndroid Build Coastguard Worker src/bfbs_gen_lua.cpp 180*890232f2SAndroid Build Coastguard Worker src/code_generators.cpp 181*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/schema_interface.h 182*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/cpp_generator.h 183*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/cpp_generator.cc 184*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/go_generator.h 185*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/go_generator.cc 186*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/java_generator.h 187*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/java_generator.cc 188*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/python_generator.h 189*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/python_generator.cc 190*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/swift_generator.h 191*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/swift_generator.cc 192*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/ts_generator.h 193*890232f2SAndroid Build Coastguard Worker grpc/src/compiler/ts_generator.cc 194*890232f2SAndroid Build Coastguard Worker) 195*890232f2SAndroid Build Coastguard Worker 196*890232f2SAndroid Build Coastguard Workerset(FlatHash_SRCS 197*890232f2SAndroid Build Coastguard Worker include/flatbuffers/hash.h 198*890232f2SAndroid Build Coastguard Worker src/flathash.cpp 199*890232f2SAndroid Build Coastguard Worker) 200*890232f2SAndroid Build Coastguard Worker 201*890232f2SAndroid Build Coastguard Workerset(FlatBuffers_Tests_SRCS 202*890232f2SAndroid Build Coastguard Worker ${FlatBuffers_Library_SRCS} 203*890232f2SAndroid Build Coastguard Worker src/idl_gen_fbs.cpp 204*890232f2SAndroid Build Coastguard Worker tests/test.cpp 205*890232f2SAndroid Build Coastguard Worker tests/test_assert.h 206*890232f2SAndroid Build Coastguard Worker tests/test_assert.cpp 207*890232f2SAndroid Build Coastguard Worker tests/test_builder.h 208*890232f2SAndroid Build Coastguard Worker tests/test_builder.cpp 209*890232f2SAndroid Build Coastguard Worker tests/native_type_test_impl.h 210*890232f2SAndroid Build Coastguard Worker tests/native_type_test_impl.cpp 211*890232f2SAndroid Build Coastguard Worker include/flatbuffers/code_generators.h 212*890232f2SAndroid Build Coastguard Worker src/code_generators.cpp 213*890232f2SAndroid Build Coastguard Worker # file generate by running compiler on tests/monster_test.fbs 214*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h 215*890232f2SAndroid Build Coastguard Worker # file generate by running compiler on namespace_test/namespace_test1.fbs 216*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/namespace_test/namespace_test1_generated.h 217*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/namespace_test/namespace_test2_generated.h 218*890232f2SAndroid Build Coastguard Worker # file generate by running compiler on union_vector/union_vector.fbs 219*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/union_vector/union_vector_generated.h 220*890232f2SAndroid Build Coastguard Worker # file generate by running compiler on tests/arrays_test.fbs 221*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/arrays_test_generated.h 222*890232f2SAndroid Build Coastguard Worker # file generate by running compiler on tests/native_type_test.fbs 223*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/native_type_test_generated.h 224*890232f2SAndroid Build Coastguard Worker # file generate by running compiler on tests/monster_extra.fbs 225*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_extra_generated.h 226*890232f2SAndroid Build Coastguard Worker # file generate by running compiler on tests/monster_test.fbs 227*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_bfbs_generated.h 228*890232f2SAndroid Build Coastguard Worker # file generate by running compiler on tests/optional_scalars.fbs 229*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/optional_scalars_generated.h 230*890232f2SAndroid Build Coastguard Worker) 231*890232f2SAndroid Build Coastguard Worker 232*890232f2SAndroid Build Coastguard Workerset(FlatBuffers_Tests_CPP17_SRCS 233*890232f2SAndroid Build Coastguard Worker ${FlatBuffers_Library_SRCS} 234*890232f2SAndroid Build Coastguard Worker tests/test_assert.h 235*890232f2SAndroid Build Coastguard Worker tests/test_assert.cpp 236*890232f2SAndroid Build Coastguard Worker tests/cpp17/test_cpp17.cpp 237*890232f2SAndroid Build Coastguard Worker # file generate by running compiler on tests/monster_test.fbs 238*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/cpp17/generated_cpp17/monster_test_generated.h 239*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h 240*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/cpp17/generated_cpp17/optional_scalars_generated.h 241*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/optional_scalars_generated.h 242*890232f2SAndroid Build Coastguard Worker) 243*890232f2SAndroid Build Coastguard Worker 244*890232f2SAndroid Build Coastguard Workerset(FlatBuffers_Sample_Binary_SRCS 245*890232f2SAndroid Build Coastguard Worker include/flatbuffers/flatbuffers.h 246*890232f2SAndroid Build Coastguard Worker samples/sample_binary.cpp 247*890232f2SAndroid Build Coastguard Worker # file generated by running compiler on samples/monster.fbs 248*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h 249*890232f2SAndroid Build Coastguard Worker) 250*890232f2SAndroid Build Coastguard Worker 251*890232f2SAndroid Build Coastguard Workerset(FlatBuffers_Sample_Text_SRCS 252*890232f2SAndroid Build Coastguard Worker ${FlatBuffers_Library_SRCS} 253*890232f2SAndroid Build Coastguard Worker samples/sample_text.cpp 254*890232f2SAndroid Build Coastguard Worker # file generated by running compiler on samples/monster.fbs 255*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h 256*890232f2SAndroid Build Coastguard Worker) 257*890232f2SAndroid Build Coastguard Worker 258*890232f2SAndroid Build Coastguard Workerset(FlatBuffers_Sample_BFBS_SRCS 259*890232f2SAndroid Build Coastguard Worker ${FlatBuffers_Library_SRCS} 260*890232f2SAndroid Build Coastguard Worker samples/sample_bfbs.cpp 261*890232f2SAndroid Build Coastguard Worker # file generated by running compiler on samples/monster.fbs 262*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h 263*890232f2SAndroid Build Coastguard Worker) 264*890232f2SAndroid Build Coastguard Worker 265*890232f2SAndroid Build Coastguard Workerset(FlatBuffers_GRPCTest_SRCS 266*890232f2SAndroid Build Coastguard Worker include/flatbuffers/flatbuffers.h 267*890232f2SAndroid Build Coastguard Worker include/flatbuffers/grpc.h 268*890232f2SAndroid Build Coastguard Worker include/flatbuffers/util.h 269*890232f2SAndroid Build Coastguard Worker src/util.cpp 270*890232f2SAndroid Build Coastguard Worker tests/monster_test.grpc.fb.h 271*890232f2SAndroid Build Coastguard Worker tests/test_assert.h 272*890232f2SAndroid Build Coastguard Worker tests/test_builder.h 273*890232f2SAndroid Build Coastguard Worker tests/monster_test.grpc.fb.cc 274*890232f2SAndroid Build Coastguard Worker tests/test_assert.cpp 275*890232f2SAndroid Build Coastguard Worker tests/test_builder.cpp 276*890232f2SAndroid Build Coastguard Worker grpc/tests/grpctest.cpp 277*890232f2SAndroid Build Coastguard Worker grpc/tests/message_builder_test.cpp 278*890232f2SAndroid Build Coastguard Worker # file generate by running compiler on tests/monster_test.fbs 279*890232f2SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h 280*890232f2SAndroid Build Coastguard Worker) 281*890232f2SAndroid Build Coastguard Worker 282*890232f2SAndroid Build Coastguard Worker# TODO(dbaileychess): Figure out how this would now work. I posted a question on 283*890232f2SAndroid Build Coastguard Worker# https://stackoverflow.com/questions/71772330/override-target-compile-options-via-cmake-command-line. 284*890232f2SAndroid Build Coastguard Worker# Append FLATBUFFERS_CXX_FLAGS to CMAKE_CXX_FLAGS. 285*890232f2SAndroid Build Coastguard Workerif(DEFINED FLATBUFFERS_CXX_FLAGS AND NOT EXISTS "${CMAKE_TOOLCHAIN_FILE}") 286*890232f2SAndroid Build Coastguard Worker message(STATUS "extend CXX_FLAGS with ${FLATBUFFERS_CXX_FLAGS}") 287*890232f2SAndroid Build Coastguard Worker set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLATBUFFERS_CXX_FLAGS}") 288*890232f2SAndroid Build Coastguard Workerendif() 289*890232f2SAndroid Build Coastguard Workermessage(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") 290*890232f2SAndroid Build Coastguard Worker 291*890232f2SAndroid Build Coastguard Workerfunction(add_fsanitize_to_target _target _sanitizer) 292*890232f2SAndroid Build Coastguard Worker if(WIN32) 293*890232f2SAndroid Build Coastguard Worker target_compile_definitions(${_target} PRIVATE FLATBUFFERS_MEMORY_LEAK_TRACKING) 294*890232f2SAndroid Build Coastguard Worker message(STATUS "Sanitizer MSVC::_CrtDumpMemoryLeaks added to ${_target}") 295*890232f2SAndroid Build Coastguard Worker else() 296*890232f2SAndroid Build Coastguard Worker # FLATBUFFERS_CODE_SANITIZE: boolean {ON,OFF,YES,NO} or string with list of sanitizer. 297*890232f2SAndroid Build Coastguard Worker # List of sanitizer is string starts with '=': "=address,undefined,thread,memory". 298*890232f2SAndroid Build Coastguard Worker if((${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") OR 299*890232f2SAndroid Build Coastguard Worker ((${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") AND NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9")) 300*890232f2SAndroid Build Coastguard Worker ) 301*890232f2SAndroid Build Coastguard Worker set(_sanitizer_flags "=address,undefined") 302*890232f2SAndroid Build Coastguard Worker if(_sanitizer MATCHES "=.*") 303*890232f2SAndroid Build Coastguard Worker # override default by user-defined sanitizer list 304*890232f2SAndroid Build Coastguard Worker set(_sanitizer_flags ${_sanitizer}) 305*890232f2SAndroid Build Coastguard Worker endif() 306*890232f2SAndroid Build Coastguard Worker target_compile_options(${_target} PRIVATE 307*890232f2SAndroid Build Coastguard Worker -g -fsigned-char -fno-omit-frame-pointer 308*890232f2SAndroid Build Coastguard Worker "-fsanitize${_sanitizer_flags}") 309*890232f2SAndroid Build Coastguard Worker target_link_libraries(${_target} PRIVATE 310*890232f2SAndroid Build Coastguard Worker "-fsanitize${_sanitizer_flags}") 311*890232f2SAndroid Build Coastguard Worker set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ON) 312*890232f2SAndroid Build Coastguard Worker message(STATUS "Sanitizer ${_sanitizer_flags} added to ${_target}") 313*890232f2SAndroid Build Coastguard Worker endif() 314*890232f2SAndroid Build Coastguard Worker endif() 315*890232f2SAndroid Build Coastguard Workerendfunction() 316*890232f2SAndroid Build Coastguard Worker 317*890232f2SAndroid Build Coastguard Workerfunction(add_pch_to_target _target _pch_header) 318*890232f2SAndroid Build Coastguard Worker if(COMMAND target_precompile_headers) 319*890232f2SAndroid Build Coastguard Worker target_precompile_headers(${_target} PRIVATE ${_pch_header}) 320*890232f2SAndroid Build Coastguard Worker if(NOT MSVC) 321*890232f2SAndroid Build Coastguard Worker set_source_files_properties(src/util.cpp PROPERTIES SKIP_PRECOMPILE_HEADERS ON) 322*890232f2SAndroid Build Coastguard Worker endif() 323*890232f2SAndroid Build Coastguard Worker endif() 324*890232f2SAndroid Build Coastguard Workerendfunction() 325*890232f2SAndroid Build Coastguard Worker 326*890232f2SAndroid Build Coastguard Workerinclude_directories(include) 327*890232f2SAndroid Build Coastguard Workerinclude_directories(grpc) 328*890232f2SAndroid Build Coastguard Worker 329*890232f2SAndroid Build Coastguard Worker# Creates an interface library that stores the configuration settings that each 330*890232f2SAndroid Build Coastguard Worker# target links too. This is a compromise between setting configuration globally 331*890232f2SAndroid Build Coastguard Worker# with add_compile_options() and the more targetted target_compile_options(). 332*890232f2SAndroid Build Coastguard Worker# This way each target in this file can share settings and override them if 333*890232f2SAndroid Build Coastguard Worker# needed. 334*890232f2SAndroid Build Coastguard Workeradd_library(ProjectConfig INTERFACE) 335*890232f2SAndroid Build Coastguard Workertarget_compile_features(ProjectConfig 336*890232f2SAndroid Build Coastguard Worker INTERFACE 337*890232f2SAndroid Build Coastguard Worker cxx_std_11 338*890232f2SAndroid Build Coastguard Worker) 339*890232f2SAndroid Build Coastguard Worker 340*890232f2SAndroid Build Coastguard Worker# Force the standard to be met. 341*890232f2SAndroid Build Coastguard Workerset(CMAKE_CXX_STANDARD_REQUIRED ON) 342*890232f2SAndroid Build Coastguard Worker 343*890232f2SAndroid Build Coastguard Worker# We shouldn't rely on any compiler-extensions to make things work. 344*890232f2SAndroid Build Coastguard Workerset(CMAKE_CXX_EXTENSIONS OFF) 345*890232f2SAndroid Build Coastguard Worker 346*890232f2SAndroid Build Coastguard Workerif(MSVC_LIKE) 347*890232f2SAndroid Build Coastguard Worker target_compile_options(ProjectConfig 348*890232f2SAndroid Build Coastguard Worker INTERFACE 349*890232f2SAndroid Build Coastguard Worker /W4 350*890232f2SAndroid Build Coastguard Worker $<$<BOOL:${FLATBUFFERS_STRICT_MODE}>: 351*890232f2SAndroid Build Coastguard Worker /WX # Treat all compiler warnings as errors 352*890232f2SAndroid Build Coastguard Worker > 353*890232f2SAndroid Build Coastguard Worker /wd4512 # C4512: assignment operator could not be generated 354*890232f2SAndroid Build Coastguard Worker /wd4316 # C4316: object allocated on the heap may not be aligned 355*890232f2SAndroid Build Coastguard Worker /wd4456 # C4456: hides previous local declaration 356*890232f2SAndroid Build Coastguard Worker $<$<CXX_COMPILER_ID:Clang>: 357*890232f2SAndroid Build Coastguard Worker /D_CRT_SECURE_NO_WARNINGS 358*890232f2SAndroid Build Coastguard Worker > 359*890232f2SAndroid Build Coastguard Worker ) 360*890232f2SAndroid Build Coastguard Workerelse() 361*890232f2SAndroid Build Coastguard Worker target_compile_options(ProjectConfig 362*890232f2SAndroid Build Coastguard Worker INTERFACE 363*890232f2SAndroid Build Coastguard Worker -Wall 364*890232f2SAndroid Build Coastguard Worker -Wno-unknown-warning-option 365*890232f2SAndroid Build Coastguard Worker $<$<BOOL:${FLATBUFFERS_STRICT_MODE}>: 366*890232f2SAndroid Build Coastguard Worker -Werror # Treat all compiler warnings as errors 367*890232f2SAndroid Build Coastguard Worker 368*890232f2SAndroid Build Coastguard Worker # False positive string overflow 369*890232f2SAndroid Build Coastguard Worker # https://github.com/google/flatbuffers/issues/7366 370*890232f2SAndroid Build Coastguard Worker -Wno-error=stringop-overflow 371*890232f2SAndroid Build Coastguard Worker > 372*890232f2SAndroid Build Coastguard Worker -pedantic 373*890232f2SAndroid Build Coastguard Worker -Wextra 374*890232f2SAndroid Build Coastguard Worker -Wno-unused-parameter 375*890232f2SAndroid Build Coastguard Worker -Wold-style-cast 376*890232f2SAndroid Build Coastguard Worker -Wimplicit-fallthrough 377*890232f2SAndroid Build Coastguard Worker -fsigned-char 378*890232f2SAndroid Build Coastguard Worker -Wnon-virtual-dtor 379*890232f2SAndroid Build Coastguard Worker 380*890232f2SAndroid Build Coastguard Worker $<$<CXX_COMPILER_ID:CLANG>: 381*890232f2SAndroid Build Coastguard Worker -Wmissing-declarations 382*890232f2SAndroid Build Coastguard Worker -Wzero-as-null-pointer-constant 383*890232f2SAndroid Build Coastguard Worker $<$<VERSION_GREATER:$<CXX_COMPILER_VERSION>,3.8>: 384*890232f2SAndroid Build Coastguard Worker -Wimplicit-fallthrough 385*890232f2SAndroid Build Coastguard Worker -Wextra-semi 386*890232f2SAndroid Build Coastguard Worker $<$<BOOL:${FLATBUFFERS_STRICT_MODE}>: 387*890232f2SAndroid Build Coastguard Worker -Werror=unused-private-field 388*890232f2SAndroid Build Coastguard Worker > 389*890232f2SAndroid Build Coastguard Worker > 390*890232f2SAndroid Build Coastguard Worker > 391*890232f2SAndroid Build Coastguard Worker 392*890232f2SAndroid Build Coastguard Worker $<$<CXX_COMPILER_ID:GNU>: 393*890232f2SAndroid Build Coastguard Worker $<$<VERSION_GREATER:$<CXX_COMPILER_VERSION>,4.4>: 394*890232f2SAndroid Build Coastguard Worker -Wunused-result 395*890232f2SAndroid Build Coastguard Worker -Wunused-parameter 396*890232f2SAndroid Build Coastguard Worker -Werror=unused-parameter 397*890232f2SAndroid Build Coastguard Worker -Wmissing-declarations 398*890232f2SAndroid Build Coastguard Worker > 399*890232f2SAndroid Build Coastguard Worker $<$<VERSION_GREATER:$<CXX_COMPILER_VERSION>,4.7>: 400*890232f2SAndroid Build Coastguard Worker -Wzero-as-null-pointer-constant 401*890232f2SAndroid Build Coastguard Worker > 402*890232f2SAndroid Build Coastguard Worker $<$<VERSION_GREATER:$<CXX_COMPILER_VERSION>,7.0>: 403*890232f2SAndroid Build Coastguard Worker -faligned-new 404*890232f2SAndroid Build Coastguard Worker $<$<BOOL:${FLATBUFFERS_STRICT_MODE}>: 405*890232f2SAndroid Build Coastguard Worker -Werror=implicit-fallthrough=2 406*890232f2SAndroid Build Coastguard Worker > 407*890232f2SAndroid Build Coastguard Worker > 408*890232f2SAndroid Build Coastguard Worker $<$<VERSION_GREATER:$<CXX_COMPILER_VERSION>,8.0>: 409*890232f2SAndroid Build Coastguard Worker -Wextra-semi 410*890232f2SAndroid Build Coastguard Worker > 411*890232f2SAndroid Build Coastguard Worker > 412*890232f2SAndroid Build Coastguard Worker 413*890232f2SAndroid Build Coastguard Worker $<$<BOOL:${FLATBUFFERS_CODE_COVERAGE}>: 414*890232f2SAndroid Build Coastguard Worker -g 415*890232f2SAndroid Build Coastguard Worker -fprofile-arcs 416*890232f2SAndroid Build Coastguard Worker -ftest-coverage 417*890232f2SAndroid Build Coastguard Worker > 418*890232f2SAndroid Build Coastguard Worker ) 419*890232f2SAndroid Build Coastguard Worker 420*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_CODE_COVERAGE) 421*890232f2SAndroid Build Coastguard Worker target_link_options(ProjectConfig 422*890232f2SAndroid Build Coastguard Worker INTERFACE 423*890232f2SAndroid Build Coastguard Worker -fprofile-arcs 424*890232f2SAndroid Build Coastguard Worker -ftest-coverage 425*890232f2SAndroid Build Coastguard Worker ) 426*890232f2SAndroid Build Coastguard Worker endif() 427*890232f2SAndroid Build Coastguard Workerendif() 428*890232f2SAndroid Build Coastguard Worker 429*890232f2SAndroid Build Coastguard Workerif(FLATBUFFERS_BUILD_FLATLIB) 430*890232f2SAndroid Build Coastguard Worker add_library(flatbuffers STATIC ${FlatBuffers_Library_SRCS}) 431*890232f2SAndroid Build Coastguard Worker 432*890232f2SAndroid Build Coastguard Worker # Attach header directory for when build via add_subdirectory(). 433*890232f2SAndroid Build Coastguard Worker target_include_directories(flatbuffers 434*890232f2SAndroid Build Coastguard Worker INTERFACE 435*890232f2SAndroid Build Coastguard Worker $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> 436*890232f2SAndroid Build Coastguard Worker ) 437*890232f2SAndroid Build Coastguard Worker target_link_libraries(flatbuffers PRIVATE $<BUILD_INTERFACE:ProjectConfig>) 438*890232f2SAndroid Build Coastguard Worker 439*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_ENABLE_PCH) 440*890232f2SAndroid Build Coastguard Worker add_pch_to_target(flatbuffers include/flatbuffers/pch/pch.h) 441*890232f2SAndroid Build Coastguard Worker endif() 442*890232f2SAndroid Build Coastguard Workerendif() 443*890232f2SAndroid Build Coastguard Worker 444*890232f2SAndroid Build Coastguard Workerif(FLATBUFFERS_BUILD_FLATC) 445*890232f2SAndroid Build Coastguard Worker add_executable(flatc ${FlatBuffers_Compiler_SRCS}) 446*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_ENABLE_PCH) 447*890232f2SAndroid Build Coastguard Worker add_pch_to_target(flatc include/flatbuffers/pch/flatc_pch.h) 448*890232f2SAndroid Build Coastguard Worker endif() 449*890232f2SAndroid Build Coastguard Worker 450*890232f2SAndroid Build Coastguard Worker target_link_libraries(flatc PRIVATE $<BUILD_INTERFACE:ProjectConfig>) 451*890232f2SAndroid Build Coastguard Worker target_compile_options(flatc 452*890232f2SAndroid Build Coastguard Worker PUBLIC 453*890232f2SAndroid Build Coastguard Worker $<$<AND:$<BOOL:${MSVC_LIKE}>,$<CONFIG:Release>>: 454*890232f2SAndroid Build Coastguard Worker /MT 455*890232f2SAndroid Build Coastguard Worker > 456*890232f2SAndroid Build Coastguard Worker ) 457*890232f2SAndroid Build Coastguard Worker 458*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_CODE_SANITIZE AND NOT WIN32) 459*890232f2SAndroid Build Coastguard Worker add_fsanitize_to_target(flatc ${FLATBUFFERS_CODE_SANITIZE}) 460*890232f2SAndroid Build Coastguard Worker endif() 461*890232f2SAndroid Build Coastguard Worker if(NOT FLATBUFFERS_FLATC_EXECUTABLE) 462*890232f2SAndroid Build Coastguard Worker set(FLATBUFFERS_FLATC_EXECUTABLE $<TARGET_FILE:flatc>) 463*890232f2SAndroid Build Coastguard Worker endif() 464*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_STATIC_FLATC AND NOT MSVC) 465*890232f2SAndroid Build Coastguard Worker target_link_libraries(flatc PRIVATE -static) 466*890232f2SAndroid Build Coastguard Worker endif() 467*890232f2SAndroid Build Coastguard Workerendif() 468*890232f2SAndroid Build Coastguard Worker 469*890232f2SAndroid Build Coastguard Workerif(FLATBUFFERS_BUILD_FLATHASH) 470*890232f2SAndroid Build Coastguard Worker add_executable(flathash ${FlatHash_SRCS}) 471*890232f2SAndroid Build Coastguard Worker target_link_libraries(flathash PRIVATE $<BUILD_INTERFACE:ProjectConfig>) 472*890232f2SAndroid Build Coastguard Workerendif() 473*890232f2SAndroid Build Coastguard Worker 474*890232f2SAndroid Build Coastguard Workerif(FLATBUFFERS_BUILD_SHAREDLIB) 475*890232f2SAndroid Build Coastguard Worker add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS}) 476*890232f2SAndroid Build Coastguard Worker target_link_libraries(flatbuffers_shared PRIVATE $<BUILD_INTERFACE:ProjectConfig>) 477*890232f2SAndroid Build Coastguard Worker # Shared object version: "major.minor.micro" 478*890232f2SAndroid Build Coastguard Worker # - micro updated every release when there is no API/ABI changes 479*890232f2SAndroid Build Coastguard Worker # - minor updated when there are additions in API/ABI 480*890232f2SAndroid Build Coastguard Worker # - major (ABI number) updated when there are changes in ABI (or removals) 481*890232f2SAndroid Build Coastguard Worker set(FlatBuffers_Library_SONAME_MAJOR ${VERSION_MAJOR}) 482*890232f2SAndroid Build Coastguard Worker set(FlatBuffers_Library_SONAME_FULL "${FlatBuffers_Library_SONAME_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") 483*890232f2SAndroid Build Coastguard Worker set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers 484*890232f2SAndroid Build Coastguard Worker SOVERSION "${FlatBuffers_Library_SONAME_MAJOR}" 485*890232f2SAndroid Build Coastguard Worker VERSION "${FlatBuffers_Library_SONAME_FULL}") 486*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_ENABLE_PCH) 487*890232f2SAndroid Build Coastguard Worker add_pch_to_target(flatbuffers_shared include/flatbuffers/pch/pch.h) 488*890232f2SAndroid Build Coastguard Worker endif() 489*890232f2SAndroid Build Coastguard Workerendif() 490*890232f2SAndroid Build Coastguard Worker 491*890232f2SAndroid Build Coastguard Worker# Global list of generated files. 492*890232f2SAndroid Build Coastguard Worker# Use the global property to be independent of PARENT_SCOPE. 493*890232f2SAndroid Build Coastguard Workerset_property(GLOBAL PROPERTY FBS_GENERATED_OUTPUTS) 494*890232f2SAndroid Build Coastguard Worker 495*890232f2SAndroid Build Coastguard Workerfunction(get_generated_output generated_files) 496*890232f2SAndroid Build Coastguard Worker get_property(tmp GLOBAL PROPERTY FBS_GENERATED_OUTPUTS) 497*890232f2SAndroid Build Coastguard Worker set(${generated_files} ${tmp} PARENT_SCOPE) 498*890232f2SAndroid Build Coastguard Workerendfunction(get_generated_output) 499*890232f2SAndroid Build Coastguard Worker 500*890232f2SAndroid Build Coastguard Workerfunction(register_generated_output file_name) 501*890232f2SAndroid Build Coastguard Worker get_property(tmp GLOBAL PROPERTY FBS_GENERATED_OUTPUTS) 502*890232f2SAndroid Build Coastguard Worker list(APPEND tmp ${file_name}) 503*890232f2SAndroid Build Coastguard Worker set_property(GLOBAL PROPERTY FBS_GENERATED_OUTPUTS ${tmp}) 504*890232f2SAndroid Build Coastguard Workerendfunction(register_generated_output) 505*890232f2SAndroid Build Coastguard Worker 506*890232f2SAndroid Build Coastguard Workerfunction(compile_flatbuffers_schema_to_cpp_opt SRC_FBS OPT) 507*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_BUILD_LEGACY) 508*890232f2SAndroid Build Coastguard Worker set(OPT ${OPT};--cpp-std c++0x) 509*890232f2SAndroid Build Coastguard Worker else() 510*890232f2SAndroid Build Coastguard Worker # --cpp-std is defined by flatc default settings. 511*890232f2SAndroid Build Coastguard Worker endif() 512*890232f2SAndroid Build Coastguard Worker message(STATUS "`${SRC_FBS}`: add generation of C++ code with '${OPT}'") 513*890232f2SAndroid Build Coastguard Worker get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH) 514*890232f2SAndroid Build Coastguard Worker string(REGEX REPLACE "\\.fbs$" "_generated.h" GEN_HEADER ${SRC_FBS}) 515*890232f2SAndroid Build Coastguard Worker add_custom_command( 516*890232f2SAndroid Build Coastguard Worker OUTPUT ${GEN_HEADER} 517*890232f2SAndroid Build Coastguard Worker COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" 518*890232f2SAndroid Build Coastguard Worker --cpp --gen-mutable --gen-object-api --reflect-names 519*890232f2SAndroid Build Coastguard Worker --cpp-ptr-type flatbuffers::unique_ptr # Used to test with C++98 STLs 520*890232f2SAndroid Build Coastguard Worker ${OPT} 521*890232f2SAndroid Build Coastguard Worker -I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test" 522*890232f2SAndroid Build Coastguard Worker -o "${SRC_FBS_DIR}" 523*890232f2SAndroid Build Coastguard Worker "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" 524*890232f2SAndroid Build Coastguard Worker DEPENDS flatc 525*890232f2SAndroid Build Coastguard Worker COMMENT "Run generation: '${GEN_HEADER}'") 526*890232f2SAndroid Build Coastguard Worker register_generated_output(${GEN_HEADER}) 527*890232f2SAndroid Build Coastguard Workerendfunction() 528*890232f2SAndroid Build Coastguard Worker 529*890232f2SAndroid Build Coastguard Workerfunction(compile_flatbuffers_schema_to_cpp SRC_FBS) 530*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_cpp_opt(${SRC_FBS} "--no-includes;--gen-compare") 531*890232f2SAndroid Build Coastguard Workerendfunction() 532*890232f2SAndroid Build Coastguard Worker 533*890232f2SAndroid Build Coastguard Workerfunction(compile_flatbuffers_schema_to_binary SRC_FBS) 534*890232f2SAndroid Build Coastguard Worker message(STATUS "`${SRC_FBS}`: add generation of binary (.bfbs) schema") 535*890232f2SAndroid Build Coastguard Worker get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH) 536*890232f2SAndroid Build Coastguard Worker string(REGEX REPLACE "\\.fbs$" ".bfbs" GEN_BINARY_SCHEMA ${SRC_FBS}) 537*890232f2SAndroid Build Coastguard Worker # For details about flags see generate_code.py 538*890232f2SAndroid Build Coastguard Worker add_custom_command( 539*890232f2SAndroid Build Coastguard Worker OUTPUT ${GEN_BINARY_SCHEMA} 540*890232f2SAndroid Build Coastguard Worker COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" 541*890232f2SAndroid Build Coastguard Worker -b --schema --bfbs-comments --bfbs-builtins 542*890232f2SAndroid Build Coastguard Worker --bfbs-filenames ${SRC_FBS_DIR} 543*890232f2SAndroid Build Coastguard Worker -I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test" 544*890232f2SAndroid Build Coastguard Worker -o "${SRC_FBS_DIR}" 545*890232f2SAndroid Build Coastguard Worker "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" 546*890232f2SAndroid Build Coastguard Worker DEPENDS flatc 547*890232f2SAndroid Build Coastguard Worker COMMENT "Run generation: '${GEN_BINARY_SCHEMA}'") 548*890232f2SAndroid Build Coastguard Worker register_generated_output(${GEN_BINARY_SCHEMA}) 549*890232f2SAndroid Build Coastguard Workerendfunction() 550*890232f2SAndroid Build Coastguard Worker 551*890232f2SAndroid Build Coastguard Workerfunction(compile_flatbuffers_schema_to_embedded_binary SRC_FBS OPT) 552*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_BUILD_LEGACY) 553*890232f2SAndroid Build Coastguard Worker set(OPT ${OPT};--cpp-std c++0x) 554*890232f2SAndroid Build Coastguard Worker else() 555*890232f2SAndroid Build Coastguard Worker # --cpp-std is defined by flatc default settings. 556*890232f2SAndroid Build Coastguard Worker endif() 557*890232f2SAndroid Build Coastguard Worker message(STATUS "`${SRC_FBS}`: add generation of C++ embedded binary schema code with '${OPT}'") 558*890232f2SAndroid Build Coastguard Worker get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH) 559*890232f2SAndroid Build Coastguard Worker string(REGEX REPLACE "\\.fbs$" "_bfbs_generated.h" GEN_BFBS_HEADER ${SRC_FBS}) 560*890232f2SAndroid Build Coastguard Worker # For details about flags see generate_code.py 561*890232f2SAndroid Build Coastguard Worker add_custom_command( 562*890232f2SAndroid Build Coastguard Worker OUTPUT ${GEN_BFBS_HEADER} 563*890232f2SAndroid Build Coastguard Worker COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" 564*890232f2SAndroid Build Coastguard Worker --cpp --gen-mutable --gen-object-api --reflect-names 565*890232f2SAndroid Build Coastguard Worker --cpp-ptr-type flatbuffers::unique_ptr # Used to test with C++98 STLs 566*890232f2SAndroid Build Coastguard Worker ${OPT} 567*890232f2SAndroid Build Coastguard Worker --bfbs-comments --bfbs-builtins --bfbs-gen-embed 568*890232f2SAndroid Build Coastguard Worker --bfbs-filenames ${SRC_FBS_DIR} 569*890232f2SAndroid Build Coastguard Worker -I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test" 570*890232f2SAndroid Build Coastguard Worker -o "${SRC_FBS_DIR}" 571*890232f2SAndroid Build Coastguard Worker "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" 572*890232f2SAndroid Build Coastguard Worker DEPENDS flatc 573*890232f2SAndroid Build Coastguard Worker COMMENT "Run generation: '${GEN_BFBS_HEADER}'") 574*890232f2SAndroid Build Coastguard Worker register_generated_output(${GEN_BFBS_HEADER}) 575*890232f2SAndroid Build Coastguard Workerendfunction() 576*890232f2SAndroid Build Coastguard Worker 577*890232f2SAndroid Build Coastguard Workerif(FLATBUFFERS_BUILD_TESTS) 578*890232f2SAndroid Build Coastguard Worker file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/tests" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") 579*890232f2SAndroid Build Coastguard Worker file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/samples" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") 580*890232f2SAndroid Build Coastguard Worker 581*890232f2SAndroid Build Coastguard Worker # TODO Add (monster_test.fbs monsterdata_test.json)->monsterdata_test.mon 582*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_cpp(tests/monster_test.fbs) 583*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_binary(tests/monster_test.fbs) 584*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test1.fbs "--no-includes;--gen-compare;--gen-name-strings") 585*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test2.fbs "--no-includes;--gen-compare;--gen-name-strings") 586*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_cpp_opt(tests/union_vector/union_vector.fbs "--no-includes;--gen-compare;--gen-name-strings") 587*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_cpp(tests/optional_scalars.fbs) 588*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_cpp_opt(tests/native_type_test.fbs "") 589*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_cpp_opt(tests/arrays_test.fbs "--scoped-enums;--gen-compare") 590*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_binary(tests/arrays_test.fbs) 591*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_embedded_binary(tests/monster_test.fbs "--no-includes;--gen-compare") 592*890232f2SAndroid Build Coastguard Worker if(NOT (MSVC AND (MSVC_VERSION LESS 1900))) 593*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_cpp(tests/monster_extra.fbs) # Test floating-point NAN/INF. 594*890232f2SAndroid Build Coastguard Worker endif() 595*890232f2SAndroid Build Coastguard Worker include_directories(${CMAKE_CURRENT_BINARY_DIR}/tests) 596*890232f2SAndroid Build Coastguard Worker add_executable(flattests ${FlatBuffers_Tests_SRCS}) 597*890232f2SAndroid Build Coastguard Worker target_link_libraries(flattests PRIVATE $<BUILD_INTERFACE:ProjectConfig>) 598*890232f2SAndroid Build Coastguard Worker 599*890232f2SAndroid Build Coastguard Worker add_dependencies(flattests generated_code) 600*890232f2SAndroid Build Coastguard Worker 601*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_CODE_SANITIZE) 602*890232f2SAndroid Build Coastguard Worker add_fsanitize_to_target(flattests ${FLATBUFFERS_CODE_SANITIZE}) 603*890232f2SAndroid Build Coastguard Worker endif() 604*890232f2SAndroid Build Coastguard Worker 605*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_cpp(samples/monster.fbs) 606*890232f2SAndroid Build Coastguard Worker compile_flatbuffers_schema_to_binary(samples/monster.fbs) 607*890232f2SAndroid Build Coastguard Worker include_directories(${CMAKE_CURRENT_BINARY_DIR}/samples) 608*890232f2SAndroid Build Coastguard Worker 609*890232f2SAndroid Build Coastguard Worker add_executable(flatsamplebinary ${FlatBuffers_Sample_Binary_SRCS}) 610*890232f2SAndroid Build Coastguard Worker target_link_libraries(flatsamplebinary PRIVATE $<BUILD_INTERFACE:ProjectConfig>) 611*890232f2SAndroid Build Coastguard Worker add_dependencies(flatsamplebinary generated_code) 612*890232f2SAndroid Build Coastguard Worker 613*890232f2SAndroid Build Coastguard Worker add_executable(flatsampletext ${FlatBuffers_Sample_Text_SRCS}) 614*890232f2SAndroid Build Coastguard Worker target_link_libraries(flatsampletext PRIVATE $<BUILD_INTERFACE:ProjectConfig>) 615*890232f2SAndroid Build Coastguard Worker add_dependencies(flatsampletext generated_code) 616*890232f2SAndroid Build Coastguard Worker 617*890232f2SAndroid Build Coastguard Worker add_executable(flatsamplebfbs ${FlatBuffers_Sample_BFBS_SRCS}) 618*890232f2SAndroid Build Coastguard Worker target_link_libraries(flatsamplebfbs PRIVATE $<BUILD_INTERFACE:ProjectConfig>) 619*890232f2SAndroid Build Coastguard Worker add_dependencies(flatsamplebfbs generated_code) 620*890232f2SAndroid Build Coastguard Worker 621*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_BUILD_CPP17) 622*890232f2SAndroid Build Coastguard Worker # Don't generate header for flattests_cpp17 target. 623*890232f2SAndroid Build Coastguard Worker # This target uses "generated_cpp17/monster_test_generated.h" 624*890232f2SAndroid Build Coastguard Worker add_executable(flattests_cpp17 ${FlatBuffers_Tests_CPP17_SRCS}) 625*890232f2SAndroid Build Coastguard Worker add_dependencies(flattests_cpp17 generated_code) 626*890232f2SAndroid Build Coastguard Worker target_link_libraries(flattests_cpp17 PRIVATE $<BUILD_INTERFACE:ProjectConfig>) 627*890232f2SAndroid Build Coastguard Worker target_compile_features(flattests_cpp17 PRIVATE cxx_std_17) 628*890232f2SAndroid Build Coastguard Worker 629*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_CODE_SANITIZE) 630*890232f2SAndroid Build Coastguard Worker add_fsanitize_to_target(flattests_cpp17 ${FLATBUFFERS_CODE_SANITIZE}) 631*890232f2SAndroid Build Coastguard Worker endif() 632*890232f2SAndroid Build Coastguard Worker endif(FLATBUFFERS_BUILD_CPP17) 633*890232f2SAndroid Build Coastguard Workerendif() 634*890232f2SAndroid Build Coastguard Worker 635*890232f2SAndroid Build Coastguard Workerif(FLATBUFFERS_BUILD_GRPCTEST) 636*890232f2SAndroid Build Coastguard Worker if(NOT GRPC_INSTALL_PATH) 637*890232f2SAndroid Build Coastguard Worker message(SEND_ERROR "GRPC_INSTALL_PATH variable is not defined. See grpc/README.md") 638*890232f2SAndroid Build Coastguard Worker endif() 639*890232f2SAndroid Build Coastguard Worker if(NOT PROTOBUF_DOWNLOAD_PATH) 640*890232f2SAndroid Build Coastguard Worker message(SEND_ERROR "PROTOBUF_DOWNLOAD_PATH variable is not defined. See grpc/README.md") 641*890232f2SAndroid Build Coastguard Worker endif() 642*890232f2SAndroid Build Coastguard Worker INCLUDE_DIRECTORIES(${GRPC_INSTALL_PATH}/include) 643*890232f2SAndroid Build Coastguard Worker INCLUDE_DIRECTORIES(${PROTOBUF_DOWNLOAD_PATH}/src) 644*890232f2SAndroid Build Coastguard Worker find_package(Threads REQUIRED) 645*890232f2SAndroid Build Coastguard Worker list(APPEND CMAKE_PREFIX_PATH ${GRPC_INSTALL_PATH}) 646*890232f2SAndroid Build Coastguard Worker find_package(absl CONFIG REQUIRED) 647*890232f2SAndroid Build Coastguard Worker find_package(protobuf CONFIG REQUIRED) 648*890232f2SAndroid Build Coastguard Worker find_package(gRPC CONFIG REQUIRED) 649*890232f2SAndroid Build Coastguard Worker add_executable(grpctest ${FlatBuffers_GRPCTest_SRCS}) 650*890232f2SAndroid Build Coastguard Worker add_dependencies(grpctest generated_code) 651*890232f2SAndroid Build Coastguard Worker target_link_libraries(grpctext 652*890232f2SAndroid Build Coastguard Worker PRIVATE 653*890232f2SAndroid Build Coastguard Worker $<BUILD_INTERFACE:ProjectConfig> 654*890232f2SAndroid Build Coastguard Worker gRPC::grpc++_unsecure 655*890232f2SAndroid Build Coastguard Worker gRPC::gpr 656*890232f2SAndroid Build Coastguard Worker pthread 657*890232f2SAndroid Build Coastguard Worker dl 658*890232f2SAndroid Build Coastguard Worker ) 659*890232f2SAndroid Build Coastguard Workerendif() 660*890232f2SAndroid Build Coastguard Worker 661*890232f2SAndroid Build Coastguard Workerif(FLATBUFFERS_INSTALL) 662*890232f2SAndroid Build Coastguard Worker include(GNUInstallDirs) 663*890232f2SAndroid Build Coastguard Worker 664*890232f2SAndroid Build Coastguard Worker install(DIRECTORY include/flatbuffers DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) 665*890232f2SAndroid Build Coastguard Worker 666*890232f2SAndroid Build Coastguard Worker set(FB_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/flatbuffers") 667*890232f2SAndroid Build Coastguard Worker 668*890232f2SAndroid Build Coastguard Worker configure_file(CMake/FlatBuffersConfigVersion.cmake.in FlatBuffersConfigVersion.cmake @ONLY) 669*890232f2SAndroid Build Coastguard Worker install( 670*890232f2SAndroid Build Coastguard Worker FILES "CMake/FlatBuffersConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/FlatBuffersConfigVersion.cmake" 671*890232f2SAndroid Build Coastguard Worker DESTINATION ${FB_CMAKE_DIR} 672*890232f2SAndroid Build Coastguard Worker ) 673*890232f2SAndroid Build Coastguard Worker 674*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_BUILD_FLATLIB) 675*890232f2SAndroid Build Coastguard Worker install( 676*890232f2SAndroid Build Coastguard Worker TARGETS flatbuffers EXPORT FlatBuffersTargets 677*890232f2SAndroid Build Coastguard Worker ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 678*890232f2SAndroid Build Coastguard Worker INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} 679*890232f2SAndroid Build Coastguard Worker ) 680*890232f2SAndroid Build Coastguard Worker 681*890232f2SAndroid Build Coastguard Worker install(EXPORT FlatBuffersTargets 682*890232f2SAndroid Build Coastguard Worker FILE FlatBuffersTargets.cmake 683*890232f2SAndroid Build Coastguard Worker NAMESPACE flatbuffers:: 684*890232f2SAndroid Build Coastguard Worker DESTINATION ${FB_CMAKE_DIR} 685*890232f2SAndroid Build Coastguard Worker ) 686*890232f2SAndroid Build Coastguard Worker endif() 687*890232f2SAndroid Build Coastguard Worker 688*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_BUILD_FLATC) 689*890232f2SAndroid Build Coastguard Worker install( 690*890232f2SAndroid Build Coastguard Worker TARGETS flatc EXPORT FlatcTargets 691*890232f2SAndroid Build Coastguard Worker RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 692*890232f2SAndroid Build Coastguard Worker ) 693*890232f2SAndroid Build Coastguard Worker 694*890232f2SAndroid Build Coastguard Worker install( 695*890232f2SAndroid Build Coastguard Worker EXPORT FlatcTargets 696*890232f2SAndroid Build Coastguard Worker FILE FlatcTargets.cmake 697*890232f2SAndroid Build Coastguard Worker NAMESPACE flatbuffers:: 698*890232f2SAndroid Build Coastguard Worker DESTINATION ${FB_CMAKE_DIR} 699*890232f2SAndroid Build Coastguard Worker ) 700*890232f2SAndroid Build Coastguard Worker endif() 701*890232f2SAndroid Build Coastguard Worker 702*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_BUILD_SHAREDLIB) 703*890232f2SAndroid Build Coastguard Worker install( 704*890232f2SAndroid Build Coastguard Worker TARGETS flatbuffers_shared EXPORT FlatBuffersSharedTargets 705*890232f2SAndroid Build Coastguard Worker ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 706*890232f2SAndroid Build Coastguard Worker RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} 707*890232f2SAndroid Build Coastguard Worker LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 708*890232f2SAndroid Build Coastguard Worker INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} 709*890232f2SAndroid Build Coastguard Worker ) 710*890232f2SAndroid Build Coastguard Worker 711*890232f2SAndroid Build Coastguard Worker install( 712*890232f2SAndroid Build Coastguard Worker EXPORT FlatBuffersSharedTargets 713*890232f2SAndroid Build Coastguard Worker FILE FlatBuffersSharedTargets.cmake 714*890232f2SAndroid Build Coastguard Worker NAMESPACE flatbuffers:: 715*890232f2SAndroid Build Coastguard Worker DESTINATION ${FB_CMAKE_DIR} 716*890232f2SAndroid Build Coastguard Worker ) 717*890232f2SAndroid Build Coastguard Worker endif() 718*890232f2SAndroid Build Coastguard Worker 719*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_BUILD_SHAREDLIB OR FLATBUFFERS_BUILD_FLATLIB) 720*890232f2SAndroid Build Coastguard Worker configure_file(CMake/flatbuffers.pc.in flatbuffers.pc @ONLY) 721*890232f2SAndroid Build Coastguard Worker install( 722*890232f2SAndroid Build Coastguard Worker FILES "${CMAKE_CURRENT_BINARY_DIR}/flatbuffers.pc" 723*890232f2SAndroid Build Coastguard Worker DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig 724*890232f2SAndroid Build Coastguard Worker ) 725*890232f2SAndroid Build Coastguard Worker endif() 726*890232f2SAndroid Build Coastguard Workerendif() 727*890232f2SAndroid Build Coastguard Worker 728*890232f2SAndroid Build Coastguard Workerif(FLATBUFFERS_BUILD_TESTS) 729*890232f2SAndroid Build Coastguard Worker enable_testing() 730*890232f2SAndroid Build Coastguard Worker 731*890232f2SAndroid Build Coastguard Worker add_test(NAME flattests COMMAND flattests) 732*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_BUILD_CPP17) 733*890232f2SAndroid Build Coastguard Worker add_test(NAME flattests_cpp17 COMMAND flattests_cpp17) 734*890232f2SAndroid Build Coastguard Worker endif() 735*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_BUILD_GRPCTEST) 736*890232f2SAndroid Build Coastguard Worker add_test(NAME grpctest COMMAND grpctest) 737*890232f2SAndroid Build Coastguard Worker endif() 738*890232f2SAndroid Build Coastguard Workerendif() 739*890232f2SAndroid Build Coastguard Worker 740*890232f2SAndroid Build Coastguard Worker# This target is sync-barrier. 741*890232f2SAndroid Build Coastguard Worker# Other generate-dependent targets can depend on 'generated_code' only. 742*890232f2SAndroid Build Coastguard Workerget_generated_output(fbs_generated) 743*890232f2SAndroid Build Coastguard Workerif(fbs_generated) 744*890232f2SAndroid Build Coastguard Worker # message(STATUS "Add generated_code target with files:${fbs_generated}") 745*890232f2SAndroid Build Coastguard Worker add_custom_target(generated_code 746*890232f2SAndroid Build Coastguard Worker DEPENDS ${fbs_generated} 747*890232f2SAndroid Build Coastguard Worker COMMENT "All generated files were updated.") 748*890232f2SAndroid Build Coastguard Workerendif() 749*890232f2SAndroid Build Coastguard Worker 750*890232f2SAndroid Build Coastguard Workerinclude(CMake/BuildFlatBuffers.cmake) 751*890232f2SAndroid Build Coastguard Worker 752*890232f2SAndroid Build Coastguard Workerif(UNIX) 753*890232f2SAndroid Build Coastguard Worker # Use of CPack only supported on Linux systems. 754*890232f2SAndroid Build Coastguard Worker if(FLATBUFFERS_PACKAGE_DEBIAN) 755*890232f2SAndroid Build Coastguard Worker include(CMake/PackageDebian.cmake) 756*890232f2SAndroid Build Coastguard Worker include(CPack) 757*890232f2SAndroid Build Coastguard Worker endif() 758*890232f2SAndroid Build Coastguard Worker if (FLATBUFFERS_PACKAGE_REDHAT) 759*890232f2SAndroid Build Coastguard Worker include(CMake/PackageRedhat.cmake) 760*890232f2SAndroid Build Coastguard Worker include(CPack) 761*890232f2SAndroid Build Coastguard Worker endif() 762*890232f2SAndroid Build Coastguard Workerendif() 763*890232f2SAndroid Build Coastguard Worker 764*890232f2SAndroid Build Coastguard Worker# Include for running Google Benchmarks. 765*890232f2SAndroid Build Coastguard Workerif(FLATBUFFERS_BUILD_BENCHMARKS) 766*890232f2SAndroid Build Coastguard Worker add_subdirectory(benchmarks) 767*890232f2SAndroid Build Coastguard Workerendif() 768*890232f2SAndroid Build Coastguard Worker 769*890232f2SAndroid Build Coastguard Worker# Add FlatBuffers::FlatBuffers interface, needed for FetchContent_Declare 770*890232f2SAndroid Build Coastguard Workeradd_library(FlatBuffers INTERFACE) 771*890232f2SAndroid Build Coastguard Workeradd_library(FlatBuffers::FlatBuffers ALIAS FlatBuffers) 772*890232f2SAndroid Build Coastguard Workertarget_include_directories( 773*890232f2SAndroid Build Coastguard Worker FlatBuffers 774*890232f2SAndroid Build Coastguard Worker INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> 775*890232f2SAndroid Build Coastguard Worker $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/include>) 776