Commit Graph

28 Commits

Author SHA1 Message Date
simbit18
d1789d84e8 fix nxstyle
fix Relative file path does not match actual file.
2024-05-13 22:24:36 +02:00
chao an
c4017a4b22 cmake/romfs: separate c flags to avoid compile fail
riscv-none-elf-gcc: warning:  -Wstrict-prototypes: linker input file unused because linking not done
riscv-none-elf-gcc: error:  -Wstrict-prototypes: linker input file not found: No such file or directory

Signed-off-by: chao an <anchao@lixiang.com>
2024-05-09 23:45:23 +08:00
xuxin19
9eac74330a cmake:bugfix __KERNEL__ should not be defined in libc,mm.. in FLAT mode
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-05-02 16:03:09 +08:00
xuxin19
94d8fba629 cmake:bugfix generate config.h contain ; characters will be handled incorrectly
`;` is treated as a list separator in CMake.
the file(STRING) function will read the wrong .config value
string(REGEX REPLACE) will also incorrectly handle lines containing `;`
so here we can only parse character by character.

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-04-29 11:14:48 -03:00
xuxin19
859247c224 cmake:enhance set_source_files_properties for NuttX CMake module
Because `set_source_files_properties` in cmake will overwrite the properties instead of appending them.
This module implements addition and deletion by
first `getting_source_file_property` and then `set_source_files_properties`

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-04-18 14:57:58 -03:00
xuxin19
4b11d37cf7 cmake-bugfix:add santity check for target depends and change
inter_library header inheritance level

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-04-18 14:57:58 -03:00
xuxin19
6960f1b967 cmake:change add_dep to nuttx_add_dep for nuttx_add_application
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-04-18 14:57:58 -03:00
xuxin19
1bc50b53bb cmake:implement ALLSYMS feat of CMake version
when declaring the target to be `nuttx`,create an empty allsyms source file for it;
when the target is declared as something else,the link behavior of the `nuttx` target is cloned
and added to actually generate the allsyms file.
finally use allsyms_nuttx to overwrite the already generated nuttx
and regenerate binary outputs

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-04-03 10:16:21 -03:00
xuxin19
2c9d46f176 cmake:enable libxx for CMake build
distinguish whether to add the CXX header file search path
according to the target Language.

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-03-15 01:28:53 +08:00
Yanfeng Liu
9f62947d40 build/cmake: fix empty BASE_DEFCONFIG string
Currently CMake system has empty string for BASE_DEFCONFIG option.
This patch fills value for it.

Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>
2024-02-28 10:58:52 +01:00
Neo Xu
0b448b35f4 fix(cmake): fix external library mode
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2024-02-24 09:21:29 -08:00
xuxin19
1b7ddab317 cmake:adapt the header file symbolic link to the common directory
fix `board.h` is not set correctly when using cmake to compile a board with common directory

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-02-23 18:15:56 -08:00
xuxin19
7c1de0a347 cmake:correct the dequote execution of generating config.h
handling quotation marks consistent with `cfgdefine.c`

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-02-23 18:15:56 -08:00
xuxin19
5452f013df cmake/nuttx_add_library.cmake:add target that define in external module CMakeLists.txt
when nuttx's CMake build system calls an external module that already supports CMake,
since `add_library` may have been called internally,
it needs to provide a way to add its internally defined target to the final link.

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-02-21 19:58:34 +08:00
chao an
a506f9fb70 Revert "cmake: restore old behavior for savedefconfig"
@raiden00pl I'm surprised why this commit was reverted. It maintains the same functionality as tools/refresh.sh. this change is a good improvement because overwriting the original defconfig to prevent developers from missing out on enabled or disabled features during the development process. If you find any changes in the defconfig after saving it, you should manually restore it, git diff will tell you what has happened. and also this feature prevents more junior developers from forgetting to save their own defconfig

This reverts commit 751bc1528a.

Signed-off-by: chao an <anchao@lixiang.com>
2023-12-20 16:05:19 +01:00
raiden00pl
751bc1528a cmake: restore old behavior for savedefconfig
savedefconfig shouldn't overwrite the original defconfig, but only create a new
defconfig in the current directory. Otherwise, creating new configs based on
existing ones becomes irritating, because every time we use savedefconfig,
the original configuration is overwritten which is not the excepted behavior
2023-12-16 07:12:08 -08:00
chao an
a3eb42f469 cmake: split extra library from library group
Signed-off-by: chao an <anchao@xiaomi.com>
2023-12-06 07:56:17 -08:00
xuxin19
94e6cfb662 cmake:fix invalid configs when export defconfig and .config
when func `nuttx_export_kconfig` is called for the second time,
the expired configuration will be retained causing compilation failure

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2023-08-29 09:51:20 +08:00
xuxin19
5dd4af19f2 cmake:export_header support origin link and export install
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2023-08-26 17:01:59 +08:00
xuxin19
10f32910a9 cmake:new feature on enhance apps header cmake module
`nuttx_export_header` for applications global header file export
`nuttx_add_dependencies` is the wrapper to use import

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2023-08-17 13:10:15 +08:00
xuxin19
d18988521f cmake:fix add_user_library module archive issue
STATIC target export in BINDIR/staging/ directory by `cmake --install`

Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2023-08-14 08:06:56 +02:00
raiden00pl
5c9c518f7f cmake: format docstrings 2023-07-27 02:32:49 -07:00
raiden00pl
5769952471 cmake: add support for compile definitions for apps
With this we can pass build options to compiled app which is useful for integrating external projects
2023-07-26 02:52:58 -07:00
chao an
dc6f1406d1 tools/ci: migrate some ci build configurations to CMake
Signed-off-by: chao an <anchao@xiaomi.com>
2023-07-15 23:32:36 +08:00
chao an
375959eac1 cmake/menuconfig: keep comment to original style to avoid unnecessary refreshes
Signed-off-by: chao an <anchao@xiaomi.com>
2023-07-15 23:32:36 +08:00
raiden00pl
97309dd22d cmake: fix nrf91 modem static library build 2023-07-15 00:56:33 +08:00
raiden00pl
db65b6b0e6 cmake: allow nuttx_add_application to inherit includes from dependent target 2023-07-13 23:49:02 +03:00
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