Skip to content

Commit cc4c1fc

Browse files
committed
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 zephyrproject-rtos#7673. Signed-off-by: Kumar Gala <[email protected]>
1 parent 7e710bd commit cc4c1fc

File tree

9 files changed

+28
-21
lines changed

9 files changed

+28
-21
lines changed

ext/hal/CMakeLists.txt

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
1+
if(CONFIG_LIBMETAL)
2+
set(WITH_ZEPHYR 1)
3+
set(WITH_ZEPHYR_LIB 1)
4+
set(WITH_DOC OFF CACHE BOOL "" FORCE)
5+
set(WITH_DEFAULT_LOGGER OFF CACHE BOOL "" FORCE)
6+
endif(CONFIG_LIBMETAL)
7+
18
add_subdirectory(atmel)
29
add_subdirectory(cmsis)
10+
add_subdirectory_ifdef(CONFIG_LIBMETAL libmetal)
311
add_subdirectory(nordic)
412
add_subdirectory(nxp)
513
add_subdirectory_if_kconfig(qmsi)

ext/hal/Kconfig

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ source "ext/hal/altera/Kconfig"
1616

1717
source "ext/hal/cmsis/Kconfig"
1818

19+
source "ext/hal/libmetal/Kconfig"
20+
1921
source "ext/hal/nordic/Kconfig"
2022

2123
source "ext/hal/nxp/mcux/Kconfig"

ext/hal/libmetal.cmake

-12
This file was deleted.

ext/hal/libmetal/Kconfig

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#
2+
# Copyright (c) 2018 Linaro Limited
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
#
6+
7+
config LIBMETAL
8+
bool
9+
prompt "libmetal Support"
10+
default n
11+
help
12+
This option enables the libmetal HAL abstraction layer

ext/lib/ipc/open-amp.cmake

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
include(ExternalProject)
22

3-
include($ENV{ZEPHYR_BASE}/ext/hal/libmetal.cmake)
4-
53
ExternalProject_Add(
64
open-amp
75
SOURCE_DIR $ENV{ZEPHYR_BASE}/ext/lib/ipc/open-amp/
8-
DEPENDS libmetal
6+
DEPENDS metal
97
INSTALL_COMMAND "" # This particular build system has no install command
10-
CMAKE_ARGS -DWITH_ZEPHYR=ON -DWITH_PROXY=OFF -DBOARD=${BOARD} -DLIBMETAL_INCLUDE_DIR=${LIBMETAL_INCLUDE_DIR} -DLIBMETAL_LIB=${LIBMETAL_LIBRARY}
8+
CMAKE_ARGS -DWITH_ZEPHYR=ON -DWITH_PROXY=OFF -DBOARD=${BOARD} -DLIBMETAL_INCLUDE_DIR=${ZEPHYR_BINARY_DIR}/ext/hal/libmetal/lib/include -DLIBMETAL_LIB=${ZEPHYR_BINARY_DIR}/ext/hal/libmetal/lib
119
)
1210

1311
ExternalProject_Get_property(open-amp SOURCE_DIR)

samples/subsys/ipc/openamp/CMakeLists.txt

+1-3
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,9 @@ ExternalProject_Add(
2929
)
3030
add_dependencies(core_m0_inc_target openamp_remote)
3131

32-
target_include_directories(app PRIVATE ${LIBMETAL_INCLUDE_DIR}
33-
${OPENAMP_INCLUDE_DIR} ${PLATFORM_DIR})
32+
target_include_directories(app PRIVATE ${OPENAMP_INCLUDE_DIR} ${PLATFORM_DIR})
3433

3534
target_link_libraries(app
3635
${OPENAMP_LIBRARY}
37-
${LIBMETAL_LIBRARY}
3836
${ZEPHYR_KERNEL_LIBRARY})
3937

samples/subsys/ipc/openamp/prj.conf

+1
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ CONFIG_SLAVE_IMAGE_MCUX="${ZEPHYR_BINARY_DIR}/../openamp_remote-prefix/src/opena
66
CONFIG_TIMESLICE_SIZE=1
77
CONFIG_MAIN_STACK_SIZE=2048
88
CONFIG_HEAP_MEM_POOL_SIZE=4096
9+
CONFIG_LIBMETAL=y

samples/subsys/ipc/openamp/remote/CMakeLists.txt

+1-2
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@ target_sources(app PRIVATE src/main_remote.c ${PLATFORM_DIR}/platform.c ${PLATFO
1414

1515
include($ENV{ZEPHYR_BASE}/ext/lib/ipc/open-amp.cmake)
1616

17-
target_include_directories(app PRIVATE ${LIBMETAL_INCLUDE_DIR} ${OPENAMP_INCLUDE_DIR} ${PLATFORM_DIR})
17+
target_include_directories(app PRIVATE ${OPENAMP_INCLUDE_DIR} ${PLATFORM_DIR})
1818

1919
add_dependencies(app open-amp)
2020

2121
target_link_libraries(app
2222
${OPENAMP_LIBRARY}
23-
${LIBMETAL_LIBRARY}
2423
${ZEPHYR_KERNEL_LIBRARY})
2524

samples/subsys/ipc/openamp/remote/prj.conf

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ CONFIG_IPM=y
44
CONFIG_IPM_MCUX=y
55
CONFIG_PLATFORM_SPECIFIC_INIT=n
66
CONFIG_HEAP_MEM_POOL_SIZE=4096
7+
CONFIG_LIBMETAL=y

0 commit comments

Comments
 (0)