nuttx/cmake/nuttx_redefine_symbols.cmake
chao an 6ee9ec7656 build: add initial cmake build system
1. Update all CMakeLists.txt to adapt to new layout
2. Fix cmake build break
3. Update all new file license
4. Fully compatible with current compilation environment(use configure.sh or cmake as you choose)

------------------

How to test

From within nuttx/. Configure:

cmake -B build -DBOARD_CONFIG=sim/nsh -GNinja
cmake -B build -DBOARD_CONFIG=sim:nsh -GNinja
cmake -B build -DBOARD_CONFIG=sabre-6quad/smp -GNinja
cmake -B build -DBOARD_CONFIG=lm3s6965-ek/qemu-flat -GNinja

(or full path in custom board) :
cmake -B build -DBOARD_CONFIG=$PWD/boards/sim/sim/sim/configs/nsh -GNinja

This uses ninja generator (install with sudo apt install ninja-build). To build:

$ cmake --build build

menuconfig:

$ cmake --build build -t menuconfig

--------------------------

2. cmake/build: reformat the cmake style by cmake-format

https://github.com/cheshirekow/cmake_format

$ pip install cmakelang

$ for i in `find -name CMakeLists.txt`;do cmake-format $i -o $i;done
$ for i in `find -name *\.cmake`;do cmake-format $i -o $i;done

Co-authored-by: Matias N <matias@protobits.dev>
Signed-off-by: chao an <anchao@xiaomi.com>
2023-07-08 13:50:48 +08:00

147 lines
2.9 KiB
CMake

# ##############################################################################
# cmake/nuttx_redefine_symbols.cmake
#
# 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.
#
# ##############################################################################
set(NXSYMBOLS
__cxa_atexit
abort
accept
access
atexit
backtrace
bind
calloc
chmod
chown
clock_gettime
close
closedir
connect
dlsym
dup
exit
fchmod
fchown
fclose
fcntl
fdopen
fopen
fprintf
fread
free
fseek
fstat
fsync
ftell
ftruncate
futimens
fwrite
getpeername
getsockname
getenv
getpid
getsockopt
if_nametoindex
ioctl
listen
longjmp
lseek
malloc
malloc_size
malloc_usable_size
memcpy
mkdir
mmap
mprotect
munmap
open
opendir
perror
poll
posix_memalign
pthread_attr_init
pthread_attr_setstack
pthread_attr_destroy
pthread_cond_destroy
pthread_cond_init
pthread_cond_signal
pthread_cond_wait
pthread_create
pthread_getspecific
pthread_key_create
pthread_kill
pthread_mutex_destroy
pthread_mutex_init
pthread_mutex_lock
pthread_mutex_unlock
pthread_setspecific
pthread_sigmask
puts
read
readdir
readv
realloc
recvfrom
rename
rewinddir
rmdir
sched_yield
select
sendmsg
sendto
setitimer
setbuf
setjmp
setsockopt
shutdown
sigaction
sigaddset
sigemptyset
sigfillset
sleep
socket
stat
statvfs
stderr
strcat
strchr
strerror
strlen
strtol
sysconf
syslog
tcgetattr
tcsetattr
unlink
usleep
utimensat
write
writev)
set(NXSYMBOL_RENAMES)
foreach(NXSYMBOL ${NXSYMBOLS})
if(APPLE OR (CYGWIN AND CONFIG_SIM_CYGWIN_DECORATED))
list(APPEND NXSYMBOL_RENAMES "_${NXSYMBOL} NX${NXSYMBOL}")
else()
list(APPEND NXSYMBOL_RENAMES "${NXSYMBOL} NX${NXSYMBOL}")
endif()
endforeach()
string(REPLACE ";" "\n" NXSYMBOL_RENAMES "${NXSYMBOL_RENAMES}")
file(WRITE ${CMAKE_BINARY_DIR}/nuttx-names.dat "${NXSYMBOL_RENAMES}\n")