sof/tools/fuzzer/CMakeLists.txt

66 lines
1.9 KiB
CMake

# SPDX-License-Identifier: BSD-3-Clause
cmake_minimum_required(VERSION 3.10)
project(SOF_FUZZER C)
if("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
message(FATAL_ERROR
" In-source builds are not supported.\n"
" Please remove CMakeCache.txt and the CMakeFiles directory.\n"
" Then specify a build directory. Example: cmake -Bbuild ..."
)
endif()
include(ExternalProject)
set(parser_src_dir "${PROJECT_SOURCE_DIR}/../tplg_parser")
set(parser_install_dir "${PROJECT_BINARY_DIR}/sof_parser/install")
ExternalProject_Add(sof_parser_ep
SOURCE_DIR "${parser_src_dir}"
PREFIX "${PROJECT_BINARY_DIR}/sof_parser"
BINARY_DIR "${PROJECT_BINARY_DIR}/sof_parser/build"
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${parser_install_dir}
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE}
BUILD_COMMAND ${CMAKE_COMMAND}
BUILD_ALWAYS 1
BUILD_BYPRODUCTS "${parser_install_dir}/lib/libsof_tplg_parser.so"
)
add_library(sof_parser SHARED IMPORTED)
set_target_properties(sof_parser PROPERTIES IMPORTED_LOCATION "${parser_install_dir}/lib/libsof_tplg_parser.so")
add_dependencies(sof_parser sof_parser_ep)
add_executable(sof-fuzzer
main.c
qemu-bridge.c
topology.c
platform/byt-host.c
)
target_link_libraries(sof-fuzzer PRIVATE sof_parser)
target_include_directories(sof-fuzzer PRIVATE "${parser_install_dir}/include")
add_dependencies(sof-fuzzer sof_parser)
find_package(PkgConfig REQUIRED)
pkg_search_module(GLIB REQUIRED glib-2.0)
target_include_directories(sof-fuzzer PRIVATE ${GLIB_INCLUDE_DIRS})
target_link_libraries(sof-fuzzer PRIVATE ${GLIB_LDFLAGS})
find_library(LIBRT rt)
if(LIBRT)
target_link_libraries(sof-fuzzer PRIVATE ${LIBRT})
endif()
set(SOF_ROOT_SOURCE_DIRECTORY "${PROJECT_SOURCE_DIR}/../..")
target_include_directories(sof-fuzzer PRIVATE
"${SOF_ROOT_SOURCE_DIRECTORY}/src/include"
"${SOF_ROOT_SOURCE_DIRECTORY}/src/arch/host/include"
"${SOF_ROOT_SOURCE_DIRECTORY}"
)
install(TARGETS sof-fuzzer DESTINATION bin)