ext: libmetal: Change build integration so its not recursive
With recent changes to libmetal we can now include and build it directly as a zephyr library rather than doing a recursive make. We remove ext/hal/libmetal.cmake as part of this change and introduce a Kconfig option for libmetal. This is a partial fix for issue #7673. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
parent
6a2c371fe7
commit
f6fb8b8aee
10 changed files with 33 additions and 21 deletions
|
@ -1,5 +1,6 @@
|
|||
add_subdirectory(atmel)
|
||||
add_subdirectory(cmsis)
|
||||
add_subdirectory_if_kconfig(libmetal)
|
||||
add_subdirectory(nordic)
|
||||
add_subdirectory(nxp)
|
||||
add_subdirectory_if_kconfig(qmsi)
|
||||
|
|
|
@ -16,6 +16,8 @@ source "ext/hal/altera/Kconfig"
|
|||
|
||||
source "ext/hal/cmsis/Kconfig"
|
||||
|
||||
source "ext/hal/libmetal/Kconfig"
|
||||
|
||||
source "ext/hal/nordic/Kconfig"
|
||||
|
||||
source "ext/hal/nxp/mcux/Kconfig"
|
||||
|
|
12
ext/hal/libmetal/CMakeLists.txt
Normal file
12
ext/hal/libmetal/CMakeLists.txt
Normal file
|
@ -0,0 +1,12 @@
|
|||
#
|
||||
# Copyright (c) 2018 Linaro Limited
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
set(WITH_ZEPHYR 1)
|
||||
set(WITH_ZEPHYR_LIB 1)
|
||||
set(WITH_DOC OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_DEFAULT_LOGGER OFF CACHE BOOL "" FORCE)
|
||||
|
||||
add_subdirectory(libmetal)
|
12
ext/hal/libmetal/Kconfig
Normal file
12
ext/hal/libmetal/Kconfig
Normal file
|
@ -0,0 +1,12 @@
|
|||
#
|
||||
# Copyright (c) 2018 Linaro Limited
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
config LIBMETAL
|
||||
bool
|
||||
prompt "libmetal Support"
|
||||
default n
|
||||
help
|
||||
This option enables the libmetal HAL abstraction layer
|
|
@ -1,12 +0,0 @@
|
|||
include(ExternalProject)
|
||||
|
||||
ExternalProject_Add(
|
||||
libmetal # Name for custom target
|
||||
SOURCE_DIR $ENV{ZEPHYR_BASE}/ext/hal/libmetal/libmetal/
|
||||
INSTALL_COMMAND "" # This particular build system has no install command
|
||||
CMAKE_ARGS -DWITH_ZEPHYR=ON -DBOARD=${BOARD} -DWITH_DEFAULT_LOGGER=OFF -DWITH_DOC=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Get_property(libmetal BINARY_DIR)
|
||||
set(LIBMETAL_INCLUDE_DIR ${BINARY_DIR}/lib/include)
|
||||
set(LIBMETAL_LIBRARY ${BINARY_DIR}/lib/libmetal.a)
|
|
@ -1,13 +1,11 @@
|
|||
include(ExternalProject)
|
||||
|
||||
include($ENV{ZEPHYR_BASE}/ext/hal/libmetal/libmetal.cmake)
|
||||
|
||||
ExternalProject_Add(
|
||||
open-amp
|
||||
SOURCE_DIR $ENV{ZEPHYR_BASE}/ext/lib/ipc/open-amp/
|
||||
DEPENDS libmetal
|
||||
DEPENDS metal
|
||||
INSTALL_COMMAND "" # This particular build system has no install command
|
||||
CMAKE_ARGS -DWITH_ZEPHYR=ON -DWITH_PROXY=OFF -DBOARD=${BOARD} -DLIBMETAL_INCLUDE_DIR=${LIBMETAL_INCLUDE_DIR} -DLIBMETAL_LIB=${LIBMETAL_LIBRARY}
|
||||
CMAKE_ARGS -DWITH_ZEPHYR=ON -DWITH_PROXY=OFF -DBOARD=${BOARD} -DLIBMETAL_INCLUDE_DIR=${ZEPHYR_BINARY_DIR}/ext/hal/libmetal/libmetal/lib/include -DLIBMETAL_LIB=${ZEPHYR_BINARY_DIR}/ext/hal/libmetal/libmetal/lib
|
||||
)
|
||||
|
||||
ExternalProject_Get_property(open-amp SOURCE_DIR)
|
||||
|
|
|
@ -29,11 +29,9 @@ ExternalProject_Add(
|
|||
)
|
||||
add_dependencies(core_m0_inc_target openamp_remote)
|
||||
|
||||
target_include_directories(app PRIVATE ${LIBMETAL_INCLUDE_DIR}
|
||||
${OPENAMP_INCLUDE_DIR} ${PLATFORM_DIR})
|
||||
target_include_directories(app PRIVATE ${OPENAMP_INCLUDE_DIR} ${PLATFORM_DIR})
|
||||
|
||||
target_link_libraries(app
|
||||
${OPENAMP_LIBRARY}
|
||||
${LIBMETAL_LIBRARY}
|
||||
${ZEPHYR_KERNEL_LIBRARY})
|
||||
|
||||
|
|
|
@ -6,3 +6,4 @@ CONFIG_SLAVE_IMAGE_MCUX="${ZEPHYR_BINARY_DIR}/../openamp_remote-prefix/src/opena
|
|||
CONFIG_TIMESLICE_SIZE=1
|
||||
CONFIG_MAIN_STACK_SIZE=2048
|
||||
CONFIG_HEAP_MEM_POOL_SIZE=4096
|
||||
CONFIG_LIBMETAL=y
|
||||
|
|
|
@ -14,12 +14,11 @@ target_sources(app PRIVATE src/main_remote.c ${PLATFORM_DIR}/platform.c ${PLATFO
|
|||
|
||||
include($ENV{ZEPHYR_BASE}/ext/lib/ipc/open-amp.cmake)
|
||||
|
||||
target_include_directories(app PRIVATE ${LIBMETAL_INCLUDE_DIR} ${OPENAMP_INCLUDE_DIR} ${PLATFORM_DIR})
|
||||
target_include_directories(app PRIVATE ${OPENAMP_INCLUDE_DIR} ${PLATFORM_DIR})
|
||||
|
||||
add_dependencies(app open-amp)
|
||||
|
||||
target_link_libraries(app
|
||||
${OPENAMP_LIBRARY}
|
||||
${LIBMETAL_LIBRARY}
|
||||
${ZEPHYR_KERNEL_LIBRARY})
|
||||
|
||||
|
|
|
@ -4,3 +4,4 @@ CONFIG_IPM=y
|
|||
CONFIG_IPM_MCUX=y
|
||||
CONFIG_PLATFORM_SPECIFIC_INIT=n
|
||||
CONFIG_HEAP_MEM_POOL_SIZE=4096
|
||||
CONFIG_LIBMETAL=y
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue