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(atmel)
|
||||||
add_subdirectory(cmsis)
|
add_subdirectory(cmsis)
|
||||||
|
add_subdirectory_if_kconfig(libmetal)
|
||||||
add_subdirectory(nordic)
|
add_subdirectory(nordic)
|
||||||
add_subdirectory(nxp)
|
add_subdirectory(nxp)
|
||||||
add_subdirectory_if_kconfig(qmsi)
|
add_subdirectory_if_kconfig(qmsi)
|
||||||
|
|
|
@ -16,6 +16,8 @@ source "ext/hal/altera/Kconfig"
|
||||||
|
|
||||||
source "ext/hal/cmsis/Kconfig"
|
source "ext/hal/cmsis/Kconfig"
|
||||||
|
|
||||||
|
source "ext/hal/libmetal/Kconfig"
|
||||||
|
|
||||||
source "ext/hal/nordic/Kconfig"
|
source "ext/hal/nordic/Kconfig"
|
||||||
|
|
||||||
source "ext/hal/nxp/mcux/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(ExternalProject)
|
||||||
|
|
||||||
include($ENV{ZEPHYR_BASE}/ext/hal/libmetal/libmetal.cmake)
|
|
||||||
|
|
||||||
ExternalProject_Add(
|
ExternalProject_Add(
|
||||||
open-amp
|
open-amp
|
||||||
SOURCE_DIR $ENV{ZEPHYR_BASE}/ext/lib/ipc/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
|
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)
|
ExternalProject_Get_property(open-amp SOURCE_DIR)
|
||||||
|
|
|
@ -29,11 +29,9 @@ ExternalProject_Add(
|
||||||
)
|
)
|
||||||
add_dependencies(core_m0_inc_target openamp_remote)
|
add_dependencies(core_m0_inc_target openamp_remote)
|
||||||
|
|
||||||
target_include_directories(app PRIVATE ${LIBMETAL_INCLUDE_DIR}
|
target_include_directories(app PRIVATE ${OPENAMP_INCLUDE_DIR} ${PLATFORM_DIR})
|
||||||
${OPENAMP_INCLUDE_DIR} ${PLATFORM_DIR})
|
|
||||||
|
|
||||||
target_link_libraries(app
|
target_link_libraries(app
|
||||||
${OPENAMP_LIBRARY}
|
${OPENAMP_LIBRARY}
|
||||||
${LIBMETAL_LIBRARY}
|
|
||||||
${ZEPHYR_KERNEL_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_TIMESLICE_SIZE=1
|
||||||
CONFIG_MAIN_STACK_SIZE=2048
|
CONFIG_MAIN_STACK_SIZE=2048
|
||||||
CONFIG_HEAP_MEM_POOL_SIZE=4096
|
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)
|
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)
|
add_dependencies(app open-amp)
|
||||||
|
|
||||||
target_link_libraries(app
|
target_link_libraries(app
|
||||||
${OPENAMP_LIBRARY}
|
${OPENAMP_LIBRARY}
|
||||||
${LIBMETAL_LIBRARY}
|
|
||||||
${ZEPHYR_KERNEL_LIBRARY})
|
${ZEPHYR_KERNEL_LIBRARY})
|
||||||
|
|
||||||
|
|
|
@ -4,3 +4,4 @@ CONFIG_IPM=y
|
||||||
CONFIG_IPM_MCUX=y
|
CONFIG_IPM_MCUX=y
|
||||||
CONFIG_PLATFORM_SPECIFIC_INIT=n
|
CONFIG_PLATFORM_SPECIFIC_INIT=n
|
||||||
CONFIG_HEAP_MEM_POOL_SIZE=4096
|
CONFIG_HEAP_MEM_POOL_SIZE=4096
|
||||||
|
CONFIG_LIBMETAL=y
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue