zephyr/tests/lib/thrift/ThriftTest/CMakeLists.txt

58 lines
1.7 KiB
CMake

# Copyright 2022 Meta
# SPDX-License-Identifier: Apache-2.0
cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(thrift_test)
set(THRIFT_UPSTREAM ${ZEPHYR_THRIFT_MODULE_DIR})
include(${ZEPHYR_BASE}/modules/thrift/cmake/thrift.cmake)
FILE(GLOB app_sources
src/*.cpp
)
set(generated_sources "")
set(gen_dir ${ZEPHYR_BINARY_DIR}/misc/generated/thrift_ThriftTest)
list(APPEND generated_sources ${gen_dir}/gen-cpp/SecondService.cpp)
list(APPEND generated_sources ${gen_dir}/gen-cpp/SecondService.h)
list(APPEND generated_sources ${gen_dir}/gen-cpp/ThriftTest_constants.cpp)
list(APPEND generated_sources ${gen_dir}/gen-cpp/ThriftTest_constants.h)
list(APPEND generated_sources ${gen_dir}/gen-cpp/ThriftTest.cpp)
list(APPEND generated_sources ${gen_dir}/gen-cpp/ThriftTest.h)
list(APPEND generated_sources ${gen_dir}/gen-cpp/ThriftTest_types.cpp)
list(APPEND generated_sources ${gen_dir}/gen-cpp/ThriftTest_types.h)
list(APPEND app_sources ${generated_sources})
thrift(
app
cpp
:no_skeleton
${gen_dir}
# v0.16: ubuntu packaged thrift compiler does not support 'uuid' type
"${THRIFT_UPSTREAM}/test/v0.16/ThriftTest.thrift"
""
${generated_sources}
)
target_sources(app PRIVATE ${app_sources})
# needed because std::iterator was deprecated with -std=c++17
target_compile_options(app PRIVATE -Wno-deprecated-declarations)
# convert .pem files to array data at build time
zephyr_include_directories(${gen_dir})
generate_inc_file_for_target(
app
${ZEPHYR_BASE}/samples/modules/thrift/hello/qemu-cert.pem
${gen_dir}/qemu_cert.pem.inc
)
generate_inc_file_for_target(
app
${ZEPHYR_BASE}/samples/modules/thrift/hello/qemu-key.pem
${gen_dir}/qemu_key.pem.inc
)