diff --git a/ext/hal/CMakeLists.txt b/ext/hal/CMakeLists.txt index 8c99d8548b1..59f628fae09 100644 --- a/ext/hal/CMakeLists.txt +++ b/ext/hal/CMakeLists.txt @@ -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) diff --git a/ext/hal/Kconfig b/ext/hal/Kconfig index 60f414ff1ce..703a37d6db3 100644 --- a/ext/hal/Kconfig +++ b/ext/hal/Kconfig @@ -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" diff --git a/ext/hal/libmetal/CMakeLists.txt b/ext/hal/libmetal/CMakeLists.txt new file mode 100644 index 00000000000..5dacbd9a80a --- /dev/null +++ b/ext/hal/libmetal/CMakeLists.txt @@ -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) diff --git a/ext/hal/libmetal/Kconfig b/ext/hal/libmetal/Kconfig new file mode 100644 index 00000000000..70977cfb2e9 --- /dev/null +++ b/ext/hal/libmetal/Kconfig @@ -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 diff --git a/ext/hal/libmetal/libmetal.cmake b/ext/hal/libmetal/libmetal.cmake deleted file mode 100644 index 0a7816007e0..00000000000 --- a/ext/hal/libmetal/libmetal.cmake +++ /dev/null @@ -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) diff --git a/ext/lib/ipc/open-amp.cmake b/ext/lib/ipc/open-amp.cmake index bc0ab3c282e..f710bb7a62d 100644 --- a/ext/lib/ipc/open-amp.cmake +++ b/ext/lib/ipc/open-amp.cmake @@ -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) diff --git a/samples/subsys/ipc/openamp/CMakeLists.txt b/samples/subsys/ipc/openamp/CMakeLists.txt index a041adf2665..a17645b00c5 100644 --- a/samples/subsys/ipc/openamp/CMakeLists.txt +++ b/samples/subsys/ipc/openamp/CMakeLists.txt @@ -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}) diff --git a/samples/subsys/ipc/openamp/prj.conf b/samples/subsys/ipc/openamp/prj.conf index 6aa9d2308c8..7bd927d1b26 100644 --- a/samples/subsys/ipc/openamp/prj.conf +++ b/samples/subsys/ipc/openamp/prj.conf @@ -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 diff --git a/samples/subsys/ipc/openamp/remote/CMakeLists.txt b/samples/subsys/ipc/openamp/remote/CMakeLists.txt index 56a541dc5df..0dc2a7ec706 100644 --- a/samples/subsys/ipc/openamp/remote/CMakeLists.txt +++ b/samples/subsys/ipc/openamp/remote/CMakeLists.txt @@ -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}) diff --git a/samples/subsys/ipc/openamp/remote/prj.conf b/samples/subsys/ipc/openamp/remote/prj.conf index 11670cb1347..fd45162ed9e 100644 --- a/samples/subsys/ipc/openamp/remote/prj.conf +++ b/samples/subsys/ipc/openamp/remote/prj.conf @@ -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