nuttx-apps/builtin/CMakeLists.txt
2024-08-16 15:21:50 +08:00

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()