4d79a5cbaf
Co-authored-by: Daniel Agar <daniel@agar.ca> Signed-off-by: chao an <anchao@xiaomi.com>
60 lines
2.1 KiB
CMake
60 lines
2.1 KiB
CMake
# ##############################################################################
|
|
# apps/builtin/CMakeLists.txt
|
|
#
|
|
# 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.
|
|
#
|
|
# ##############################################################################
|
|
|
|
if(CONFIG_BUILTIN)
|
|
|
|
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
# generate registry
|
|
get_property(nuttx_app_libs GLOBAL PROPERTY NUTTX_APPS_LIBRARIES)
|
|
set(builtin_list_string)
|
|
set(builtin_proto_string)
|
|
foreach(module ${nuttx_app_libs})
|
|
|
|
# builtin_list.h Example: { "hello", SCHED_PRIORITY_DEFAULT, 2048,
|
|
# hello_main },
|
|
#
|
|
get_target_property(APP_MAIN ${module} APP_MAIN)
|
|
get_target_property(APP_NAME ${module} APP_NAME)
|
|
get_target_property(APP_PRIORITY ${module} APP_PRIORITY)
|
|
get_target_property(APP_STACK ${module} APP_STACK)
|
|
set(builtin_list_string
|
|
"${builtin_list_string}\{ \"${APP_NAME}\", ${APP_PRIORITY}, ${APP_STACK}, ${APP_MAIN} \}, \n"
|
|
)
|
|
|
|
# builtin_proto.h Example: int hello_main(int argc, char *argv[]);
|
|
set(builtin_proto_string
|
|
"${builtin_proto_string}int ${APP_MAIN}(int argc, char *argv[]);\n")
|
|
|
|
endforeach()
|
|
|
|
configure_file(builtin_proto.h.in builtin_proto.h)
|
|
configure_file(builtin_list.h.in builtin_list.h)
|
|
|
|
set(CSRCS)
|
|
|
|
list(APPEND CSRCS builtin_list.c exec_builtin.c builtin_list.h
|
|
builtin_proto.h)
|
|
|
|
# target_sources(apps PRIVATE ${CSRCS})
|
|
nuttx_add_library(apps_builtin ${CSRCS})
|
|
|
|
endif()
|