Introduce cmake-based rewrite of KBuild
Introducing CMake is an important step in a larger effort to make Zephyr easy to use for application developers working on different platforms with different development environment needs. Simplified, this change retains Kconfig as-is, and replaces all Makefiles with CMakeLists.txt. The DSL-like Make language that KBuild offers is replaced by a set of CMake extentions. These extentions have either provided simple one-to-one translations of KBuild features or introduced new concepts that replace KBuild concepts. This is a breaking change for existing test infrastructure and build scripts that are maintained out-of-tree. But for FW itself, no porting should be necessary. For users that just want to continue their work with minimal disruption the following should suffice: Install CMake 3.8.2+ Port any out-of-tree Makefiles to CMake. Learn the absolute minimum about the new command line interface: $ cd samples/hello_world $ mkdir build && cd build $ cmake -DBOARD=nrf52_pca10040 .. $ cd build $ make PR: zephyrproject-rtos#4692 docs: http://docs.zephyrproject.org/getting_started/getting_started.html Signed-off-by: Sebastian Boe <sebastian.boe@nordicsemi.no>
This commit is contained in:
parent
8bffcda547
commit
12f8f76165
644 changed files with 7815 additions and 0 deletions
45
kernel/CMakeLists.txt
Normal file
45
kernel/CMakeLists.txt
Normal file
|
@ -0,0 +1,45 @@
|
|||
# kernel is a normal CMake library and not a zephyr_library because it
|
||||
# should not be --whole-archive'd
|
||||
add_library(kernel
|
||||
alert.c
|
||||
device.c
|
||||
errno.c
|
||||
idle.c
|
||||
init.c
|
||||
mailbox.c
|
||||
mem_slab.c
|
||||
mempool.c
|
||||
msg_q.c
|
||||
mutex.c
|
||||
pipes.c
|
||||
queue.c
|
||||
sched.c
|
||||
sem.c
|
||||
stack.c
|
||||
sys_clock.c
|
||||
system_work_q.c
|
||||
thread.c
|
||||
thread_abort.c
|
||||
version.c
|
||||
work_q.c
|
||||
)
|
||||
|
||||
target_sources_ifdef(CONFIG_INT_LATENCY_BENCHMARK kernel PRIVATE int_latency_bench.c)
|
||||
target_sources_ifdef(CONFIG_STACK_CANARIES kernel PRIVATE compiler_stack_protect.c)
|
||||
target_sources_ifdef(CONFIG_SYS_CLOCK_EXISTS kernel PRIVATE timer.c)
|
||||
target_sources_ifdef(CONFIG_LEGACY_KERNEL kernel PRIVATE legacy_timer.c)
|
||||
target_sources_ifdef(CONFIG_ATOMIC_OPERATIONS_C kernel PRIVATE atomic_c.c)
|
||||
target_sources_ifdef(CONFIG_PTHREAD_IPC kernel PRIVATE pthread.c)
|
||||
target_sources_if_kconfig( kernel PRIVATE poll.c)
|
||||
|
||||
target_sources_ifdef(
|
||||
CONFIG_USERSPACE
|
||||
kernel PRIVATE
|
||||
userspace.c
|
||||
userspace_handler.c
|
||||
mem_domain.c
|
||||
)
|
||||
|
||||
add_dependencies(kernel offsets_h)
|
||||
|
||||
target_link_libraries(kernel zephyr_interface)
|
Loading…
Add table
Add a link
Reference in a new issue