mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-01 20:29:00 +00:00
System is unknown to cmake, create: Platform/WASI to use this system, please post your config file on discourse.cmake.org so it can be added to cmake Your CMakeCache.txt file was copied to CopyOfCMakeCache.txt. Please post that file on discourse.cmake.org. CMake Error at CMakeLists.txt:100 (add_subdirectory): add_subdirectory given source /home/data/vela/tmp/apps/frameworks/security/ta/hello_world /home/data/vela/tmp/apps/frameworks/security/ta/" which is not an existing directory. Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
107 lines
3.6 KiB
CMake
107 lines
3.6 KiB
CMake
# ##############################################################################
|
|
# apps/tools/Wasm/CMakeLists.txt
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
|
|
# license agreements. See the NOTICE file distributed with this work for
|
|
# additional information regarding copyright ownership. The ASF licenses this
|
|
# file to you under the Apache License, Version 2.0 (the "License"); you may not
|
|
# use this file except in compliance with the License. You may obtain a copy of
|
|
# the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations under
|
|
# the License.
|
|
#
|
|
# ##############################################################################
|
|
|
|
# ~~~
|
|
# This file is used to manage the WebAssembly (Wasm) build process as entry
|
|
# point. All the wasm apps are built using this file as a sub target.
|
|
#
|
|
# Necessary input for this file is the APPDIR, TOPDIR and KCONFIG_FILE_PATH.
|
|
# The APPDIR is the directory where the Wasm apps are located.
|
|
# The TOPDIR is the root directory of the NuttX source code.
|
|
# The KCONFIG_FILE_PATH is the path to the .config file of the NuttX build.
|
|
# ~~~
|
|
|
|
cmake_minimum_required(VERSION 3.5)
|
|
|
|
cmake_policy(SET CMP0079 NEW)
|
|
|
|
# Include the NuttX kconfig parser to shared the configuration between the NuttX
|
|
# build and the Wasm build. And then parse the input KCONFIG_FILE_PATH to get
|
|
# the configuration.
|
|
include(${TOPDIR}/cmake/nuttx_kconfig.cmake)
|
|
|
|
# Parse the input KCONFIG_FILE_PATH to get the configuration.
|
|
nuttx_export_kconfig(${KCONFIG_FILE_PATH})
|
|
|
|
# Include the WASI-SDK.cmake file to setup the necessary flags for building
|
|
include(WASI-SDK.cmake)
|
|
|
|
project(WasmApps)
|
|
|
|
# Add the wasm_interface library to hold all the Wasm libraries.
|
|
add_library(wasm_interface INTERFACE)
|
|
|
|
# Check whether the APPDIR is defined or not. If not, then set it to the parent
|
|
# directory of the current CMakeLists.txt file.
|
|
if(NOT DEFINED APPDIR)
|
|
message(FATAL_ERROR "APPDIR is not defined")
|
|
endif()
|
|
|
|
# Check wether the TOPDIR is defined or not. If not, then raise an error.
|
|
if(NOT DEFINED TOPDIR)
|
|
message(FATAL_ERROR "TOPDIR is not defined")
|
|
endif()
|
|
|
|
# Check wether the TOPBINDIR is defined or not. If not, then raise an error.
|
|
if(NOT DEFINED TOPBINDIR)
|
|
message(FATAL_ERROR "TOPBINDIR is not defined")
|
|
endif()
|
|
|
|
if(NOT EXISTS ${TOPBINDIR}/wasm)
|
|
file(MAKE_DIRECTORY ${TOPBINDIR}/wasm)
|
|
endif()
|
|
|
|
# Check wether the KCONFIG_FILE_PATH is defined or not. If not, then raise an
|
|
# error.
|
|
if(NOT DEFINED KCONFIG_FILE_PATH)
|
|
message(FATAL_ERROR "KCONFIG_FILE_PATH is not defined")
|
|
endif()
|
|
|
|
# Provide FAR macro from command line since it is not supported in wasi-sdk, but
|
|
# it is used in NuttX code.
|
|
# ~~~
|
|
# #define FAR
|
|
# ~~~
|
|
# It usually defined in nuttx/compiler.h.
|
|
set(NUTTX_MACRO_FAR "")
|
|
add_definitions(-DFAR=${NUTTX_MACRO_FAR})
|
|
|
|
# Fake nuttx_add_application to avoid error in the Wasm build process.
|
|
function(nuttx_add_application)
|
|
|
|
endfunction()
|
|
|
|
# Fake nuttx_add_library to avoid error in the Wasm build process.
|
|
function(nuttx_add_library)
|
|
|
|
endfunction()
|
|
|
|
separate_arguments(WASM_DIRS)
|
|
|
|
# ~~~
|
|
# Add all the Wasm apps to the build process.
|
|
foreach(WASM_APP ${WASM_DIRS})
|
|
string(REPLACE ${APPDIR} "" WASM_APP_BUILD_DIR ${WASM_APP})
|
|
add_subdirectory(${WASM_APP}
|
|
${CMAKE_CURRENT_BINARY_DIR}/Wasm/${WASM_APP_BUILD_DIR})
|
|
endforeach()
|
|
# ~~~
|