From 766e4a415470041c3e6c4b32909551acef374e08 Mon Sep 17 00:00:00 2001 From: zhanghongyu Date: Thu, 26 Oct 2023 14:34:49 +0800 Subject: [PATCH] libs/libc: adapt the cmake script from the makefile fix the cmake build error. Signed-off-by: zhanghongyu --- libs/libc/builtin/CMakeLists.txt | 12 ++++++-- libs/libc/gpsutils/CMakeLists.txt | 48 +++++++++++++++++++++++++++++++ libs/libc/misc/CMakeLists.txt | 8 ++++++ 3 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 libs/libc/gpsutils/CMakeLists.txt diff --git a/libs/libc/builtin/CMakeLists.txt b/libs/libc/builtin/CMakeLists.txt index 6e5bf230a9..acb822b131 100644 --- a/libs/libc/builtin/CMakeLists.txt +++ b/libs/libc/builtin/CMakeLists.txt @@ -19,8 +19,16 @@ # ############################################################################## if(CONFIG_BUILTIN) - set(SRCS lib_builtin_getname.c lib_builtin_isavail.c lib_builtin_forindex.c - lib_builtin_setlist.c) + set(SRCS lib_builtin_getname.c lib_builtin_isavail.c lib_builtin_forindex.c) + + if(CONFIG_BUILD_PROTECTED) + list(APPEND SRCS lib_builtin_setlist.c) + endif() + + if(CONFIG_SCHED_USER_IDENTITY) + list(APPEND SRCS lib_builtin_getuid.c lib_builtin_getgid.c + lib_builtin_getmode.c) + endif() target_sources(c PRIVATE ${SRCS}) endif() diff --git a/libs/libc/gpsutils/CMakeLists.txt b/libs/libc/gpsutils/CMakeLists.txt new file mode 100644 index 0000000000..8048a84058 --- /dev/null +++ b/libs/libc/gpsutils/CMakeLists.txt @@ -0,0 +1,48 @@ +# ############################################################################## +# libs/libc/gpsutils/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. +# +# ############################################################################## + +nuttx_generate_kconfig(MENUDESC "GPS Utilities") + +if(CONFIG_GPSUTILS_MINMEA_LIB) + + set(MINMEA_DIR ${CMAKE_CURRENT_LIST_DIR}/minmea) + + if(NOT EXISTS ${MINMEA_DIR}) + set(MINMEA_URL https://github.com/kosma/minmea/archive) + set(MINMEA_VERSION db46128e73cee26d6a6eb0482dcba544ee1ea9f5) + + FetchContent_Declare( + minmea_fetch + URL ${MINMEA_URL}/${MINMEA_VERSION}.zip SOURCE_DIR + ${CMAKE_CURRENT_LIST_DIR}/minmea BINARY_DIR + ${CMAKE_BINARY_DIR}/libs/libc/gpsutils/minmea + DOWNLOAD_NO_PROGRESS true + TIMEOUT 30) + + FetchContent_GetProperties(minmea_fetch) + + if(NOT minmea_fetch_POPULATED) + FetchContent_Populate(minmea_fetch) + endif() + endif() + + target_sources(c PRIVATE minmea/minmea.c) + +endif() diff --git a/libs/libc/misc/CMakeLists.txt b/libs/libc/misc/CMakeLists.txt index 4add363982..077c348b06 100644 --- a/libs/libc/misc/CMakeLists.txt +++ b/libs/libc/misc/CMakeLists.txt @@ -98,4 +98,12 @@ if(CONFIG_LIBC_ENVPATH) list(APPEND SRCS lib_envpath.c) endif() +if(CONFIG_FDSAN) + list(APPEND SRCS lib_fdsan.c) +endif() + +if(CONFIG_FDCHECK) + list(APPEND SRCS lib_fdcheck.c) +endif() + target_sources(c PRIVATE ${SRCS})