Commit Graph

20 Commits

Author SHA1 Message Date
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