blob: 59946d596d11b037e66c413a03e13787a810ca34 [file] [log] [blame]
# Copyright 2020 Google LLC
#
# 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
#
# https://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(FLATCC_ROOT "${IREE_ROOT_DIR}/third_party/flatcc/")
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"
"src/runtime/verifier.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"
PUBLIC
)
# Define our own binary target for the CLI, for host builds only.
# 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.
if(NOT CMAKE_CROSSCOMPILING)
add_executable(iree-flatcc-cli
"${FLATCC_ROOT}/src/cli/flatcc_cli.c"
)
target_link_libraries(iree-flatcc-cli
flatcc
)
target_include_directories(iree-flatcc-cli SYSTEM
PUBLIC
"${FLATCC_ROOT}/include"
"${FLATCC_ROOT}/config"
)
endif()