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