| # Copyright 2020 The IREE Authors |
| # |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| set(FLATCC_ROOT "${IREE_ROOT_DIR}/third_party/flatcc/") |
| |
| # We don't install any headers because their only use is in built code |
| # (not public). |
| set(IREE_HDRS_ROOT_PATH OFF) |
| # Considered part of the runtime. See runtime/src/CMakeLists.txt. |
| set(IREE_INSTALL_LIBRARY_TARGETS_DEFAULT_COMPONENT IREEBundledLibraries) |
| set(IREE_INSTALL_LIBRARY_TARGETS_DEFAULT_EXPORT_SET Runtime) |
| |
| external_cc_library( |
| PACKAGE |
| flatcc |
| NAME |
| runtime |
| ROOT |
| ${FLATCC_ROOT} |
| INCLUDES |
| "${FLATCC_ROOT}/include" |
| SRCS |
| "src/runtime/builder.c" |
| "src/runtime/emitter.c" |
| "src/runtime/json_parser.c" |
| "src/runtime/json_printer.c" |
| "src/runtime/refmap.c" |
| HDRS |
| "include/flatcc/flatcc_accessors.h" |
| "include/flatcc/flatcc_alloc.h" |
| "include/flatcc/flatcc_assert.h" |
| "include/flatcc/flatcc_builder.h" |
| "include/flatcc/flatcc_emitter.h" |
| "include/flatcc/flatcc_endian.h" |
| "include/flatcc/flatcc_epilogue.h" |
| "include/flatcc/flatcc_flatbuffers.h" |
| "include/flatcc/flatcc_identifier.h" |
| "include/flatcc/flatcc_iov.h" |
| "include/flatcc/flatcc_json_parser.h" |
| "include/flatcc/flatcc_json_printer.h" |
| "include/flatcc/flatcc_portable.h" |
| "include/flatcc/flatcc_prologue.h" |
| "include/flatcc/flatcc_refmap.h" |
| "include/flatcc/flatcc_rtconfig.h" |
| "include/flatcc/flatcc_types.h" |
| "include/flatcc/flatcc_unaligned.h" |
| "include/flatcc/flatcc_verifier.h" |
| "include/flatcc/reflection/flatbuffers_common_builder.h" |
| "include/flatcc/reflection/flatbuffers_common_reader.h" |
| DEPS |
| flatcc::parsing |
| PUBLIC |
| ) |
| |
| # A limited version of :runtime with only enough to parse and verify. |
| external_cc_library( |
| PACKAGE |
| flatcc |
| NAME |
| parsing |
| ROOT |
| ${FLATCC_ROOT} |
| SYSTEM_INCLUDES |
| "${FLATCC_ROOT}/include" |
| SRCS |
| "config/config.h" |
| "src/runtime/verifier.c" |
| HDRS |
| "include/flatcc/flatcc_accessors.h" |
| "include/flatcc/flatcc_alloc.h" |
| "include/flatcc/flatcc_assert.h" |
| "include/flatcc/flatcc_endian.h" |
| "include/flatcc/flatcc_epilogue.h" |
| "include/flatcc/flatcc_flatbuffers.h" |
| "include/flatcc/flatcc_identifier.h" |
| "include/flatcc/flatcc_portable.h" |
| "include/flatcc/flatcc_prologue.h" |
| "include/flatcc/flatcc_rtconfig.h" |
| "include/flatcc/flatcc_types.h" |
| "include/flatcc/flatcc_unaligned.h" |
| "include/flatcc/flatcc_verifier.h" |
| "include/flatcc/reflection/flatbuffers_common_reader.h" |
| PUBLIC |
| ) |
| |
| if(IREE_HOST_BIN_DIR) |
| # Just import if IREE_HOST_BIN_DIR is set (e.g. when cross-compiling). |
| iree_import_binary(NAME iree-flatcc-cli) |
| return() |
| endif() |
| |
| # Define our own binary target for the CLI. |
| # flatcc's `flatcc_cli` target renames itself to `flatcc` or `flatcc_d` |
| # depending on the build configuration, so we prefer to just set our own name. |
| add_executable(iree-flatcc-cli |
| "${FLATCC_ROOT}/src/cli/flatcc_cli.c" |
| "${FLATCC_ROOT}/external/hash/cmetrohash64.c" |
| "${FLATCC_ROOT}/external/hash/str_set.c" |
| "${FLATCC_ROOT}/external/hash/ptr_set.c" |
| "${FLATCC_ROOT}/src/compiler/hash_tables/symbol_table.c" |
| "${FLATCC_ROOT}/src/compiler/hash_tables/scope_table.c" |
| "${FLATCC_ROOT}/src/compiler/hash_tables/name_table.c" |
| "${FLATCC_ROOT}/src/compiler/hash_tables/schema_table.c" |
| "${FLATCC_ROOT}/src/compiler/hash_tables/value_set.c" |
| "${FLATCC_ROOT}/src/compiler/fileio.c" |
| "${FLATCC_ROOT}/src/compiler/parser.c" |
| "${FLATCC_ROOT}/src/compiler/semantics.c" |
| "${FLATCC_ROOT}/src/compiler/coerce.c" |
| "${FLATCC_ROOT}/src/compiler/codegen_schema.c" |
| "${FLATCC_ROOT}/src/compiler/flatcc.c" |
| "${FLATCC_ROOT}/src/compiler/codegen_c.c" |
| "${FLATCC_ROOT}/src/compiler/codegen_c_reader.c" |
| "${FLATCC_ROOT}/src/compiler/codegen_c_sort.c" |
| "${FLATCC_ROOT}/src/compiler/codegen_c_builder.c" |
| "${FLATCC_ROOT}/src/compiler/codegen_c_verifier.c" |
| "${FLATCC_ROOT}/src/compiler/codegen_c_sorter.c" |
| "${FLATCC_ROOT}/src/compiler/codegen_c_json_parser.c" |
| "${FLATCC_ROOT}/src/compiler/codegen_c_json_printer.c" |
| "${FLATCC_ROOT}/src/runtime/builder.c" |
| "${FLATCC_ROOT}/src/runtime/emitter.c" |
| "${FLATCC_ROOT}/src/runtime/refmap.c" |
| ) |
| set_target_properties(iree-flatcc-cli |
| PROPERTIES |
| RUNTIME_OUTPUT_DIRECTORY "${IREE_BINARY_DIR}/tools" |
| ) |
| target_include_directories(iree-flatcc-cli SYSTEM |
| PUBLIC |
| "${FLATCC_ROOT}/external" |
| "${FLATCC_ROOT}/include" |
| "${FLATCC_ROOT}/config" |
| ) |
| install( |
| TARGETS iree-flatcc-cli |
| COMPONENT IREETools-Runtime |
| RUNTIME DESTINATION bin |
| BUNDLE DESTINATION bin |
| ) |