blob: 833d8c56ccda769e478384cbb98fd7e72d970d20 [file] [log] [blame]
# Copyright (c) 2023 Intel Corporation.
# SPDX-License-Identifier: Apache-2.0
cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(hello_world)
# TODO check which architecture is being used
if(CONFIG_ARM)
set(CMAKE_C_FLAGS "-mlong-calls" "-mthumb")
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/hello_world.llext
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS} -c
-I ${PROJECT_SOURCE_DIR}/../../../../include
-imacros${PROJECT_BINARY_DIR}/../zephyr/include/generated/autoconf.h
-o ${PROJECT_BINARY_DIR}/hello_world.llext
${PROJECT_SOURCE_DIR}/hello_world.c
)
elseif(CONFIG_XTENSA)
set(CMAKE_C_FLAGS "-shared" "-fPIC" "-nostdlib" "-nodefaultlibs")
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/hello_world.llext
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS}
-I ${PROJECT_SOURCE_DIR}/../../../../include
-imacros${PROJECT_BINARY_DIR}/../zephyr/include/generated/autoconf.h
-o ${PROJECT_BINARY_DIR}/hello_world.pre.llext
${PROJECT_SOURCE_DIR}/hello_world.c
COMMAND ${CROSS_COMPILE}strip -R .xt.*
-o ${PROJECT_BINARY_DIR}/hello_world.llext
${PROJECT_BINARY_DIR}/hello_world.pre.llext
)
endif()
set(HELLO_WORLD_LLEXT ${PROJECT_BINARY_DIR}/hello_world.llext PARENT_SCOPE)
add_custom_target(hello_world DEPENDS ${PROJECT_BINARY_DIR}/hello_world.llext)