2023-09-20 04:32:58 +08:00
|
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
|
|
|
|
cmake_minimum_required(VERSION 3.13)
|
|
|
|
|
2024-02-09 08:23:03 +08:00
|
|
|
project(SOF_PLUGIN C CXX)
|
2023-09-20 04:32:58 +08:00
|
|
|
|
|
|
|
include(../../scripts/cmake/misc.cmake)
|
|
|
|
include(CheckCCompilerFlag)
|
|
|
|
|
|
|
|
set(sof_source_directory "${PROJECT_SOURCE_DIR}/../..")
|
|
|
|
set(sof_install_directory "${PROJECT_BINARY_DIR}/sof_ep/install")
|
|
|
|
set(sof_binary_directory "${PROJECT_BINARY_DIR}/sof_ep/build")
|
|
|
|
|
|
|
|
set(config_h ${sof_binary_directory}/library_autoconfig.h)
|
|
|
|
|
|
|
|
set(parser_source_directory "${PROJECT_SOURCE_DIR}/../tplg_parser")
|
|
|
|
set(parser_install_dir "${PROJECT_BINARY_DIR}/sof_parser/install")
|
|
|
|
|
|
|
|
message("ipc4 build")
|
|
|
|
set(tplg_ipc plugin_ipc4_defconfig)
|
|
|
|
|
|
|
|
include(ExternalProject)
|
|
|
|
|
|
|
|
# External project for SOF library
|
|
|
|
ExternalProject_Add(sof_ep
|
|
|
|
DOWNLOAD_COMMAND ""
|
|
|
|
SOURCE_DIR "${sof_source_directory}"
|
|
|
|
PREFIX "${PROJECT_BINARY_DIR}/sof_ep"
|
|
|
|
BINARY_DIR "${sof_binary_directory}"
|
|
|
|
CMAKE_ARGS -DCONFIG_LIBRARY=ON
|
|
|
|
-DCMAKE_INSTALL_PREFIX=${sof_install_directory}
|
|
|
|
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE}
|
|
|
|
-DINIT_CONFIG=${tplg_ipc}
|
|
|
|
-DCONFIG_H_PATH=${config_h}
|
|
|
|
-DCONFIG_LIBRARY_STATIC=ON
|
|
|
|
-DOPTIMIZE_FOR_DEBUG=ON
|
|
|
|
BUILD_ALWAYS 1
|
|
|
|
BUILD_BYPRODUCTS "${sof_install_directory}/lib/libsof.a"
|
|
|
|
)
|
|
|
|
|
|
|
|
add_library(sof_library STATIC IMPORTED)
|
|
|
|
set_target_properties(sof_library PROPERTIES IMPORTED_LOCATION "${sof_install_directory}/lib/libsof.a")
|
|
|
|
add_dependencies(sof_library sof_ep)
|
|
|
|
|
|
|
|
# External project for topology parser
|
|
|
|
ExternalProject_Add(parser_ep
|
|
|
|
SOURCE_DIR "${parser_source_directory}"
|
|
|
|
PREFIX "${PROJECT_BINARY_DIR}/sof_parser"
|
|
|
|
BINARY_DIR "${PROJECT_BINARY_DIR}/sof_parser/build"
|
|
|
|
CMAKE_ARGS -DCONFIG_LIBRARY=ON
|
|
|
|
-DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/sof_parser/install
|
|
|
|
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE}
|
|
|
|
-DCONFIG_LIBRARY_STATIC=ON
|
|
|
|
-DOPTIMIZE_FOR_DEBUG=ON
|
|
|
|
BUILD_ALWAYS 1
|
|
|
|
BUILD_BYPRODUCTS "${parser_install_dir}/lib/libsof_tplg_parser.a"
|
|
|
|
)
|
|
|
|
|
|
|
|
add_library(sof_parser_lib STATIC IMPORTED)
|
|
|
|
set_target_properties(sof_parser_lib PROPERTIES IMPORTED_LOCATION "${parser_install_dir}/lib/libsof_tplg_parser.a")
|
|
|
|
add_dependencies(sof_parser_lib parser_ep)
|
|
|
|
|
|
|
|
add_subdirectory(alsaconf)
|
|
|
|
add_subdirectory(alsaplug)
|
|
|
|
add_subdirectory(modules)
|
|
|
|
add_subdirectory(pipe)
|
|
|
|
|
|
|
|
add_dependencies(asound_module_pcm_sof sof_parser_lib)
|
|
|
|
add_dependencies(asound_module_ctl_sof sof_parser_lib)
|
|
|
|
|
|
|
|
add_dependencies(sof-pipe sof_mod_shm)
|
|
|
|
add_dependencies(sof-pipe sof_mod_alsa)
|